diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json
index d8b9678..8bfb4d2 100644
--- a/.cargo_vcs_info.json
+++ b/.cargo_vcs_info.json
@@ -1,6 +1,6 @@
 {
   "git": {
-    "sha1": "c49e0c3fc6ec4b8821e2c28dad38e1ac04571b0b"
+    "sha1": "041a56ecea92e78400f8dea7dad2b7f9c175c22a"
   },
   "path_in_vcs": ""
 }
\ No newline at end of file
diff --git a/.woodpecker/integration.yml b/.woodpecker/integration.yml
index 9e100cd..c058601 100644
--- a/.woodpecker/integration.yml
+++ b/.woodpecker/integration.yml
@@ -4,12 +4,12 @@ steps:
   test:
     image: rust
     environment:
-      - "FORGEJO_API_CI_INSTANCE_URL=http://forgejo-testing:3000/"
-      - FORGEJO_API_CI_TOKEN=6eaba97c49d9f1bbe54f8975ea884af54826c9fe
+      FORGEJO_API_CI_INSTANCE_URL: http://forgejo-testing:3000/
+      FORGEJO_API_CI_TOKEN: 6d727f8db0df8a2852c9dfd38dca6b830741c079
     commands:
       - cargo test
 
 services:
   forgejo-testing:
     pull: true
-    image: code.cartoon-aa.xyz/cyborus/ci-forgejo:9.0.0
+    image: code.cartoon-aa.xyz/cyborus/ci-forgejo:10.0.0
diff --git a/Cargo.toml b/Cargo.toml
index 04d7e23..990cbf9 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -12,7 +12,7 @@
 [package]
 edition = "2021"
 name = "forgejo-api"
-version = "0.5.0"
+version = "0.6.0"
 build = false
 autolib = false
 autobins = false
@@ -51,7 +51,7 @@ version = "1.6.0"
 version = "1.5.0"
 
 [dependencies.reqwest]
-version = "0.11.18"
+version = "0.12"
 features = [
     "json",
     "multipart",
@@ -93,7 +93,7 @@ version = "1.7.0"
 version = "0.6.9"
 
 [dev-dependencies.reqwest]
-version = "0.11.18"
+version = "0.12"
 features = ["cookies"]
 
 [dev-dependencies.tokio]
diff --git a/Cargo.toml.orig b/Cargo.toml.orig
index a4c0b88..9d4356a 100644
--- a/Cargo.toml.orig
+++ b/Cargo.toml.orig
@@ -1,7 +1,7 @@
 workspace = { members = ["generator"] }
 [package]
 name = "forgejo-api"
-version = "0.5.0"
+version = "0.6.0"
 edition = "2021"
 license = "Apache-2.0 OR MIT"
 repository = "https://codeberg.org/Cyborus/forgejo-api"
@@ -10,7 +10,7 @@ description = "Interface to Forgejo's Web API"
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
 
 [dependencies]
-reqwest = { version = "0.11.18", features = ["json", "multipart"] }
+reqwest = { version = "0.12", features = ["json", "multipart"] }
 soft_assert = "0.1.1"
 thiserror = "1.0.43"
 tokio = { version = "1.29.1", features = ["net"] }
@@ -24,5 +24,5 @@ zeroize = "1.7.0"
 
 [dev-dependencies]
 eyre = "0.6.9"
-reqwest = { version = "0.11.18", features = ["cookies"] }
+reqwest = { version = "0.12", features = ["cookies"] }
 tokio = { version = "1.29.1", features = ["net", "fs", "rt", "macros"] }
diff --git a/src/generated/methods.rs b/src/generated/methods.rs
index f49d61f..ff00cf2 100644
--- a/src/generated/methods.rs
+++ b/src/generated/methods.rs
@@ -93,11 +93,11 @@ impl crate::Forgejo {
     pub async fn admin_cron_list(
         &self,
         query: AdminCronListQuery,
-    ) -> Result<Vec<Cron>, ForgejoError> {
+    ) -> Result<(CronListHeaders, Vec<Cron>), ForgejoError> {
         let request = self.get(&format!("admin/cron?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -119,11 +119,11 @@ impl crate::Forgejo {
     pub async fn admin_get_all_emails(
         &self,
         query: AdminGetAllEmailsQuery,
-    ) -> Result<Vec<Email>, ForgejoError> {
+    ) -> Result<(EmailListHeaders, Vec<Email>), ForgejoError> {
         let request = self.get(&format!("admin/emails?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -133,11 +133,11 @@ impl crate::Forgejo {
     pub async fn admin_search_emails(
         &self,
         query: AdminSearchEmailsQuery,
-    ) -> Result<Vec<Email>, ForgejoError> {
+    ) -> Result<(EmailListHeaders, Vec<Email>), ForgejoError> {
         let request = self.get(&format!("admin/emails/search?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -147,11 +147,11 @@ impl crate::Forgejo {
     pub async fn admin_list_hooks(
         &self,
         query: AdminListHooksQuery,
-    ) -> Result<Vec<Hook>, ForgejoError> {
+    ) -> Result<(HookListHeaders, Vec<Hook>), ForgejoError> {
         let request = self.get(&format!("admin/hooks?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -217,21 +217,23 @@ impl crate::Forgejo {
     pub async fn admin_get_all_orgs(
         &self,
         query: AdminGetAllOrgsQuery,
-    ) -> Result<Vec<Organization>, ForgejoError> {
+    ) -> Result<(OrganizationListHeaders, Vec<Organization>), ForgejoError> {
         let request = self.get(&format!("admin/orgs?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
 
     /// List the available quota groups
-    pub async fn admin_list_quota_groups(&self) -> Result<Vec<QuotaGroup>, ForgejoError> {
+    pub async fn admin_list_quota_groups(
+        &self,
+    ) -> Result<(QuotaGroupListHeaders, Vec<QuotaGroup>), ForgejoError> {
         let request = self.get("admin/quota/groups").build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -332,13 +334,13 @@ impl crate::Forgejo {
     pub async fn admin_list_users_in_quota_group(
         &self,
         quotagroup: &str,
-    ) -> Result<Vec<User>, ForgejoError> {
+    ) -> Result<(UserListHeaders, Vec<User>), ForgejoError> {
         let request = self
             .get(&format!("admin/quota/groups/{quotagroup}/users"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -382,11 +384,13 @@ impl crate::Forgejo {
     }
 
     /// List the available quota rules
-    pub async fn admin_list_quota_rules(&self) -> Result<Vec<QuotaRuleInfo>, ForgejoError> {
+    pub async fn admin_list_quota_rules(
+        &self,
+    ) -> Result<(QuotaRuleInfoListHeaders, Vec<QuotaRuleInfo>), ForgejoError> {
         let request = self.get("admin/quota/rules").build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -528,11 +532,11 @@ impl crate::Forgejo {
     pub async fn admin_search_users(
         &self,
         query: AdminSearchUsersQuery,
-    ) -> Result<Vec<User>, ForgejoError> {
+    ) -> Result<(UserListHeaders, Vec<User>), ForgejoError> {
         let request = self.get(&format!("admin/users?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -721,11 +725,13 @@ impl crate::Forgejo {
     }
 
     /// Returns a list of all gitignore templates
-    pub async fn list_gitignores_templates(&self) -> Result<Vec<String>, ForgejoError> {
+    pub async fn list_gitignores_templates(
+        &self,
+    ) -> Result<(GitignoreTemplateListHeaders, Vec<String>), ForgejoError> {
         let request = self.get("gitignore/templates").build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -746,11 +752,13 @@ impl crate::Forgejo {
     }
 
     /// Returns a list of all label templates
-    pub async fn list_label_templates(&self) -> Result<Vec<String>, ForgejoError> {
+    pub async fn list_label_templates(
+        &self,
+    ) -> Result<(LabelTemplateListHeaders, Vec<String>), ForgejoError> {
         let request = self.get("label/templates").build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -773,11 +781,11 @@ impl crate::Forgejo {
     /// Returns a list of all license templates
     pub async fn list_license_templates(
         &self,
-    ) -> Result<Vec<LicensesTemplateListEntry>, ForgejoError> {
+    ) -> Result<(LicenseTemplateListHeaders, Vec<LicensesTemplateListEntry>), ForgejoError> {
         let request = self.get("licenses").build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -850,11 +858,11 @@ impl crate::Forgejo {
     pub async fn notify_get_list(
         &self,
         query: NotifyGetListQuery,
-    ) -> Result<Vec<NotificationThread>, ForgejoError> {
+    ) -> Result<(NotificationThreadListHeaders, Vec<NotificationThread>), ForgejoError> {
         let request = self.get(&format!("notifications?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -864,11 +872,11 @@ impl crate::Forgejo {
     pub async fn notify_read_list(
         &self,
         query: NotifyReadListQuery,
-    ) -> Result<Vec<NotificationThread>, ForgejoError> {
+    ) -> Result<(NotificationThreadListHeaders, Vec<NotificationThread>), ForgejoError> {
         let request = self.put(&format!("notifications?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            205 => Ok(response.json().await?),
+            205 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -935,11 +943,11 @@ impl crate::Forgejo {
     pub async fn org_get_all(
         &self,
         query: OrgGetAllQuery,
-    ) -> Result<Vec<Organization>, ForgejoError> {
+    ) -> Result<(OrganizationListHeaders, Vec<Organization>), ForgejoError> {
         let request = self.get(&format!("orgs?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -1024,13 +1032,13 @@ impl crate::Forgejo {
         &self,
         org: &str,
         query: OrgListActionsSecretsQuery,
-    ) -> Result<Vec<Secret>, ForgejoError> {
+    ) -> Result<(SecretListHeaders, Vec<Secret>), ForgejoError> {
         let request = self
             .get(&format!("orgs/{org}/actions/secrets?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -1080,13 +1088,13 @@ impl crate::Forgejo {
         &self,
         org: &str,
         query: GetOrgVariablesListQuery,
-    ) -> Result<Vec<ActionVariable>, ForgejoError> {
+    ) -> Result<(VariableListHeaders, Vec<ActionVariable>), ForgejoError> {
         let request = self
             .get(&format!("orgs/{org}/actions/variables?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -1184,13 +1192,13 @@ impl crate::Forgejo {
         &self,
         org: &str,
         query: OrgListActivityFeedsQuery,
-    ) -> Result<Vec<Activity>, ForgejoError> {
+    ) -> Result<(ActivityFeedsListHeaders, Vec<Activity>), ForgejoError> {
         let request = self
             .get(&format!("orgs/{org}/activities/feeds?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -1247,11 +1255,11 @@ impl crate::Forgejo {
         &self,
         org: &str,
         query: OrgListHooksQuery,
-    ) -> Result<Vec<Hook>, ForgejoError> {
+    ) -> Result<(HookListHeaders, Vec<Hook>), ForgejoError> {
         let request = self.get(&format!("orgs/{org}/hooks?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -1331,11 +1339,11 @@ impl crate::Forgejo {
         &self,
         org: &str,
         query: OrgListLabelsQuery,
-    ) -> Result<Vec<Label>, ForgejoError> {
+    ) -> Result<(LabelListHeaders, Vec<Label>), ForgejoError> {
         let request = self.get(&format!("orgs/{org}/labels?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -1415,13 +1423,13 @@ impl crate::Forgejo {
         &self,
         org: &str,
         query: OrgListBlockedUsersQuery,
-    ) -> Result<Vec<BlockedUser>, ForgejoError> {
+    ) -> Result<(BlockedUserListHeaders, Vec<BlockedUser>), ForgejoError> {
         let request = self
             .get(&format!("orgs/{org}/list_blocked?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -1433,11 +1441,11 @@ impl crate::Forgejo {
         &self,
         org: &str,
         query: OrgListMembersQuery,
-    ) -> Result<Vec<User>, ForgejoError> {
+    ) -> Result<(UserListHeaders, Vec<User>), ForgejoError> {
         let request = self.get(&format!("orgs/{org}/members?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -1479,13 +1487,13 @@ impl crate::Forgejo {
         &self,
         org: &str,
         query: OrgListPublicMembersQuery,
-    ) -> Result<Vec<User>, ForgejoError> {
+    ) -> Result<(UserListHeaders, Vec<User>), ForgejoError> {
         let request = self
             .get(&format!("orgs/{org}/public_members?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -1562,13 +1570,13 @@ impl crate::Forgejo {
         &self,
         org: &str,
         query: OrgListQuotaArtifactsQuery,
-    ) -> Result<Vec<QuotaUsedArtifact>, ForgejoError> {
+    ) -> Result<(QuotaUsedArtifactListHeaders, Vec<QuotaUsedArtifact>), ForgejoError> {
         let request = self
             .get(&format!("orgs/{org}/quota/artifacts?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -1580,13 +1588,13 @@ impl crate::Forgejo {
         &self,
         org: &str,
         query: OrgListQuotaAttachmentsQuery,
-    ) -> Result<Vec<QuotaUsedAttachment>, ForgejoError> {
+    ) -> Result<(QuotaUsedAttachmentListHeaders, Vec<QuotaUsedAttachment>), ForgejoError> {
         let request = self
             .get(&format!("orgs/{org}/quota/attachments?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -1610,13 +1618,13 @@ impl crate::Forgejo {
         &self,
         org: &str,
         query: OrgListQuotaPackagesQuery,
-    ) -> Result<Vec<QuotaUsedPackage>, ForgejoError> {
+    ) -> Result<(QuotaUsedPackageListHeaders, Vec<QuotaUsedPackage>), ForgejoError> {
         let request = self
             .get(&format!("orgs/{org}/quota/packages?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -1628,11 +1636,11 @@ impl crate::Forgejo {
         &self,
         org: &str,
         query: OrgListReposQuery,
-    ) -> Result<Vec<Repository>, ForgejoError> {
+    ) -> Result<(RepositoryListHeaders, Vec<Repository>), ForgejoError> {
         let request = self.get(&format!("orgs/{org}/repos?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -1664,11 +1672,11 @@ impl crate::Forgejo {
         &self,
         org: &str,
         query: OrgListTeamsQuery,
-    ) -> Result<Vec<Team>, ForgejoError> {
+    ) -> Result<(TeamListHeaders, Vec<Team>), ForgejoError> {
         let request = self.get(&format!("orgs/{org}/teams?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -1733,11 +1741,11 @@ impl crate::Forgejo {
         &self,
         owner: &str,
         query: ListPackagesQuery,
-    ) -> Result<Vec<Package>, ForgejoError> {
+    ) -> Result<(PackageListHeaders, Vec<Package>), ForgejoError> {
         let request = self.get(&format!("packages/{owner}?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -1800,13 +1808,13 @@ impl crate::Forgejo {
         r#type: &str,
         name: &str,
         version: &str,
-    ) -> Result<Vec<PackageFile>, ForgejoError> {
+    ) -> Result<(PackageFileListHeaders, Vec<PackageFile>), ForgejoError> {
         let request = self
             .get(&format!("packages/{owner}/{type}/{name}/{version}/files"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -1816,11 +1824,11 @@ impl crate::Forgejo {
     pub async fn issue_search_issues(
         &self,
         query: IssueSearchIssuesQuery,
-    ) -> Result<Vec<Issue>, ForgejoError> {
+    ) -> Result<(IssueListHeaders, Vec<Issue>), ForgejoError> {
         let request = self.get(&format!("repos/issues/search?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -1928,13 +1936,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: RepoListActionsSecretsQuery,
-    ) -> Result<Vec<Secret>, ForgejoError> {
+    ) -> Result<(SecretListHeaders, Vec<Secret>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/actions/secrets?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -1998,13 +2006,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: ListActionTasksQuery,
-    ) -> Result<ActionTaskResponse, ForgejoError> {
+    ) -> Result<(TasksListHeaders, ActionTaskResponse), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/actions/tasks?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -2018,13 +2026,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: GetRepoVariablesListQuery,
-    ) -> Result<Vec<ActionVariable>, ForgejoError> {
+    ) -> Result<(VariableListHeaders, Vec<ActionVariable>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/actions/variables?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -2166,13 +2174,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: RepoListActivityFeedsQuery,
-    ) -> Result<Vec<Activity>, ForgejoError> {
+    ) -> Result<(ActivityFeedsListHeaders, Vec<Activity>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/activities/feeds?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -2206,13 +2214,13 @@ impl crate::Forgejo {
         &self,
         owner: &str,
         repo: &str,
-    ) -> Result<Vec<User>, ForgejoError> {
+    ) -> Result<(UserListHeaders, Vec<User>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/assignees"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -2262,13 +2270,13 @@ impl crate::Forgejo {
         &self,
         owner: &str,
         repo: &str,
-    ) -> Result<Vec<BranchProtection>, ForgejoError> {
+    ) -> Result<(BranchProtectionListHeaders, Vec<BranchProtection>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/branch_protections"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -2370,13 +2378,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: RepoListBranchesQuery,
-    ) -> Result<Vec<Branch>, ForgejoError> {
+    ) -> Result<(BranchListHeaders, Vec<Branch>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/branches?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -2445,6 +2453,30 @@ impl crate::Forgejo {
         }
     }
 
+    /// Update a branch
+    ///
+    /// - `owner`: owner of the repo
+    /// - `repo`: name of the repo
+    /// - `branch`: name of the branch
+    /// - `body`: See [`UpdateBranchRepoOption`]
+    pub async fn repo_update_branch(
+        &self,
+        owner: &str,
+        repo: &str,
+        branch: &str,
+        body: UpdateBranchRepoOption,
+    ) -> Result<(), ForgejoError> {
+        let request = self
+            .patch(&format!("repos/{owner}/{repo}/branches/{branch}"))
+            .json(&body)
+            .build()?;
+        let response = self.execute(request).await?;
+        match response.status().as_u16() {
+            204 => Ok(()),
+            _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
+        }
+    }
+
     /// List a repository's collaborators
     ///
     /// - `owner`: owner of the repo
@@ -2454,13 +2486,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: RepoListCollaboratorsQuery,
-    ) -> Result<Vec<User>, ForgejoError> {
+    ) -> Result<(UserListHeaders, Vec<User>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/collaborators?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -2615,7 +2647,7 @@ impl crate::Forgejo {
         repo: &str,
         r#ref: &str,
         query: RepoListStatusesByRefQuery,
-    ) -> Result<Vec<CommitStatus>, ForgejoError> {
+    ) -> Result<(CommitStatusListHeaders, Vec<CommitStatus>), ForgejoError> {
         let request = self
             .get(&format!(
                 "repos/{owner}/{repo}/commits/{ref}/statuses?{query}"
@@ -2623,7 +2655,7 @@ impl crate::Forgejo {
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -2978,13 +3010,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: ListForksQuery,
-    ) -> Result<Vec<Repository>, ForgejoError> {
+    ) -> Result<(RepositoryListHeaders, Vec<Repository>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/forks?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -3101,6 +3133,51 @@ impl crate::Forgejo {
         }
     }
 
+    /// Set a note corresponding to a single commit from a repository
+    ///
+    /// - `owner`: owner of the repo
+    /// - `repo`: name of the repo
+    /// - `sha`: a git ref or commit sha
+    /// - `body`: See [`NoteOptions`]
+    pub async fn repo_set_note(
+        &self,
+        owner: &str,
+        repo: &str,
+        sha: &str,
+        body: NoteOptions,
+    ) -> Result<Note, ForgejoError> {
+        let request = self
+            .post(&format!("repos/{owner}/{repo}/git/notes/{sha}"))
+            .json(&body)
+            .build()?;
+        let response = self.execute(request).await?;
+        match response.status().as_u16() {
+            200 => Ok(response.json().await?),
+            _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
+        }
+    }
+
+    /// Removes a note corresponding to a single commit from a repository
+    ///
+    /// - `owner`: owner of the repo
+    /// - `repo`: name of the repo
+    /// - `sha`: a git ref or commit sha
+    pub async fn repo_remove_note(
+        &self,
+        owner: &str,
+        repo: &str,
+        sha: &str,
+    ) -> Result<(), ForgejoError> {
+        let request = self
+            .delete(&format!("repos/{owner}/{repo}/git/notes/{sha}"))
+            .build()?;
+        let response = self.execute(request).await?;
+        match response.status().as_u16() {
+            204 => Ok(()),
+            _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
+        }
+    }
+
     /// Get specified ref or filtered repository's refs
     ///
     /// - `owner`: owner of the repo
@@ -3109,13 +3186,13 @@ impl crate::Forgejo {
         &self,
         owner: &str,
         repo: &str,
-    ) -> Result<Vec<Reference>, ForgejoError> {
+    ) -> Result<(ReferenceListHeaders, Vec<Reference>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/git/refs"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -3130,13 +3207,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         r#ref: &str,
-    ) -> Result<Vec<Reference>, ForgejoError> {
+    ) -> Result<(ReferenceListHeaders, Vec<Reference>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/git/refs/{ref}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -3193,13 +3270,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: RepoListHooksQuery,
-    ) -> Result<Vec<Hook>, ForgejoError> {
+    ) -> Result<(HookListHeaders, Vec<Hook>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/hooks?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -3234,13 +3311,13 @@ impl crate::Forgejo {
         &self,
         owner: &str,
         repo: &str,
-    ) -> Result<Vec<GitHook>, ForgejoError> {
+    ) -> Result<(GitHookListHeaders, Vec<GitHook>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/hooks/git"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -3465,13 +3542,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: IssueListIssuesQuery,
-    ) -> Result<Vec<Issue>, ForgejoError> {
+    ) -> Result<(IssueListHeaders, Vec<Issue>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/issues?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -3507,13 +3584,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: IssueGetRepoCommentsQuery,
-    ) -> Result<Vec<Comment>, ForgejoError> {
+    ) -> Result<(CommentListHeaders, Vec<Comment>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/issues/comments?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -3596,13 +3673,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         id: u64,
-    ) -> Result<Vec<Attachment>, ForgejoError> {
+    ) -> Result<(AttachmentListHeaders, Vec<Attachment>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/issues/comments/{id}/assets"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -3729,7 +3806,7 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         id: u64,
-    ) -> Result<Vec<Reaction>, ForgejoError> {
+    ) -> Result<(ReactionListHeaders, Vec<Reaction>), ForgejoError> {
         let request = self
             .get(&format!(
                 "repos/{owner}/{repo}/issues/comments/{id}/reactions"
@@ -3737,7 +3814,7 @@ impl crate::Forgejo {
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -3803,13 +3880,13 @@ impl crate::Forgejo {
         &self,
         owner: &str,
         repo: &str,
-    ) -> Result<Vec<Issue>, ForgejoError> {
+    ) -> Result<(IssueListHeaders, Vec<Issue>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/issues/pinned"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -3890,13 +3967,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         index: u64,
-    ) -> Result<Vec<Attachment>, ForgejoError> {
+    ) -> Result<(AttachmentListHeaders, Vec<Attachment>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/issues/{index}/assets"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -4024,7 +4101,7 @@ impl crate::Forgejo {
         repo: &str,
         index: &str,
         query: IssueListBlocksQuery,
-    ) -> Result<Vec<Issue>, ForgejoError> {
+    ) -> Result<(IssueListHeaders, Vec<Issue>), ForgejoError> {
         let request = self
             .get(&format!(
                 "repos/{owner}/{repo}/issues/{index}/blocks?{query}"
@@ -4032,7 +4109,7 @@ impl crate::Forgejo {
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -4096,7 +4173,7 @@ impl crate::Forgejo {
         repo: &str,
         index: u64,
         query: IssueGetCommentsQuery,
-    ) -> Result<Vec<Comment>, ForgejoError> {
+    ) -> Result<(CommentListHeaders, Vec<Comment>), ForgejoError> {
         let request = self
             .get(&format!(
                 "repos/{owner}/{repo}/issues/{index}/comments?{query}"
@@ -4104,7 +4181,7 @@ impl crate::Forgejo {
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -4222,7 +4299,7 @@ impl crate::Forgejo {
         repo: &str,
         index: &str,
         query: IssueListIssueDependenciesQuery,
-    ) -> Result<Vec<Issue>, ForgejoError> {
+    ) -> Result<(IssueListHeaders, Vec<Issue>), ForgejoError> {
         let request = self
             .get(&format!(
                 "repos/{owner}/{repo}/issues/{index}/dependencies?{query}"
@@ -4230,7 +4307,7 @@ impl crate::Forgejo {
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -4293,13 +4370,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         index: u64,
-    ) -> Result<Vec<Label>, ForgejoError> {
+    ) -> Result<(LabelListHeaders, Vec<Label>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/issues/{index}/labels"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -4316,14 +4393,14 @@ impl crate::Forgejo {
         repo: &str,
         index: u64,
         body: IssueLabelsOption,
-    ) -> Result<Vec<Label>, ForgejoError> {
+    ) -> Result<(LabelListHeaders, Vec<Label>), ForgejoError> {
         let request = self
             .put(&format!("repos/{owner}/{repo}/issues/{index}/labels"))
             .json(&body)
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -4340,14 +4417,14 @@ impl crate::Forgejo {
         repo: &str,
         index: u64,
         body: IssueLabelsOption,
-    ) -> Result<Vec<Label>, ForgejoError> {
+    ) -> Result<(LabelListHeaders, Vec<Label>), ForgejoError> {
         let request = self
             .post(&format!("repos/{owner}/{repo}/issues/{index}/labels"))
             .json(&body)
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -4475,7 +4552,7 @@ impl crate::Forgejo {
         repo: &str,
         index: u64,
         query: IssueGetIssueReactionsQuery,
-    ) -> Result<Vec<Reaction>, ForgejoError> {
+    ) -> Result<(ReactionListHeaders, Vec<Reaction>), ForgejoError> {
         let request = self
             .get(&format!(
                 "repos/{owner}/{repo}/issues/{index}/reactions?{query}"
@@ -4483,7 +4560,7 @@ impl crate::Forgejo {
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -4617,7 +4694,7 @@ impl crate::Forgejo {
         repo: &str,
         index: u64,
         query: IssueSubscriptionsQuery,
-    ) -> Result<Vec<User>, ForgejoError> {
+    ) -> Result<(UserListHeaders, Vec<User>), ForgejoError> {
         let request = self
             .get(&format!(
                 "repos/{owner}/{repo}/issues/{index}/subscriptions?{query}"
@@ -4625,7 +4702,7 @@ impl crate::Forgejo {
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -4716,7 +4793,7 @@ impl crate::Forgejo {
         repo: &str,
         index: u64,
         query: IssueGetCommentsAndTimelineQuery,
-    ) -> Result<Vec<TimelineComment>, ForgejoError> {
+    ) -> Result<(TimelineListHeaders, Vec<TimelineComment>), ForgejoError> {
         let request = self
             .get(&format!(
                 "repos/{owner}/{repo}/issues/{index}/timeline?{query}"
@@ -4724,7 +4801,7 @@ impl crate::Forgejo {
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -4740,7 +4817,7 @@ impl crate::Forgejo {
         repo: &str,
         index: u64,
         query: IssueTrackedTimesQuery,
-    ) -> Result<Vec<TrackedTime>, ForgejoError> {
+    ) -> Result<(TrackedTimeListHeaders, Vec<TrackedTime>), ForgejoError> {
         let request = self
             .get(&format!(
                 "repos/{owner}/{repo}/issues/{index}/times?{query}"
@@ -4748,7 +4825,7 @@ impl crate::Forgejo {
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -4830,13 +4907,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: RepoListKeysQuery,
-    ) -> Result<Vec<DeployKey>, ForgejoError> {
+    ) -> Result<(DeployKeyListHeaders, Vec<DeployKey>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/keys?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -4914,13 +4991,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: IssueListLabelsQuery,
-    ) -> Result<Vec<Label>, ForgejoError> {
+    ) -> Result<(LabelListHeaders, Vec<Label>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/labels?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -5063,13 +5140,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: IssueGetMilestonesListQuery,
-    ) -> Result<Vec<Milestone>, ForgejoError> {
+    ) -> Result<(MilestoneListHeaders, Vec<Milestone>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/milestones?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -5205,13 +5282,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: NotifyGetRepoListQuery,
-    ) -> Result<Vec<NotificationThread>, ForgejoError> {
+    ) -> Result<(NotificationThreadListHeaders, Vec<NotificationThread>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/notifications?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -5225,33 +5302,33 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: NotifyReadRepoListQuery,
-    ) -> Result<Vec<NotificationThread>, ForgejoError> {
+    ) -> Result<(NotificationThreadListHeaders, Vec<NotificationThread>), ForgejoError> {
         let request = self
             .put(&format!("repos/{owner}/{repo}/notifications?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            205 => Ok(response.json().await?),
+            205 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
 
     /// List a repo's pull requests
     ///
-    /// - `owner`: owner of the repo
-    /// - `repo`: name of the repo
+    /// - `owner`: Owner of the repo
+    /// - `repo`: Name of the repo
     pub async fn repo_list_pull_requests(
         &self,
         owner: &str,
         repo: &str,
         query: RepoListPullRequestsQuery,
-    ) -> Result<Vec<PullRequest>, ForgejoError> {
+    ) -> Result<(PullRequestListHeaders, Vec<PullRequest>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/pulls?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -5286,13 +5363,13 @@ impl crate::Forgejo {
         &self,
         owner: &str,
         repo: &str,
-    ) -> Result<Vec<PullRequest>, ForgejoError> {
+    ) -> Result<(PullRequestListHeaders, Vec<PullRequest>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/pulls/pinned"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -5515,7 +5592,7 @@ impl crate::Forgejo {
         repo: &str,
         index: u64,
         body: PullReviewRequestOptions,
-    ) -> Result<Vec<PullReview>, ForgejoError> {
+    ) -> Result<(PullReviewListHeaders, Vec<PullReview>), ForgejoError> {
         let request = self
             .post(&format!(
                 "repos/{owner}/{repo}/pulls/{index}/requested_reviewers"
@@ -5524,7 +5601,7 @@ impl crate::Forgejo {
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            201 => Ok(response.json().await?),
+            201 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -5566,7 +5643,7 @@ impl crate::Forgejo {
         repo: &str,
         index: u64,
         query: RepoListPullReviewsQuery,
-    ) -> Result<Vec<PullReview>, ForgejoError> {
+    ) -> Result<(PullReviewListHeaders, Vec<PullReview>), ForgejoError> {
         let request = self
             .get(&format!(
                 "repos/{owner}/{repo}/pulls/{index}/reviews?{query}"
@@ -5574,7 +5651,7 @@ impl crate::Forgejo {
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -5687,7 +5764,7 @@ impl crate::Forgejo {
         repo: &str,
         index: u64,
         id: u64,
-    ) -> Result<Vec<PullReviewComment>, ForgejoError> {
+    ) -> Result<(PullReviewCommentListHeaders, Vec<PullReviewComment>), ForgejoError> {
         let request = self
             .get(&format!(
                 "repos/{owner}/{repo}/pulls/{index}/reviews/{id}/comments"
@@ -5695,7 +5772,7 @@ impl crate::Forgejo {
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -5868,13 +5945,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: RepoListPushMirrorsQuery,
-    ) -> Result<Vec<PushMirror>, ForgejoError> {
+    ) -> Result<(PushMirrorListHeaders, Vec<PushMirror>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/push_mirrors?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -5989,13 +6066,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: RepoListReleasesQuery,
-    ) -> Result<Vec<Release>, ForgejoError> {
+    ) -> Result<(ReleaseListHeaders, Vec<Release>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/releases?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -6159,13 +6236,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         id: u64,
-    ) -> Result<Vec<Attachment>, ForgejoError> {
+    ) -> Result<(AttachmentListHeaders, Vec<Attachment>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/releases/{id}/assets"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -6307,13 +6384,13 @@ impl crate::Forgejo {
         &self,
         owner: &str,
         repo: &str,
-    ) -> Result<Vec<User>, ForgejoError> {
+    ) -> Result<(UserListHeaders, Vec<User>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/reviewers"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -6342,13 +6419,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: RepoListStargazersQuery,
-    ) -> Result<Vec<User>, ForgejoError> {
+    ) -> Result<(UserListHeaders, Vec<User>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/stargazers?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -6364,13 +6441,13 @@ impl crate::Forgejo {
         repo: &str,
         sha: &str,
         query: RepoListStatusesQuery,
-    ) -> Result<Vec<CommitStatus>, ForgejoError> {
+    ) -> Result<(CommitStatusListHeaders, Vec<CommitStatus>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/statuses/{sha}?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -6408,13 +6485,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: RepoListSubscribersQuery,
-    ) -> Result<Vec<User>, ForgejoError> {
+    ) -> Result<(UserListHeaders, Vec<User>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/subscribers?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -6484,13 +6561,13 @@ impl crate::Forgejo {
         &self,
         owner: &str,
         repo: &str,
-    ) -> Result<Vec<TagProtection>, ForgejoError> {
+    ) -> Result<(TagProtectionListHeaders, Vec<TagProtection>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/tag_protections"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -6592,13 +6669,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: RepoListTagsQuery,
-    ) -> Result<Vec<Tag>, ForgejoError> {
+    ) -> Result<(TagListHeaders, Vec<Tag>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/tags?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -6675,11 +6752,11 @@ impl crate::Forgejo {
         &self,
         owner: &str,
         repo: &str,
-    ) -> Result<Vec<Team>, ForgejoError> {
+    ) -> Result<(TeamListHeaders, Vec<Team>), ForgejoError> {
         let request = self.get(&format!("repos/{owner}/{repo}/teams")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -6756,13 +6833,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: RepoTrackedTimesQuery,
-    ) -> Result<Vec<TrackedTime>, ForgejoError> {
+    ) -> Result<(TrackedTimeListHeaders, Vec<TrackedTime>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/times?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -6777,13 +6854,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         user: &str,
-    ) -> Result<Vec<TrackedTime>, ForgejoError> {
+    ) -> Result<(TrackedTimeListHeaders, Vec<TrackedTime>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/times/{user}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -7031,13 +7108,13 @@ impl crate::Forgejo {
         owner: &str,
         repo: &str,
         query: RepoGetWikiPagesQuery,
-    ) -> Result<Vec<WikiPageMetaData>, ForgejoError> {
+    ) -> Result<(WikiPageListHeaders, Vec<WikiPageMetaData>), ForgejoError> {
         let request = self
             .get(&format!("repos/{owner}/{repo}/wiki/pages?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -7053,7 +7130,7 @@ impl crate::Forgejo {
         repo: &str,
         page_name: &str,
         query: RepoGetWikiPageRevisionsQuery,
-    ) -> Result<WikiCommitList, ForgejoError> {
+    ) -> Result<(WikiCommitListHeaders, WikiCommitList), ForgejoError> {
         let request = self
             .get(&format!(
                 "repos/{owner}/{repo}/wiki/revisions/{page_name}?{query}"
@@ -7061,7 +7138,7 @@ impl crate::Forgejo {
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -7198,13 +7275,13 @@ impl crate::Forgejo {
         &self,
         id: u64,
         query: OrgListTeamActivityFeedsQuery,
-    ) -> Result<Vec<Activity>, ForgejoError> {
+    ) -> Result<(ActivityFeedsListHeaders, Vec<Activity>), ForgejoError> {
         let request = self
             .get(&format!("teams/{id}/activities/feeds?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -7216,11 +7293,11 @@ impl crate::Forgejo {
         &self,
         id: u64,
         query: OrgListTeamMembersQuery,
-    ) -> Result<Vec<User>, ForgejoError> {
+    ) -> Result<(UserListHeaders, Vec<User>), ForgejoError> {
         let request = self.get(&format!("teams/{id}/members?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -7285,11 +7362,11 @@ impl crate::Forgejo {
         &self,
         id: u64,
         query: OrgListTeamReposQuery,
-    ) -> Result<Vec<Repository>, ForgejoError> {
+    ) -> Result<(RepositoryListHeaders, Vec<Repository>), ForgejoError> {
         let request = self.get(&format!("teams/{id}/repos?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -7435,13 +7512,13 @@ impl crate::Forgejo {
     pub async fn get_user_variables_list(
         &self,
         query: GetUserVariablesListQuery,
-    ) -> Result<Vec<ActionVariable>, ForgejoError> {
+    ) -> Result<(VariableListHeaders, Vec<ActionVariable>), ForgejoError> {
         let request = self
             .get(&format!("user/actions/variables?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -7525,13 +7602,13 @@ impl crate::Forgejo {
     pub async fn user_get_oauth2_applications(
         &self,
         query: UserGetOAuth2ApplicationsQuery,
-    ) -> Result<Vec<OAuth2Application>, ForgejoError> {
+    ) -> Result<(OAuth2ApplicationListHeaders, Vec<OAuth2Application>), ForgejoError> {
         let request = self
             .get(&format!("user/applications/oauth2?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -7640,11 +7717,11 @@ impl crate::Forgejo {
     }
 
     /// List the authenticated user's email addresses
-    pub async fn user_list_emails(&self) -> Result<Vec<Email>, ForgejoError> {
+    pub async fn user_list_emails(&self) -> Result<(EmailListHeaders, Vec<Email>), ForgejoError> {
         let request = self.get("user/emails").build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -7655,11 +7732,11 @@ impl crate::Forgejo {
     pub async fn user_add_email(
         &self,
         body: CreateEmailOption,
-    ) -> Result<Vec<Email>, ForgejoError> {
+    ) -> Result<(EmailListHeaders, Vec<Email>), ForgejoError> {
         let request = self.post("user/emails").json(&body).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            201 => Ok(response.json().await?),
+            201 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -7681,11 +7758,11 @@ impl crate::Forgejo {
     pub async fn user_current_list_followers(
         &self,
         query: UserCurrentListFollowersQuery,
-    ) -> Result<Vec<User>, ForgejoError> {
+    ) -> Result<(UserListHeaders, Vec<User>), ForgejoError> {
         let request = self.get(&format!("user/followers?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -7695,11 +7772,11 @@ impl crate::Forgejo {
     pub async fn user_current_list_following(
         &self,
         query: UserCurrentListFollowingQuery,
-    ) -> Result<Vec<User>, ForgejoError> {
+    ) -> Result<(UserListHeaders, Vec<User>), ForgejoError> {
         let request = self.get(&format!("user/following?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -7765,11 +7842,11 @@ impl crate::Forgejo {
     pub async fn user_current_list_gpg_keys(
         &self,
         query: UserCurrentListGpgKeysQuery,
-    ) -> Result<Vec<GPGKey>, ForgejoError> {
+    ) -> Result<(GpgKeyListHeaders, Vec<GPGKey>), ForgejoError> {
         let request = self.get(&format!("user/gpg_keys?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -7818,11 +7895,11 @@ impl crate::Forgejo {
     pub async fn user_list_hooks(
         &self,
         query: UserListHooksQuery,
-    ) -> Result<Vec<Hook>, ForgejoError> {
+    ) -> Result<(HookListHeaders, Vec<Hook>), ForgejoError> {
         let request = self.get(&format!("user/hooks?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -7888,11 +7965,11 @@ impl crate::Forgejo {
     pub async fn user_current_list_keys(
         &self,
         query: UserCurrentListKeysQuery,
-    ) -> Result<Vec<PublicKey>, ForgejoError> {
+    ) -> Result<(PublicKeyListHeaders, Vec<PublicKey>), ForgejoError> {
         let request = self.get(&format!("user/keys?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -7941,11 +8018,11 @@ impl crate::Forgejo {
     pub async fn user_list_blocked_users(
         &self,
         query: UserListBlockedUsersQuery,
-    ) -> Result<Vec<BlockedUser>, ForgejoError> {
+    ) -> Result<(BlockedUserListHeaders, Vec<BlockedUser>), ForgejoError> {
         let request = self.get(&format!("user/list_blocked?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -7955,11 +8032,11 @@ impl crate::Forgejo {
     pub async fn org_list_current_user_orgs(
         &self,
         query: OrgListCurrentUserOrgsQuery,
-    ) -> Result<Vec<Organization>, ForgejoError> {
+    ) -> Result<(OrganizationListHeaders, Vec<Organization>), ForgejoError> {
         let request = self.get(&format!("user/orgs?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -7979,11 +8056,11 @@ impl crate::Forgejo {
     pub async fn user_list_quota_artifacts(
         &self,
         query: UserListQuotaArtifactsQuery,
-    ) -> Result<Vec<QuotaUsedArtifact>, ForgejoError> {
+    ) -> Result<(QuotaUsedArtifactListHeaders, Vec<QuotaUsedArtifact>), ForgejoError> {
         let request = self.get(&format!("user/quota/artifacts?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -7993,13 +8070,13 @@ impl crate::Forgejo {
     pub async fn user_list_quota_attachments(
         &self,
         query: UserListQuotaAttachmentsQuery,
-    ) -> Result<Vec<QuotaUsedAttachment>, ForgejoError> {
+    ) -> Result<(QuotaUsedAttachmentListHeaders, Vec<QuotaUsedAttachment>), ForgejoError> {
         let request = self
             .get(&format!("user/quota/attachments?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -8019,11 +8096,11 @@ impl crate::Forgejo {
     pub async fn user_list_quota_packages(
         &self,
         query: UserListQuotaPackagesQuery,
-    ) -> Result<Vec<QuotaUsedPackage>, ForgejoError> {
+    ) -> Result<(QuotaUsedPackageListHeaders, Vec<QuotaUsedPackage>), ForgejoError> {
         let request = self.get(&format!("user/quota/packages?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -8033,11 +8110,11 @@ impl crate::Forgejo {
     pub async fn user_current_list_repos(
         &self,
         query: UserCurrentListReposQuery,
-    ) -> Result<Vec<Repository>, ForgejoError> {
+    ) -> Result<(RepositoryListHeaders, Vec<Repository>), ForgejoError> {
         let request = self.get(&format!("user/repos?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -8087,11 +8164,11 @@ impl crate::Forgejo {
     pub async fn user_current_list_starred(
         &self,
         query: UserCurrentListStarredQuery,
-    ) -> Result<Vec<Repository>, ForgejoError> {
+    ) -> Result<(RepositoryListHeaders, Vec<Repository>), ForgejoError> {
         let request = self.get(&format!("user/starred?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -8150,11 +8227,11 @@ impl crate::Forgejo {
     pub async fn user_get_stop_watches(
         &self,
         query: UserGetStopWatchesQuery,
-    ) -> Result<Vec<StopWatch>, ForgejoError> {
+    ) -> Result<(StopWatchListHeaders, Vec<StopWatch>), ForgejoError> {
         let request = self.get(&format!("user/stopwatches?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -8164,11 +8241,11 @@ impl crate::Forgejo {
     pub async fn user_current_list_subscriptions(
         &self,
         query: UserCurrentListSubscriptionsQuery,
-    ) -> Result<Vec<Repository>, ForgejoError> {
+    ) -> Result<(RepositoryListHeaders, Vec<Repository>), ForgejoError> {
         let request = self.get(&format!("user/subscriptions?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -8178,11 +8255,11 @@ impl crate::Forgejo {
     pub async fn user_list_teams(
         &self,
         query: UserListTeamsQuery,
-    ) -> Result<Vec<Team>, ForgejoError> {
+    ) -> Result<(TeamListHeaders, Vec<Team>), ForgejoError> {
         let request = self.get(&format!("user/teams?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -8192,11 +8269,11 @@ impl crate::Forgejo {
     pub async fn user_current_tracked_times(
         &self,
         query: UserCurrentTrackedTimesQuery,
-    ) -> Result<Vec<TrackedTime>, ForgejoError> {
+    ) -> Result<(TrackedTimeListHeaders, Vec<TrackedTime>), ForgejoError> {
         let request = self.get(&format!("user/times?{query}")).build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -8246,13 +8323,13 @@ impl crate::Forgejo {
         &self,
         username: &str,
         query: UserListActivityFeedsQuery,
-    ) -> Result<Vec<Activity>, ForgejoError> {
+    ) -> Result<(ActivityFeedsListHeaders, Vec<Activity>), ForgejoError> {
         let request = self
             .get(&format!("users/{username}/activities/feeds?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -8264,13 +8341,13 @@ impl crate::Forgejo {
         &self,
         username: &str,
         query: UserListFollowersQuery,
-    ) -> Result<Vec<User>, ForgejoError> {
+    ) -> Result<(UserListHeaders, Vec<User>), ForgejoError> {
         let request = self
             .get(&format!("users/{username}/followers?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -8282,13 +8359,13 @@ impl crate::Forgejo {
         &self,
         username: &str,
         query: UserListFollowingQuery,
-    ) -> Result<Vec<User>, ForgejoError> {
+    ) -> Result<(UserListHeaders, Vec<User>), ForgejoError> {
         let request = self
             .get(&format!("users/{username}/following?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -8319,13 +8396,13 @@ impl crate::Forgejo {
         &self,
         username: &str,
         query: UserListGpgKeysQuery,
-    ) -> Result<Vec<GPGKey>, ForgejoError> {
+    ) -> Result<(GpgKeyListHeaders, Vec<GPGKey>), ForgejoError> {
         let request = self
             .get(&format!("users/{username}/gpg_keys?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -8352,13 +8429,13 @@ impl crate::Forgejo {
         &self,
         username: &str,
         query: UserListKeysQuery,
-    ) -> Result<Vec<PublicKey>, ForgejoError> {
+    ) -> Result<(PublicKeyListHeaders, Vec<PublicKey>), ForgejoError> {
         let request = self
             .get(&format!("users/{username}/keys?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -8370,13 +8447,13 @@ impl crate::Forgejo {
         &self,
         username: &str,
         query: OrgListUserOrgsQuery,
-    ) -> Result<Vec<Organization>, ForgejoError> {
+    ) -> Result<(OrganizationListHeaders, Vec<Organization>), ForgejoError> {
         let request = self
             .get(&format!("users/{username}/orgs?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -8407,13 +8484,13 @@ impl crate::Forgejo {
         &self,
         username: &str,
         query: UserListReposQuery,
-    ) -> Result<Vec<Repository>, ForgejoError> {
+    ) -> Result<(RepositoryListHeaders, Vec<Repository>), ForgejoError> {
         let request = self
             .get(&format!("users/{username}/repos?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -8425,13 +8502,13 @@ impl crate::Forgejo {
         &self,
         username: &str,
         query: UserListStarredQuery,
-    ) -> Result<Vec<Repository>, ForgejoError> {
+    ) -> Result<(RepositoryListHeaders, Vec<Repository>), ForgejoError> {
         let request = self
             .get(&format!("users/{username}/starred?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -8443,13 +8520,13 @@ impl crate::Forgejo {
         &self,
         username: &str,
         query: UserListSubscriptionsQuery,
-    ) -> Result<Vec<Repository>, ForgejoError> {
+    ) -> Result<(RepositoryListHeaders, Vec<Repository>), ForgejoError> {
         let request = self
             .get(&format!("users/{username}/subscriptions?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
@@ -8461,13 +8538,13 @@ impl crate::Forgejo {
         &self,
         username: &str,
         query: UserGetTokensQuery,
-    ) -> Result<Vec<AccessToken>, ForgejoError> {
+    ) -> Result<(AccessTokenListHeaders, Vec<AccessToken>), ForgejoError> {
         let request = self
             .get(&format!("users/{username}/tokens?{query}"))
             .build()?;
         let response = self.execute(request).await?;
         match response.status().as_u16() {
-            200 => Ok(response.json().await?),
+            200 => Ok((response.headers().try_into()?, response.json().await?)),
             _ => Err(ForgejoError::UnexpectedStatusCode(response.status())),
         }
     }
diff --git a/src/generated/structs.rs b/src/generated/structs.rs
index a65f45d..c51164f 100644
--- a/src/generated/structs.rs
+++ b/src/generated/structs.rs
@@ -8,6 +8,44 @@ pub struct APIError {
     pub url: Option<url::Url>,
 }
 
+#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
+pub struct APIForbiddenError {
+    pub message: Option<String>,
+    pub url: Option<String>,
+}
+
+#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
+pub struct APIInvalidTopicsError {
+    #[serde(rename = "invalidTopics")]
+    pub invalid_topics: Option<Vec<String>>,
+    pub message: Option<String>,
+}
+
+#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
+pub struct APINotFound {
+    pub errors: Option<Vec<String>>,
+    pub message: Option<String>,
+    pub url: Option<String>,
+}
+
+#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
+pub struct APIRepoArchivedError {
+    pub message: Option<String>,
+    pub url: Option<String>,
+}
+
+#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
+pub struct APIUnauthorizedError {
+    pub message: Option<String>,
+    pub url: Option<String>,
+}
+
+#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
+pub struct APIValidationError {
+    pub message: Option<String>,
+    pub url: Option<String>,
+}
+
 #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 pub struct AccessToken {
     pub id: Option<i64>,
@@ -1276,6 +1314,8 @@ pub struct EditRepoOption {
     /// set to `true` to delete pr branch after merge by default
     pub default_delete_branch_after_merge: Option<bool>,
     pub default_merge_style: Option<DefaultMergeStyle>,
+    /// set to a update style to be used by this repository: "rebase" or "merge"
+    pub default_update_style: Option<String>,
     /// a short description of the repository.
     pub description: Option<String>,
     /// enable prune - remove obsolete remote-tracking references when mirroring
@@ -1844,6 +1884,13 @@ pub struct MarkdownOption {
 /// MarkupOption markup options
 #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 pub struct MarkupOption {
+    /// The current branch path where the form gets posted
+    ///
+    ///
+    ///
+    /// in: body
+    #[serde(rename = "BranchPath")]
+    pub branch_path: Option<String>,
     /// Context to render
     ///
     ///
@@ -2043,6 +2090,11 @@ pub struct Note {
     pub message: Option<String>,
 }
 
+#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
+pub struct NoteOptions {
+    pub message: Option<String>,
+}
+
 /// NotificationCount number of unread notifications
 #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
 pub struct NotificationCount {
@@ -2623,6 +2675,7 @@ pub struct Repository {
     pub default_branch: Option<String>,
     pub default_delete_branch_after_merge: Option<bool>,
     pub default_merge_style: Option<DefaultMergeStyle>,
+    pub default_update_style: Option<String>,
     pub description: Option<String>,
     pub empty: Option<bool>,
     pub external_tracker: Option<ExternalTracker>,
@@ -2899,6 +2952,13 @@ pub struct TransferRepoOption {
     pub team_ids: Option<Vec<i64>>,
 }
 
+/// UpdateBranchRepoOption options when updating a branch in a repository
+#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
+pub struct UpdateBranchRepoOption {
+    /// New branch name
+    pub name: String,
+}
+
 /// UpdateFileOptions options for updating files
 ///
 /// Note: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)
@@ -3092,6 +3152,378 @@ pub struct WikiPageMetaData {
     pub title: Option<String>,
 }
 
+pub struct AccessTokenListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for AccessTokenListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct ActivityFeedsListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for ActivityFeedsListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct AttachmentListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for AttachmentListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct BlockedUserListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for BlockedUserListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct BranchListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for BranchListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct BranchProtectionListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for BranchProtectionListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
 pub struct ChangedFileListHeaders {
     pub x_has_more: Option<bool>,
     pub x_page: Option<i64>,
@@ -3154,6 +3586,68 @@ impl TryFrom<&reqwest::header::HeaderMap> for ChangedFileListHeaders {
     }
 }
 
+pub struct CommentListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for CommentListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
 pub struct CommitListHeaders {
     pub x_has_more: Option<bool>,
     pub x_page: Option<i64>,
@@ -3216,6 +3710,1866 @@ impl TryFrom<&reqwest::header::HeaderMap> for CommitListHeaders {
     }
 }
 
+pub struct CommitStatusListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for CommitStatusListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct CronListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for CronListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct DeployKeyListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for DeployKeyListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct EmailListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for EmailListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct GpgKeyListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for GpgKeyListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct GitHookListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for GitHookListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct GitignoreTemplateListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for GitignoreTemplateListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct HookListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for HookListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct IssueListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for IssueListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct LabelListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for LabelListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct LabelTemplateListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for LabelTemplateListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct LicenseTemplateListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for LicenseTemplateListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct MilestoneListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for MilestoneListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct NotificationThreadListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for NotificationThreadListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct OAuth2ApplicationListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for OAuth2ApplicationListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct OrganizationListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for OrganizationListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct PackageFileListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for PackageFileListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct PackageListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for PackageListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct PublicKeyListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for PublicKeyListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct PullRequestListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for PullRequestListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct PullReviewCommentListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for PullReviewCommentListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct PullReviewListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for PullReviewListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct PushMirrorListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for PushMirrorListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct QuotaGroupListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for QuotaGroupListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct QuotaRuleInfoListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for QuotaRuleInfoListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct QuotaUsedArtifactListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for QuotaUsedArtifactListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct QuotaUsedAttachmentListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for QuotaUsedAttachmentListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct QuotaUsedPackageListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for QuotaUsedPackageListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct ReactionListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for ReactionListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct ReferenceListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for ReferenceListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
 pub struct RegistrationTokenHeaders {
     pub token: Option<String>,
 }
@@ -3235,88 +5589,870 @@ impl TryFrom<&reqwest::header::HeaderMap> for RegistrationTokenHeaders {
     }
 }
 
-pub struct ErrorHeaders {
-    pub message: Option<String>,
-    pub url: Option<url::Url>,
+pub struct ReleaseListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
 }
 
-impl TryFrom<&reqwest::header::HeaderMap> for ErrorHeaders {
+impl TryFrom<&reqwest::header::HeaderMap> for ReleaseListHeaders {
     type Error = StructureError;
 
     fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
-        let message = map
-            .get("message")
+        let x_has_more = map
+            .get("X-HasMore")
             .map(|s| -> Result<_, _> {
                 let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
-                Ok(s.to_string())
-            })
-            .transpose()?;
-        let url = map
-            .get("url")
-            .map(|s| -> Result<_, _> {
-                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
-                s.parse::<url::Url>()
+                s.parse::<bool>()
                     .map_err(|_| StructureError::HeaderParseFailed)
             })
             .transpose()?;
-        Ok(Self { message, url })
-    }
-}
-
-pub struct ForbiddenHeaders {
-    pub message: Option<String>,
-    pub url: Option<url::Url>,
-}
-
-impl TryFrom<&reqwest::header::HeaderMap> for ForbiddenHeaders {
-    type Error = StructureError;
-
-    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
-        let message = map
-            .get("message")
+        let x_page = map
+            .get("X-Page")
             .map(|s| -> Result<_, _> {
                 let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
-                Ok(s.to_string())
-            })
-            .transpose()?;
-        let url = map
-            .get("url")
-            .map(|s| -> Result<_, _> {
-                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
-                s.parse::<url::Url>()
+                s.parse::<i64>()
                     .map_err(|_| StructureError::HeaderParseFailed)
             })
             .transpose()?;
-        Ok(Self { message, url })
-    }
-}
-
-pub struct InvalidTopicsErrorHeaders {
-    pub invalid_topics: Option<Vec<String>>,
-    pub message: Option<String>,
-}
-
-impl TryFrom<&reqwest::header::HeaderMap> for InvalidTopicsErrorHeaders {
-    type Error = StructureError;
-
-    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
-        let invalid_topics = map
-            .get("invalidTopics")
+        let x_page_count = map
+            .get("X-PageCount")
             .map(|s| -> Result<_, _> {
                 let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
-                Ok(s.split(",").map(|s| s.to_string()).collect::<Vec<_>>())
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
             })
             .transpose()?;
-        let message = map
-            .get("message")
+        let x_per_page = map
+            .get("X-PerPage")
             .map(|s| -> Result<_, _> {
                 let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
-                Ok(s.to_string())
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
             })
             .transpose()?;
         Ok(Self {
-            invalid_topics,
-            message,
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct RepositoryListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for RepositoryListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct SecretListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for SecretListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct StopWatchListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for StopWatchListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct TagListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for TagListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct TagProtectionListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for TagProtectionListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct TasksListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for TasksListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct TeamListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for TeamListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct TimelineListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for TimelineListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct TrackedTimeListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for TrackedTimeListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct UserListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for UserListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct VariableListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for VariableListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct WikiCommitListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for WikiCommitListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
+        })
+    }
+}
+
+pub struct WikiPageListHeaders {
+    pub x_has_more: Option<bool>,
+    pub x_page: Option<i64>,
+    pub x_page_count: Option<i64>,
+    pub x_per_page: Option<i64>,
+    pub x_total: Option<i64>,
+}
+
+impl TryFrom<&reqwest::header::HeaderMap> for WikiPageListHeaders {
+    type Error = StructureError;
+
+    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
+        let x_has_more = map
+            .get("X-HasMore")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<bool>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page = map
+            .get("X-Page")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_page_count = map
+            .get("X-PageCount")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_per_page = map
+            .get("X-PerPage")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        let x_total = map
+            .get("X-Total")
+            .map(|s| -> Result<_, _> {
+                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
+                s.parse::<i64>()
+                    .map_err(|_| StructureError::HeaderParseFailed)
+            })
+            .transpose()?;
+        Ok(Self {
+            x_has_more,
+            x_page,
+            x_page_count,
+            x_per_page,
+            x_total,
         })
     }
 }
@@ -3361,62 +6497,6 @@ impl TryFrom<&reqwest::header::HeaderMap> for QuotaExceededHeaders {
     }
 }
 
-pub struct RepoArchivedErrorHeaders {
-    pub message: Option<String>,
-    pub url: Option<url::Url>,
-}
-
-impl TryFrom<&reqwest::header::HeaderMap> for RepoArchivedErrorHeaders {
-    type Error = StructureError;
-
-    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
-        let message = map
-            .get("message")
-            .map(|s| -> Result<_, _> {
-                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
-                Ok(s.to_string())
-            })
-            .transpose()?;
-        let url = map
-            .get("url")
-            .map(|s| -> Result<_, _> {
-                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
-                s.parse::<url::Url>()
-                    .map_err(|_| StructureError::HeaderParseFailed)
-            })
-            .transpose()?;
-        Ok(Self { message, url })
-    }
-}
-
-pub struct ValidationErrorHeaders {
-    pub message: Option<String>,
-    pub url: Option<url::Url>,
-}
-
-impl TryFrom<&reqwest::header::HeaderMap> for ValidationErrorHeaders {
-    type Error = StructureError;
-
-    fn try_from(map: &reqwest::header::HeaderMap) -> Result<Self, Self::Error> {
-        let message = map
-            .get("message")
-            .map(|s| -> Result<_, _> {
-                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
-                Ok(s.to_string())
-            })
-            .transpose()?;
-        let url = map
-            .get("url")
-            .map(|s| -> Result<_, _> {
-                let s = s.to_str().map_err(|_| StructureError::HeaderNotAscii)?;
-                s.parse::<url::Url>()
-                    .map_err(|_| StructureError::HeaderParseFailed)
-            })
-            .transpose()?;
-        Ok(Self { message, url })
-    }
-}
-
 #[derive(Debug, Clone, PartialEq, Default)]
 pub struct AdminCronListQuery {
     /// page number of results to return (1-based)
@@ -3559,6 +6639,8 @@ pub struct AdminSearchUsersQuery {
     pub source_id: Option<u64>,
     /// user's login name to search for
     pub login_name: Option<String>,
+    /// sort order of results
+    pub sort: Option<AdminSearchUsersQuerySort>,
     /// page number of results to return (1-based)
     pub page: Option<u32>,
     /// page size of results
@@ -3573,6 +6655,9 @@ impl std::fmt::Display for AdminSearchUsersQuery {
         if let Some(login_name) = &self.login_name {
             write!(f, "login_name={login_name}&")?;
         }
+        if let Some(sort) = &self.sort {
+            write!(f, "sort={}&", sort.as_str())?;
+        }
         if let Some(page) = &self.page {
             write!(f, "page={page}&")?;
         }
@@ -3584,6 +6669,34 @@ impl std::fmt::Display for AdminSearchUsersQuery {
     }
 }
 
+#[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
+pub enum AdminSearchUsersQuerySort {
+    #[serde(rename = "oldest")]
+    Oldest,
+    #[serde(rename = "newest")]
+    Newest,
+    #[serde(rename = "alphabetically")]
+    Alphabetically,
+    #[serde(rename = "reversealphabetically")]
+    Reversealphabetically,
+    #[serde(rename = "recentupdate")]
+    Recentupdate,
+    #[serde(rename = "leastupdate")]
+    Leastupdate,
+}
+
+impl AdminSearchUsersQuerySort {
+    fn as_str(&self) -> &'static str {
+        match self {
+            AdminSearchUsersQuerySort::Oldest => "oldest",
+            AdminSearchUsersQuerySort::Newest => "newest",
+            AdminSearchUsersQuerySort::Alphabetically => "alphabetically",
+            AdminSearchUsersQuerySort::Reversealphabetically => "reversealphabetically",
+            AdminSearchUsersQuerySort::Recentupdate => "recentupdate",
+            AdminSearchUsersQuerySort::Leastupdate => "leastupdate",
+        }
+    }
+}
 #[derive(Debug, Clone, PartialEq, Default)]
 pub struct AdminDeleteUserQuery {
     /// purge the user from the system completely
@@ -4198,46 +7311,46 @@ impl ListPackagesQueryType {
 }
 #[derive(Debug, Clone, PartialEq, Default)]
 pub struct IssueSearchIssuesQuery {
-    /// whether issue is open or closed
-    pub state: Option<String>,
-    /// comma separated list of labels. Fetch only issues that have any of this labels. Non existent labels are discarded
+    /// State of the issue
+    pub state: Option<IssueSearchIssuesQueryState>,
+    /// Comma-separated list of label names. Fetch only issues that have any of these labels. Non existent labels are discarded.
     pub labels: Option<String>,
-    /// comma separated list of milestone names. Fetch only issues that have any of this milestones. Non existent are discarded
+    /// Comma-separated list of milestone names. Fetch only issues that have any of these milestones. Non existent milestones are discarded.
     pub milestones: Option<String>,
-    /// search string
+    /// Search string
     pub q: Option<String>,
-    /// repository to prioritize in the results
+    /// Repository ID to prioritize in the results
     pub priority_repo_id: Option<u64>,
-    /// filter by type (issues / pulls) if set
-    pub r#type: Option<String>,
-    /// Only show notifications updated after the given time. This is a timestamp in RFC 3339 format
+    /// Filter by issue type
+    pub r#type: Option<IssueSearchIssuesQueryType>,
+    /// Only show issues updated after the given time (RFC 3339 format)
     pub since: Option<time::OffsetDateTime>,
-    /// Only show notifications updated before the given time. This is a timestamp in RFC 3339 format
+    /// Only show issues updated before the given time (RFC 3339 format)
     pub before: Option<time::OffsetDateTime>,
-    /// filter (issues / pulls) assigned to you, default is false
+    /// Filter issues or pulls assigned to the authenticated user
     pub assigned: Option<bool>,
-    /// filter (issues / pulls) created by you, default is false
+    /// Filter issues or pulls created by the authenticated user
     pub created: Option<bool>,
-    /// filter (issues / pulls) mentioning you, default is false
+    /// Filter issues or pulls mentioning the authenticated user
     pub mentioned: Option<bool>,
-    /// filter pulls requesting your review, default is false
+    /// Filter pull requests where the authenticated user's review was requested
     pub review_requested: Option<bool>,
-    /// filter pulls reviewed by you, default is false
+    /// Filter pull requests reviewed by the authenticated user
     pub reviewed: Option<bool>,
-    /// filter by owner
+    /// Filter by repository owner
     pub owner: Option<String>,
-    /// filter by team (requires organization owner parameter to be provided)
+    /// Filter by team (requires organization owner parameter)
     pub team: Option<String>,
-    /// page number of results to return (1-based)
+    /// Page number of results to return (1-based)
     pub page: Option<u32>,
-    /// page size of results
+    /// Number of items per page
     pub limit: Option<u32>,
 }
 
 impl std::fmt::Display for IssueSearchIssuesQuery {
     fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         if let Some(state) = &self.state {
-            write!(f, "state={state}&")?;
+            write!(f, "state={}&", state.as_str())?;
         }
         if let Some(labels) = &self.labels {
             write!(f, "labels={labels}&")?;
@@ -4252,7 +7365,7 @@ impl std::fmt::Display for IssueSearchIssuesQuery {
             write!(f, "priority_repo_id={priority_repo_id}&")?;
         }
         if let Some(r#type) = &self.r#type {
-            write!(f, "type={type}&")?;
+            write!(f, "type={}&", r#type.as_str())?;
         }
         if let Some(since) = &self.since {
             write!(
@@ -4304,6 +7417,42 @@ impl std::fmt::Display for IssueSearchIssuesQuery {
     }
 }
 
+#[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
+pub enum IssueSearchIssuesQueryState {
+    #[serde(rename = "open")]
+    Open,
+    #[serde(rename = "closed")]
+    Closed,
+    #[serde(rename = "all")]
+    All,
+}
+
+impl IssueSearchIssuesQueryState {
+    fn as_str(&self) -> &'static str {
+        match self {
+            IssueSearchIssuesQueryState::Open => "open",
+            IssueSearchIssuesQueryState::Closed => "closed",
+            IssueSearchIssuesQueryState::All => "all",
+        }
+    }
+}
+
+#[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
+pub enum IssueSearchIssuesQueryType {
+    #[serde(rename = "issues")]
+    Issues,
+    #[serde(rename = "pulls")]
+    Pulls,
+}
+
+impl IssueSearchIssuesQueryType {
+    fn as_str(&self) -> &'static str {
+        match self {
+            IssueSearchIssuesQueryType::Issues => "issues",
+            IssueSearchIssuesQueryType::Pulls => "pulls",
+        }
+    }
+}
 #[derive(Debug, Clone, PartialEq, Default)]
 pub struct RepoSearchQuery {
     /// keyword
@@ -5530,7 +8679,7 @@ impl std::fmt::Display for NotifyReadRepoListQuery {
 
 #[derive(Debug, Clone, PartialEq, Default)]
 pub struct RepoListPullRequestsQuery {
-    /// State of pull request: open or closed (optional)
+    /// State of pull request
     pub state: Option<RepoListPullRequestsQueryState>,
     /// Type of sort
     pub sort: Option<RepoListPullRequestsQuerySort>,
@@ -5538,9 +8687,11 @@ pub struct RepoListPullRequestsQuery {
     pub milestone: Option<u64>,
     /// Label IDs
     pub labels: Option<Vec<u64>>,
-    /// page number of results to return (1-based)
+    /// Filter by pull request author
+    pub poster: Option<String>,
+    /// Page number of results to return (1-based)
     pub page: Option<u32>,
-    /// page size of results
+    /// Page size of results
     pub limit: Option<u32>,
 }
 
@@ -5564,6 +8715,9 @@ impl std::fmt::Display for RepoListPullRequestsQuery {
                 }
             }
         }
+        if let Some(poster) = &self.poster {
+            write!(f, "poster={poster}&")?;
+        }
         if let Some(page) = &self.page {
             write!(f, "page={page}&")?;
         }
@@ -5577,10 +8731,10 @@ impl std::fmt::Display for RepoListPullRequestsQuery {
 
 #[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
 pub enum RepoListPullRequestsQueryState {
-    #[serde(rename = "closed")]
-    Closed,
     #[serde(rename = "open")]
     Open,
+    #[serde(rename = "closed")]
+    Closed,
     #[serde(rename = "all")]
     All,
 }
@@ -5588,8 +8742,8 @@ pub enum RepoListPullRequestsQueryState {
 impl RepoListPullRequestsQueryState {
     fn as_str(&self) -> &'static str {
         match self {
-            RepoListPullRequestsQueryState::Closed => "closed",
             RepoListPullRequestsQueryState::Open => "open",
+            RepoListPullRequestsQueryState::Closed => "closed",
             RepoListPullRequestsQueryState::All => "all",
         }
     }
@@ -5819,6 +8973,8 @@ pub struct RepoListReleasesQuery {
     pub draft: Option<bool>,
     /// filter (exclude / include) pre-releases
     pub pre_release: Option<bool>,
+    /// Search string
+    pub q: Option<String>,
     /// page number of results to return (1-based)
     pub page: Option<u32>,
     /// page size of results
@@ -5833,6 +8989,9 @@ impl std::fmt::Display for RepoListReleasesQuery {
         if let Some(pre_release) = &self.pre_release {
             write!(f, "pre-release={pre_release}&")?;
         }
+        if let Some(q) = &self.q {
+            write!(f, "q={q}&")?;
+        }
         if let Some(page) = &self.page {
             write!(f, "page={page}&")?;
         }
diff --git a/swagger.v1.json b/swagger.v1.json
index 13b13ad..98cbfe1 100644
--- a/swagger.v1.json
+++ b/swagger.v1.json
@@ -10,7 +10,7 @@
       "name": "This file is distributed under the MIT license for the purpose of interoperability",
       "url": "http://opensource.org/licenses/MIT"
     },
-    "version": "9.0.0-dev-1111-0496e72d15+gitea-1.22.0"
+    "version": "10.0.0-58-7e1df53+gitea-1.22.0"
   },
   "basePath": "/api/v1",
   "paths": {
@@ -1005,6 +1005,20 @@
             "name": "login_name",
             "in": "query"
           },
+          {
+            "enum": [
+              "oldest",
+              "newest",
+              "alphabetically",
+              "reversealphabetically",
+              "recentupdate",
+              "leastupdate"
+            ],
+            "type": "string",
+            "description": "sort order of results",
+            "name": "sort",
+            "in": "query"
+          },
           {
             "type": "integer",
             "format": "uint32",
@@ -1971,6 +1985,9 @@
           },
           "404": {
             "$ref": "#/responses/notFound"
+          },
+          "422": {
+            "$ref": "#/responses/error"
           }
         }
       }
@@ -3734,109 +3751,120 @@
         "operationId": "issueSearchIssues",
         "parameters": [
           {
+            "enum": ["open", "closed", "all"],
             "type": "string",
-            "description": "whether issue is open or closed",
+            "default": "open",
+            "description": "State of the issue",
             "name": "state",
             "in": "query"
           },
           {
             "type": "string",
-            "description": "comma separated list of labels. Fetch only issues that have any of this labels. Non existent labels are discarded",
+            "description": "Comma-separated list of label names. Fetch only issues that have any of these labels. Non existent labels are discarded.",
             "name": "labels",
             "in": "query"
           },
           {
             "type": "string",
-            "description": "comma separated list of milestone names. Fetch only issues that have any of this milestones. Non existent are discarded",
+            "description": "Comma-separated list of milestone names. Fetch only issues that have any of these milestones. Non existent milestones are discarded.",
             "name": "milestones",
             "in": "query"
           },
           {
             "type": "string",
-            "description": "search string",
+            "description": "Search string",
             "name": "q",
             "in": "query"
           },
           {
             "type": "integer",
             "format": "uint64",
-            "description": "repository to prioritize in the results",
+            "description": "Repository ID to prioritize in the results",
             "name": "priority_repo_id",
             "in": "query"
           },
           {
+            "enum": ["issues", "pulls"],
             "type": "string",
-            "description": "filter by type (issues / pulls) if set",
+            "description": "Filter by issue type",
             "name": "type",
             "in": "query"
           },
           {
             "type": "string",
             "format": "date-time",
-            "description": "Only show notifications updated after the given time. This is a timestamp in RFC 3339 format",
+            "description": "Only show issues updated after the given time (RFC 3339 format)",
             "name": "since",
             "in": "query"
           },
           {
             "type": "string",
             "format": "date-time",
-            "description": "Only show notifications updated before the given time. This is a timestamp in RFC 3339 format",
+            "description": "Only show issues updated before the given time (RFC 3339 format)",
             "name": "before",
             "in": "query"
           },
           {
             "type": "boolean",
-            "description": "filter (issues / pulls) assigned to you, default is false",
+            "default": false,
+            "description": "Filter issues or pulls assigned to the authenticated user",
             "name": "assigned",
             "in": "query"
           },
           {
             "type": "boolean",
-            "description": "filter (issues / pulls) created by you, default is false",
+            "default": false,
+            "description": "Filter issues or pulls created by the authenticated user",
             "name": "created",
             "in": "query"
           },
           {
             "type": "boolean",
-            "description": "filter (issues / pulls) mentioning you, default is false",
+            "default": false,
+            "description": "Filter issues or pulls mentioning the authenticated user",
             "name": "mentioned",
             "in": "query"
           },
           {
             "type": "boolean",
-            "description": "filter pulls requesting your review, default is false",
+            "default": false,
+            "description": "Filter pull requests where the authenticated user's review was requested",
             "name": "review_requested",
             "in": "query"
           },
           {
             "type": "boolean",
-            "description": "filter pulls reviewed by you, default is false",
+            "default": false,
+            "description": "Filter pull requests reviewed by the authenticated user",
             "name": "reviewed",
             "in": "query"
           },
           {
             "type": "string",
-            "description": "filter by owner",
+            "description": "Filter by repository owner",
             "name": "owner",
             "in": "query"
           },
           {
             "type": "string",
-            "description": "filter by team (requires organization owner parameter to be provided)",
+            "description": "Filter by team (requires organization owner parameter)",
             "name": "team",
             "in": "query"
           },
           {
+            "minimum": 1,
             "type": "integer",
             "format": "uint32",
-            "description": "page number of results to return (1-based)",
+            "default": 1,
+            "description": "Page number of results to return (1-based)",
             "name": "page",
             "in": "query"
           },
           {
+            "minimum": 0,
             "type": "integer",
             "format": "uint32",
-            "description": "page size of results",
+            "description": "Number of items per page",
             "name": "limit",
             "in": "query"
           }
@@ -3844,6 +3872,12 @@
         "responses": {
           "200": {
             "$ref": "#/responses/IssueList"
+          },
+          "400": {
+            "$ref": "#/responses/error"
+          },
+          "422": {
+            "$ref": "#/responses/validationError"
           }
         }
       }
@@ -5201,6 +5235,57 @@
             "$ref": "#/responses/repoArchivedError"
           }
         }
+      },
+      "patch": {
+        "consumes": ["application/json"],
+        "produces": ["application/json"],
+        "tags": ["repository"],
+        "summary": "Update a branch",
+        "operationId": "repoUpdateBranch",
+        "parameters": [
+          {
+            "type": "string",
+            "description": "owner of the repo",
+            "name": "owner",
+            "in": "path",
+            "required": true
+          },
+          {
+            "type": "string",
+            "description": "name of the repo",
+            "name": "repo",
+            "in": "path",
+            "required": true
+          },
+          {
+            "type": "string",
+            "description": "name of the branch",
+            "name": "branch",
+            "in": "path",
+            "required": true
+          },
+          {
+            "name": "body",
+            "in": "body",
+            "schema": {
+              "$ref": "#/definitions/UpdateBranchRepoOption"
+            }
+          }
+        ],
+        "responses": {
+          "204": {
+            "$ref": "#/responses/empty"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
+          "404": {
+            "$ref": "#/responses/notFound"
+          },
+          "422": {
+            "$ref": "#/responses/validationError"
+          }
+        }
       }
     },
     "/repos/{owner}/{repo}/collaborators": {
@@ -6644,6 +6729,93 @@
             "$ref": "#/responses/validationError"
           }
         }
+      },
+      "post": {
+        "produces": ["application/json"],
+        "tags": ["repository"],
+        "summary": "Set a note corresponding to a single commit from a repository",
+        "operationId": "repoSetNote",
+        "parameters": [
+          {
+            "type": "string",
+            "description": "owner of the repo",
+            "name": "owner",
+            "in": "path",
+            "required": true
+          },
+          {
+            "type": "string",
+            "description": "name of the repo",
+            "name": "repo",
+            "in": "path",
+            "required": true
+          },
+          {
+            "type": "string",
+            "description": "a git ref or commit sha",
+            "name": "sha",
+            "in": "path",
+            "required": true
+          },
+          {
+            "name": "body",
+            "in": "body",
+            "schema": {
+              "$ref": "#/definitions/NoteOptions"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "$ref": "#/responses/Note"
+          },
+          "404": {
+            "$ref": "#/responses/notFound"
+          },
+          "422": {
+            "$ref": "#/responses/validationError"
+          }
+        }
+      },
+      "delete": {
+        "produces": ["application/json"],
+        "tags": ["repository"],
+        "summary": "Removes a note corresponding to a single commit from a repository",
+        "operationId": "repoRemoveNote",
+        "parameters": [
+          {
+            "type": "string",
+            "description": "owner of the repo",
+            "name": "owner",
+            "in": "path",
+            "required": true
+          },
+          {
+            "type": "string",
+            "description": "name of the repo",
+            "name": "repo",
+            "in": "path",
+            "required": true
+          },
+          {
+            "type": "string",
+            "description": "a git ref or commit sha",
+            "name": "sha",
+            "in": "path",
+            "required": true
+          }
+        ],
+        "responses": {
+          "204": {
+            "$ref": "#/responses/empty"
+          },
+          "404": {
+            "$ref": "#/responses/notFound"
+          },
+          "422": {
+            "$ref": "#/responses/validationError"
+          }
+        }
       }
     },
     "/repos/{owner}/{repo}/git/refs": {
@@ -11165,22 +11337,23 @@
         "parameters": [
           {
             "type": "string",
-            "description": "owner of the repo",
+            "description": "Owner of the repo",
             "name": "owner",
             "in": "path",
             "required": true
           },
           {
             "type": "string",
-            "description": "name of the repo",
+            "description": "Name of the repo",
             "name": "repo",
             "in": "path",
             "required": true
           },
           {
-            "enum": ["closed", "open", "all"],
+            "enum": ["open", "closed", "all"],
             "type": "string",
-            "description": "State of pull request: open or closed (optional)",
+            "default": "open",
+            "description": "State of pull request",
             "name": "state",
             "in": "query"
           },
@@ -11217,16 +11390,25 @@
             "in": "query"
           },
           {
+            "type": "string",
+            "description": "Filter by pull request author",
+            "name": "poster",
+            "in": "query"
+          },
+          {
+            "minimum": 1,
             "type": "integer",
             "format": "uint32",
-            "description": "page number of results to return (1-based)",
+            "default": 1,
+            "description": "Page number of results to return (1-based)",
             "name": "page",
             "in": "query"
           },
           {
+            "minimum": 0,
             "type": "integer",
             "format": "uint32",
-            "description": "page size of results",
+            "description": "Page size of results",
             "name": "limit",
             "in": "query"
           }
@@ -11237,6 +11419,9 @@
           },
           "404": {
             "$ref": "#/responses/notFound"
+          },
+          "500": {
+            "$ref": "#/responses/error"
           }
         }
       },
@@ -12854,6 +13039,12 @@
             "name": "pre-release",
             "in": "query"
           },
+          {
+            "type": "string",
+            "description": "Search string",
+            "name": "q",
+            "in": "query"
+          },
           {
             "type": "integer",
             "format": "uint32",
@@ -15641,6 +15832,12 @@
         "responses": {
           "200": {
             "$ref": "#/responses/User"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       }
@@ -15654,6 +15851,12 @@
         "responses": {
           "200": {
             "$ref": "#/responses/RegistrationToken"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       }
@@ -15691,6 +15894,12 @@
           "400": {
             "$ref": "#/responses/error"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           }
@@ -15718,6 +15927,12 @@
           "400": {
             "$ref": "#/responses/error"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           }
@@ -15753,6 +15968,12 @@
           "400": {
             "$ref": "#/responses/error"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           }
@@ -15781,6 +16002,12 @@
           "400": {
             "$ref": "#/responses/error"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           }
@@ -15818,6 +16045,12 @@
           "400": {
             "$ref": "#/responses/error"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           }
@@ -15855,6 +16088,12 @@
           "400": {
             "$ref": "#/responses/error"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           }
@@ -15884,6 +16123,12 @@
           "400": {
             "$ref": "#/responses/error"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           }
@@ -15915,6 +16160,12 @@
         "responses": {
           "200": {
             "$ref": "#/responses/OAuth2ApplicationList"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       },
@@ -15939,6 +16190,12 @@
           },
           "400": {
             "$ref": "#/responses/error"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       }
@@ -15963,6 +16220,12 @@
           "200": {
             "$ref": "#/responses/OAuth2Application"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           }
@@ -15987,6 +16250,12 @@
           "204": {
             "$ref": "#/responses/empty"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           }
@@ -16019,6 +16288,12 @@
           "200": {
             "$ref": "#/responses/OAuth2Application"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           }
@@ -16043,6 +16318,12 @@
         "responses": {
           "204": {
             "$ref": "#/responses/empty"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       },
@@ -16054,6 +16335,12 @@
         "responses": {
           "204": {
             "$ref": "#/responses/empty"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       }
@@ -16077,6 +16364,12 @@
           "204": {
             "$ref": "#/responses/empty"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           },
@@ -16095,6 +16388,12 @@
         "responses": {
           "200": {
             "$ref": "#/responses/EmailList"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       },
@@ -16116,6 +16415,12 @@
           "201": {
             "$ref": "#/responses/EmailList"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "422": {
             "$ref": "#/responses/validationError"
           }
@@ -16139,6 +16444,12 @@
           "204": {
             "$ref": "#/responses/empty"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           }
@@ -16170,6 +16481,12 @@
         "responses": {
           "200": {
             "$ref": "#/responses/UserList"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       }
@@ -16199,6 +16516,12 @@
         "responses": {
           "200": {
             "$ref": "#/responses/UserList"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       }
@@ -16221,6 +16544,12 @@
           "204": {
             "$ref": "#/responses/empty"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           }
@@ -16243,6 +16572,9 @@
           "204": {
             "$ref": "#/responses/empty"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
           "403": {
             "$ref": "#/responses/forbidden"
           },
@@ -16268,6 +16600,12 @@
           "204": {
             "$ref": "#/responses/empty"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           }
@@ -16284,6 +16622,12 @@
           "200": {
             "$ref": "#/responses/string"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           }
@@ -16301,6 +16645,12 @@
           "201": {
             "$ref": "#/responses/GPGKey"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           },
@@ -16335,6 +16685,12 @@
         "responses": {
           "200": {
             "$ref": "#/responses/GPGKeyList"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       },
@@ -16357,6 +16713,12 @@
           "201": {
             "$ref": "#/responses/GPGKey"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           },
@@ -16386,6 +16748,12 @@
           "200": {
             "$ref": "#/responses/GPGKey"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           }
@@ -16410,6 +16778,9 @@
           "204": {
             "$ref": "#/responses/empty"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
           "403": {
             "$ref": "#/responses/forbidden"
           },
@@ -16444,6 +16815,12 @@
         "responses": {
           "200": {
             "$ref": "#/responses/HookList"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       },
@@ -16466,6 +16843,12 @@
         "responses": {
           "201": {
             "$ref": "#/responses/Hook"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       }
@@ -16489,6 +16872,12 @@
         "responses": {
           "200": {
             "$ref": "#/responses/Hook"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       },
@@ -16510,6 +16899,12 @@
         "responses": {
           "204": {
             "$ref": "#/responses/empty"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       },
@@ -16539,6 +16934,12 @@
         "responses": {
           "200": {
             "$ref": "#/responses/Hook"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       }
@@ -16574,6 +16975,12 @@
         "responses": {
           "200": {
             "$ref": "#/responses/PublicKeyList"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       },
@@ -16596,6 +17003,12 @@
           "201": {
             "$ref": "#/responses/PublicKey"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "422": {
             "$ref": "#/responses/validationError"
           }
@@ -16622,6 +17035,12 @@
           "200": {
             "$ref": "#/responses/PublicKey"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           }
@@ -16646,6 +17065,9 @@
           "204": {
             "$ref": "#/responses/empty"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
           "403": {
             "$ref": "#/responses/forbidden"
           },
@@ -16680,6 +17102,12 @@
         "responses": {
           "200": {
             "$ref": "#/responses/BlockedUserList"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       }
@@ -16710,6 +17138,12 @@
           "200": {
             "$ref": "#/responses/OrganizationList"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           }
@@ -16726,6 +17160,9 @@
           "200": {
             "$ref": "#/responses/QuotaInfo"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
           "403": {
             "$ref": "#/responses/forbidden"
           }
@@ -16758,6 +17195,9 @@
           "200": {
             "$ref": "#/responses/QuotaUsedArtifactList"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
           "403": {
             "$ref": "#/responses/forbidden"
           }
@@ -16790,6 +17230,9 @@
           "200": {
             "$ref": "#/responses/QuotaUsedAttachmentList"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
           "403": {
             "$ref": "#/responses/forbidden"
           }
@@ -16806,6 +17249,9 @@
           "200": {
             "$ref": "#/responses/boolean"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
           "403": {
             "$ref": "#/responses/forbidden"
           },
@@ -16841,6 +17287,9 @@
           "200": {
             "$ref": "#/responses/QuotaUsedPackageList"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
           "403": {
             "$ref": "#/responses/forbidden"
           }
@@ -16879,6 +17328,12 @@
           "200": {
             "$ref": "#/responses/RepositoryList"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "422": {
             "$ref": "#/responses/validationError"
           }
@@ -16906,6 +17361,12 @@
           "400": {
             "$ref": "#/responses/error"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "409": {
             "description": "The repository with the same name already exists."
           },
@@ -16927,6 +17388,12 @@
         "responses": {
           "200": {
             "$ref": "#/responses/UserSettings"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       },
@@ -16947,6 +17414,12 @@
         "responses": {
           "200": {
             "$ref": "#/responses/UserSettings"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       }
@@ -16976,6 +17449,12 @@
         "responses": {
           "200": {
             "$ref": "#/responses/RepositoryList"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       }
@@ -17005,6 +17484,12 @@
           "204": {
             "$ref": "#/responses/empty"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           }
@@ -17034,6 +17519,12 @@
           "204": {
             "$ref": "#/responses/empty"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           }
@@ -17063,6 +17554,12 @@
           "204": {
             "$ref": "#/responses/empty"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           }
@@ -17095,6 +17592,12 @@
         "responses": {
           "200": {
             "$ref": "#/responses/StopWatchList"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       }
@@ -17124,6 +17627,12 @@
         "responses": {
           "200": {
             "$ref": "#/responses/RepositoryList"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       }
@@ -17153,6 +17662,12 @@
         "responses": {
           "200": {
             "$ref": "#/responses/TeamList"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       }
@@ -17196,6 +17711,12 @@
         "responses": {
           "200": {
             "$ref": "#/responses/TrackedTimeList"
+          },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
           }
         }
       }
@@ -17219,6 +17740,12 @@
           "204": {
             "$ref": "#/responses/empty"
           },
+          "401": {
+            "$ref": "#/responses/unauthorized"
+          },
+          "403": {
+            "$ref": "#/responses/forbidden"
+          },
           "404": {
             "$ref": "#/responses/notFound"
           },
@@ -17805,6 +18332,9 @@
           },
           "403": {
             "$ref": "#/responses/forbidden"
+          },
+          "404": {
+            "$ref": "#/responses/notFound"
           }
         }
       },
@@ -17839,6 +18369,9 @@
           },
           "403": {
             "$ref": "#/responses/forbidden"
+          },
+          "404": {
+            "$ref": "#/responses/notFound"
           }
         }
       }
@@ -17912,6 +18445,100 @@
       },
       "x-go-package": "code.gitea.io/gitea/modules/structs"
     },
+    "APIForbiddenError": {
+      "type": "object",
+      "properties": {
+        "message": {
+          "type": "string",
+          "x-go-name": "Message"
+        },
+        "url": {
+          "type": "string",
+          "x-go-name": "URL"
+        }
+      },
+      "x-go-package": "code.gitea.io/gitea/services/context"
+    },
+    "APIInvalidTopicsError": {
+      "type": "object",
+      "properties": {
+        "invalidTopics": {
+          "type": "array",
+          "items": {
+            "type": "string"
+          },
+          "x-go-name": "InvalidTopics"
+        },
+        "message": {
+          "type": "string",
+          "x-go-name": "Message"
+        }
+      },
+      "x-go-package": "code.gitea.io/gitea/services/context"
+    },
+    "APINotFound": {
+      "type": "object",
+      "properties": {
+        "errors": {
+          "type": "array",
+          "items": {
+            "type": "string"
+          },
+          "x-go-name": "Errors"
+        },
+        "message": {
+          "type": "string",
+          "x-go-name": "Message"
+        },
+        "url": {
+          "type": "string",
+          "x-go-name": "URL"
+        }
+      },
+      "x-go-package": "code.gitea.io/gitea/services/context"
+    },
+    "APIRepoArchivedError": {
+      "type": "object",
+      "properties": {
+        "message": {
+          "type": "string",
+          "x-go-name": "Message"
+        },
+        "url": {
+          "type": "string",
+          "x-go-name": "URL"
+        }
+      },
+      "x-go-package": "code.gitea.io/gitea/services/context"
+    },
+    "APIUnauthorizedError": {
+      "type": "object",
+      "properties": {
+        "message": {
+          "type": "string",
+          "x-go-name": "Message"
+        },
+        "url": {
+          "type": "string",
+          "x-go-name": "URL"
+        }
+      },
+      "x-go-package": "code.gitea.io/gitea/services/context"
+    },
+    "APIValidationError": {
+      "type": "object",
+      "properties": {
+        "message": {
+          "type": "string",
+          "x-go-name": "Message"
+        },
+        "url": {
+          "type": "string",
+          "x-go-name": "URL"
+        }
+      },
+      "x-go-package": "code.gitea.io/gitea/services/context"
+    },
     "AccessToken": {
       "type": "object",
       "title": "AccessToken represents an API access token.",
@@ -20845,6 +21472,11 @@
         "default_merge_style": {
           "$ref": "#/definitions/DefaultMergeStyle"
         },
+        "default_update_style": {
+          "description": "set to a update style to be used by this repository: \"rebase\" or \"merge\"",
+          "type": "string",
+          "x-go-name": "DefaultUpdateStyle"
+        },
         "description": {
           "description": "a short description of the repository.",
           "type": "string",
@@ -22279,6 +22911,10 @@
       "description": "MarkupOption markup options",
       "type": "object",
       "properties": {
+        "BranchPath": {
+          "description": "The current branch path where the form gets posted\n\nin: body",
+          "type": "string"
+        },
         "Context": {
           "description": "Context to render\n\nin: body",
           "type": "string"
@@ -22651,6 +23287,16 @@
       },
       "x-go-package": "code.gitea.io/gitea/modules/structs"
     },
+    "NoteOptions": {
+      "type": "object",
+      "properties": {
+        "message": {
+          "type": "string",
+          "x-go-name": "Message"
+        }
+      },
+      "x-go-package": "code.gitea.io/gitea/modules/structs"
+    },
     "NotificationCount": {
       "description": "NotificationCount number of unread notifications",
       "type": "object",
@@ -24153,6 +24799,10 @@
         "default_merge_style": {
           "$ref": "#/definitions/DefaultMergeStyle"
         },
+        "default_update_style": {
+          "type": "string",
+          "x-go-name": "DefaultUpdateStyle"
+        },
         "description": {
           "type": "string",
           "x-go-name": "Description"
@@ -24905,6 +25555,20 @@
       },
       "x-go-package": "code.gitea.io/gitea/modules/structs"
     },
+    "UpdateBranchRepoOption": {
+      "description": "UpdateBranchRepoOption options when updating a branch in a repository",
+      "type": "object",
+      "required": ["name"],
+      "properties": {
+        "name": {
+          "description": "New branch name",
+          "type": "string",
+          "uniqueItems": true,
+          "x-go-name": "Name"
+        }
+      },
+      "x-go-package": "code.gitea.io/gitea/modules/structs"
+    },
     "UpdateFileOptions": {
       "description": "UpdateFileOptions options for updating files\nNote: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)",
       "type": "object",
@@ -25398,6 +26062,32 @@
         "items": {
           "$ref": "#/definitions/AccessToken"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "ActionVariable": {
@@ -25413,6 +26103,32 @@
         "items": {
           "$ref": "#/definitions/Activity"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "ActivityPub": {
@@ -25440,6 +26156,32 @@
         "items": {
           "$ref": "#/definitions/Attachment"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "BlockedUserList": {
@@ -25449,6 +26191,32 @@
         "items": {
           "$ref": "#/definitions/BlockedUser"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "Branch": {
@@ -25464,6 +26232,32 @@
         "items": {
           "$ref": "#/definitions/Branch"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "BranchProtection": {
@@ -25479,6 +26273,32 @@
         "items": {
           "$ref": "#/definitions/BranchProtection"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "ChangedFileList": {
@@ -25535,6 +26355,32 @@
         "items": {
           "$ref": "#/definitions/Comment"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "Commit": {
@@ -25591,6 +26437,32 @@
         "items": {
           "$ref": "#/definitions/CommitStatus"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "Compare": {
@@ -25621,6 +26493,32 @@
         "items": {
           "$ref": "#/definitions/Cron"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "DeployKey": {
@@ -25636,6 +26534,32 @@
         "items": {
           "$ref": "#/definitions/DeployKey"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "EmailList": {
@@ -25645,6 +26569,32 @@
         "items": {
           "$ref": "#/definitions/Email"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "EmptyRepository": {
@@ -25684,6 +26634,32 @@
         "items": {
           "$ref": "#/definitions/GPGKey"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "GeneralAPISettings": {
@@ -25729,6 +26705,32 @@
         "items": {
           "$ref": "#/definitions/GitHook"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "GitTreeResponse": {
@@ -25750,6 +26752,32 @@
         "items": {
           "type": "string"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "Hook": {
@@ -25765,6 +26793,32 @@
         "items": {
           "$ref": "#/definitions/Hook"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "Issue": {
@@ -25786,6 +26840,32 @@
         "items": {
           "$ref": "#/definitions/Issue"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "IssueTemplates": {
@@ -25810,6 +26890,32 @@
         "items": {
           "$ref": "#/definitions/Label"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "LabelTemplateInfo": {
@@ -25828,6 +26934,32 @@
         "items": {
           "type": "string"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "LanguageStatistics": {
@@ -25853,6 +26985,32 @@
         "items": {
           "$ref": "#/definitions/LicensesTemplateListEntry"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "MarkdownRender": {
@@ -25880,6 +27038,32 @@
         "items": {
           "$ref": "#/definitions/Milestone"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "NodeInfo": {
@@ -25913,6 +27097,32 @@
         "items": {
           "$ref": "#/definitions/NotificationThread"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "OAuth2Application": {
@@ -25928,6 +27138,32 @@
         "items": {
           "$ref": "#/definitions/OAuth2Application"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "Organization": {
@@ -25943,6 +27179,32 @@
         "items": {
           "$ref": "#/definitions/Organization"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "OrganizationPermissions": {
@@ -25964,6 +27226,32 @@
         "items": {
           "$ref": "#/definitions/PackageFile"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "PackageList": {
@@ -25973,6 +27261,32 @@
         "items": {
           "$ref": "#/definitions/Package"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "PublicKey": {
@@ -25988,6 +27302,32 @@
         "items": {
           "$ref": "#/definitions/PublicKey"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "PullRequest": {
@@ -26003,6 +27343,32 @@
         "items": {
           "$ref": "#/definitions/PullRequest"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "PullReview": {
@@ -26024,6 +27390,32 @@
         "items": {
           "$ref": "#/definitions/PullReviewComment"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "PullReviewList": {
@@ -26033,6 +27425,32 @@
         "items": {
           "$ref": "#/definitions/PullReview"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "PushMirror": {
@@ -26048,6 +27466,32 @@
         "items": {
           "$ref": "#/definitions/PushMirror"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "QuotaGroup": {
@@ -26060,6 +27504,32 @@
       "description": "QuotaGroupList",
       "schema": {
         "$ref": "#/definitions/QuotaGroupList"
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "QuotaInfo": {
@@ -26081,24 +27551,128 @@
         "items": {
           "$ref": "#/definitions/QuotaRuleInfo"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "QuotaUsedArtifactList": {
       "description": "QuotaUsedArtifactList",
       "schema": {
         "$ref": "#/definitions/QuotaUsedArtifactList"
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "QuotaUsedAttachmentList": {
       "description": "QuotaUsedAttachmentList",
       "schema": {
         "$ref": "#/definitions/QuotaUsedAttachmentList"
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "QuotaUsedPackageList": {
       "description": "QuotaUsedPackageList",
       "schema": {
         "$ref": "#/definitions/QuotaUsedPackageList"
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "Reaction": {
@@ -26114,6 +27688,32 @@
         "items": {
           "$ref": "#/definitions/Reaction"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "Reference": {
@@ -26129,6 +27729,32 @@
         "items": {
           "$ref": "#/definitions/Reference"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "RegistrationToken": {
@@ -26152,6 +27778,32 @@
         "items": {
           "$ref": "#/definitions/Release"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "RepoCollaboratorPermission": {
@@ -26191,6 +27843,32 @@
         "items": {
           "$ref": "#/definitions/Repository"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "SearchResults": {
@@ -26212,6 +27890,32 @@
         "items": {
           "$ref": "#/definitions/Secret"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "ServerVersion": {
@@ -26233,6 +27937,32 @@
         "items": {
           "$ref": "#/definitions/StopWatch"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "StringSlice": {
@@ -26257,6 +27987,32 @@
         "items": {
           "$ref": "#/definitions/Tag"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "TagProtection": {
@@ -26272,12 +28028,64 @@
         "items": {
           "$ref": "#/definitions/TagProtection"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "TasksList": {
       "description": "TasksList",
       "schema": {
         "$ref": "#/definitions/ActionTaskResponse"
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "Team": {
@@ -26293,6 +28101,32 @@
         "items": {
           "$ref": "#/definitions/Team"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "TimelineList": {
@@ -26302,6 +28136,32 @@
         "items": {
           "$ref": "#/definitions/TimelineComment"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "TopicListResponse": {
@@ -26332,6 +28192,32 @@
         "items": {
           "$ref": "#/definitions/TrackedTime"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "User": {
@@ -26356,6 +28242,32 @@
         "items": {
           "$ref": "#/definitions/User"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "UserSettings": {
@@ -26371,6 +28283,32 @@
         "items": {
           "$ref": "#/definitions/ActionVariable"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "WatchInfo": {
@@ -26383,6 +28321,32 @@
       "description": "WikiCommitList",
       "schema": {
         "$ref": "#/definitions/WikiCommitList"
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "WikiPage": {
@@ -26398,6 +28362,32 @@
         "items": {
           "$ref": "#/definitions/WikiPageMetaData"
         }
+      },
+      "headers": {
+        "X-HasMore": {
+          "type": "boolean",
+          "description": "True if there is another page"
+        },
+        "X-Page": {
+          "type": "integer",
+          "format": "int64",
+          "description": "The current page"
+        },
+        "X-PageCount": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total number of pages"
+        },
+        "X-PerPage": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Commits per page"
+        },
+        "X-Total": {
+          "type": "integer",
+          "format": "int64",
+          "description": "Total commit count"
+        }
       }
     },
     "boolean": {
@@ -26411,49 +28401,32 @@
     },
     "error": {
       "description": "APIError is error format response",
-      "headers": {
-        "message": {
-          "type": "string"
-        },
-        "url": {
-          "type": "string",
-          "format": "url"
-        }
+      "schema": {
+        "$ref": "#/definitions/APIError"
       }
     },
     "forbidden": {
       "description": "APIForbiddenError is a forbidden error response",
-      "headers": {
-        "message": {
-          "type": "string"
-        },
-        "url": {
-          "type": "string",
-          "format": "url"
-        }
+      "schema": {
+        "$ref": "#/definitions/APIForbiddenError"
       }
     },
     "invalidTopicsError": {
       "description": "APIInvalidTopicsError is error format response to invalid topics",
-      "headers": {
-        "invalidTopics": {
-          "type": "array",
-          "items": {
-            "type": "string"
-          }
-        },
-        "message": {
-          "type": "string"
-        }
+      "schema": {
+        "$ref": "#/definitions/APIInvalidTopicsError"
       }
     },
     "notFound": {
-      "description": "APINotFound is a not found empty response"
+      "description": "APINotFound is a not found error response",
+      "schema": {
+        "$ref": "#/definitions/APINotFound"
+      }
     },
     "parameterBodies": {
       "description": "parameterBodies",
       "schema": {
-        "$ref": "#/definitions/SetUserQuotaGroupsOptions"
+        "$ref": "#/definitions/NoteOptions"
       }
     },
     "quotaExceeded": {
@@ -26476,14 +28449,8 @@
     },
     "repoArchivedError": {
       "description": "APIRepoArchivedError is an error that is raised when an archived repo should be modified",
-      "headers": {
-        "message": {
-          "type": "string"
-        },
-        "url": {
-          "type": "string",
-          "format": "url"
-        }
+      "schema": {
+        "$ref": "#/definitions/APIRepoArchivedError"
       }
     },
     "string": {
@@ -26492,16 +28459,16 @@
         "type": "string"
       }
     },
+    "unauthorized": {
+      "description": "APIUnauthorizedError is a unauthorized error response",
+      "schema": {
+        "$ref": "#/definitions/APIUnauthorizedError"
+      }
+    },
     "validationError": {
       "description": "APIValidationError is error format response related to input validation",
-      "headers": {
-        "message": {
-          "type": "string"
-        },
-        "url": {
-          "type": "string",
-          "format": "url"
-        }
+      "schema": {
+        "$ref": "#/definitions/APIValidationError"
       }
     }
   },
diff --git a/tests/admin.rs b/tests/admin.rs
index 674ca16..4aa7f13 100644
--- a/tests/admin.rs
+++ b/tests/admin.rs
@@ -25,7 +25,7 @@ async fn user() {
         .expect("failed to create user");
 
     let query = AdminSearchUsersQuery::default();
-    let users = api
+    let (_, users) = api
         .admin_search_users(query)
         .await
         .expect("failed to search users");
@@ -34,7 +34,7 @@ async fn user() {
         "could not find new user"
     );
     let query = AdminGetAllEmailsQuery::default();
-    let users = api
+    let (_, users) = api
         .admin_get_all_emails(query)
         .await
         .expect("failed to search emails");
@@ -84,7 +84,7 @@ async fn org() {
         .expect("failed to create org");
     let query = AdminGetAllOrgsQuery::default();
     assert!(
-        !api.admin_get_all_orgs(query).await.unwrap().is_empty(),
+        !api.admin_get_all_orgs(query).await.unwrap().1.is_empty(),
         "org list empty"
     );
     let rename_opt = RenameUserOption {
@@ -145,7 +145,7 @@ async fn cron() {
     let api = common::login();
 
     let query = AdminCronListQuery::default();
-    let crons = api
+    let (_, crons) = api
         .admin_cron_list(query)
         .await
         .expect("failed to get crons list");
@@ -236,7 +236,7 @@ async fn quota_group() {
         .as_ref()
         .is_some_and(|rules| rules.len() == 1));
 
-    let quota_groups = api
+    let (_, quota_groups) = api
         .admin_list_quota_groups()
         .await
         .expect("failed to list quota groups");
diff --git a/tests/organization.rs b/tests/organization.rs
index c5ced99..8931406 100644
--- a/tests/organization.rs
+++ b/tests/organization.rs
@@ -18,7 +18,7 @@ async fn org_vars() {
     api.org_create(org_opt).await.expect("failed to create org");
 
     let query = GetOrgVariablesListQuery::default();
-    let var_list = api
+    let (_, var_list) = api
         .get_org_variables_list("org-vars", query)
         .await
         .expect("failed to list org vars");
diff --git a/tests/repo.rs b/tests/repo.rs
index b8e048a..389adba 100644
--- a/tests/repo.rs
+++ b/tests/repo.rs
@@ -212,6 +212,7 @@ async fn release() {
         api.repo_list_releases("TestingAdmin", "release-test", query)
             .await
             .unwrap()
+            .1
             .is_empty(),
         "there should be no releases yet"
     );
@@ -400,7 +401,7 @@ async fn tag_protection() {
     let git = Git::new("./test_repos/tag-protect");
     let _ = basic_repo(&api, &git, "tag-protect").await;
 
-    let tag_protections = api
+    let (_, tag_protections) = api
         .repo_list_tag_protection("TestingAdmin", "tag-protect")
         .await
         .expect("failed to list tag protections");
@@ -455,7 +456,7 @@ async fn repo_vars() {
     let _ = basic_repo(&api, &git, "repo-vars").await;
 
     let query = GetRepoVariablesListQuery::default();
-    let var_list = api
+    let (_, var_list) = api
         .get_repo_variables_list("TestingAdmin", "repo-vars", query)
         .await
         .expect("failed to list repo vars");
diff --git a/tests/user.rs b/tests/user.rs
index 51e788a..44d3759 100644
--- a/tests/user.rs
+++ b/tests/user.rs
@@ -26,14 +26,14 @@ async fn follow() {
     let api = common::login();
 
     let query = UserListFollowingQuery::default();
-    let following = api
+    let (_, following) = api
         .user_list_following("TestingAdmin", query)
         .await
         .unwrap();
     assert!(following.is_empty(), "following list not empty");
 
     let query = UserListFollowersQuery::default();
-    let followers = api
+    let (_, followers) = api
         .user_list_followers("TestingAdmin", query)
         .await
         .unwrap();
@@ -62,14 +62,14 @@ async fn follow() {
     api.user_current_put_follow("Follower").await.unwrap();
 
     let query = UserListFollowingQuery::default();
-    let following = api
+    let (_, following) = api
         .user_list_following("TestingAdmin", query)
         .await
         .unwrap();
     assert!(!following.is_empty(), "following list empty");
 
     let query = UserListFollowersQuery::default();
-    let followers = api
+    let (_, followers) = api
         .user_list_followers("TestingAdmin", query)
         .await
         .unwrap();
@@ -197,7 +197,7 @@ async fn user_vars() {
     let api = common::login();
 
     let query = GetUserVariablesListQuery::default();
-    let var_list = api
+    let (_, var_list) = api
         .get_user_variables_list(query)
         .await
         .expect("failed to list user vars");