{"base_revision":"git-v1:88011299c92e866eaa07103efba7a4918a0bf31b","content":"diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json\nindex b516c72..93334e4 100644\n--- a/.cargo_vcs_info.json\n+++ b/.cargo_vcs_info.json\n@@ -1,6 +1,6 @@\n {\n   \"git\": {\n-    \"sha1\": \"f9cf96b5fc76789b71b35b5924527c19f58d5c46\"\n+    \"sha1\": \"5d1eb71a0e7c46f87b80ea72466afd4f7764a5d4\"\n   },\n   \"path_in_vcs\": \"\"\n }\n\\ No newline at end of file\ndiff --git a/.woodpecker/integration.yml b/.woodpecker/integration.yml\nindex ec18597..8740f59 100644\n--- a/.woodpecker/integration.yml\n+++ b/.woodpecker/integration.yml\n@@ -12,7 +12,7 @@ variables:\n \n steps:\n   get-token:\n-    image: code.cartoon-aa.xyz/ci/ci-forgejo-token:16.0.0\n+    image: code.cartoon-aa.xyz/ci/ci-forgejo-token:15.0.0\n     pull: true\n     when:\n       <<: *when\n@@ -32,7 +32,7 @@ steps:\n       - export FORGEJO_API_CI_TOKEN=$(cat .token)\n       - cargo test -F sync --no-fail-fast --jobs 1\n   preserve:\n-    image: code.cartoon-aa.xyz/ci/ci-forgejo-preserve:16.0.0\n+    image: code.cartoon-aa.xyz/ci/ci-forgejo-preserve:15.0.0\n     pull: true\n     when:\n       - status: [ failure ]\n@@ -46,7 +46,7 @@ steps:\n \n services:\n   forgejo-testing:\n-    image: code.cartoon-aa.xyz/ci/ci-forgejo:16.0.0\n+    image: code.cartoon-aa.xyz/ci/ci-forgejo:15.0.0\n     pull: true\n     when:\n       <<: *when\ndiff --git a/Cargo.lock b/Cargo.lock\nindex a033704..ca13e85 100644\n--- a/Cargo.lock\n+++ b/Cargo.lock\n@@ -2,6 +2,21 @@\n # It is not intended for manual editing.\n version = 4\n \n+[[package]]\n+name = \"addr2line\"\n+version = \"0.22.0\"\n+source = \"registry+https://github.com/rust-lang/crates.io-index\"\n+checksum = \"6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678\"\n+dependencies = [\n+ \"gimli\",\n+]\n+\n+[[package]]\n+name = \"adler\"\n+version = \"1.0.2\"\n+source = \"registry+https://github.com/rust-lang/crates.io-index\"\n+checksum = \"f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe\"\n+\n [[package]]\n name = \"atomic-waker\"\n version = \"1.1.2\"\n@@ -9,26 +24,24 @@ source = \"registry+https://github.com/rust-lang/crates.io-index\"\n checksum = \"1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0\"\n \n [[package]]\n-name = \"aws-lc-rs\"\n-version = \"1.17.1\"\n+name = \"autocfg\"\n+version = \"1.3.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"4342d8937fc7e5dd9b1c60292261c0670c882a2cd1719cfc11b1af41731e32ad\"\n-dependencies = [\n- \"aws-lc-sys\",\n- \"zeroize\",\n-]\n+checksum = \"0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0\"\n \n [[package]]\n-name = \"aws-lc-sys\"\n-version = \"0.42.0\"\n+name = \"backtrace\"\n+version = \"0.3.73\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"6d9ceb1da931507a12f4fccea479dccd00da1943e1b4ae72d8e502d707361444\"\n+checksum = \"5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a\"\n dependencies = [\n+ \"addr2line\",\n  \"cc\",\n- \"cmake\",\n- \"dunce\",\n- \"fs_extra\",\n- \"pkg-config\",\n+ \"cfg-if\",\n+ \"libc\",\n+ \"miniz_oxide\",\n+ \"object\",\n+ \"rustc-demangle\",\n ]\n \n [[package]]\n@@ -39,81 +52,39 @@ checksum = \"72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6\"\n \n [[package]]\n name = \"base64ct\"\n-version = \"1.8.3\"\n+version = \"1.6.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06\"\n+checksum = \"8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b\"\n \n [[package]]\n name = \"bitflags\"\n-version = \"2.13.0\"\n+version = \"2.6.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8\"\n+checksum = \"b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de\"\n \n [[package]]\n name = \"bumpalo\"\n-version = \"3.20.3\"\n+version = \"3.16.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649\"\n+checksum = \"79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c\"\n \n [[package]]\n name = \"bytes\"\n-version = \"1.12.1\"\n+version = \"1.6.1\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04\"\n+checksum = \"a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952\"\n \n [[package]]\n name = \"cc\"\n-version = \"1.2.66\"\n+version = \"1.1.7\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"f5d6cac793997bd970000024b2934968efe83b382de4fdcf4fcb46b6ee4ad996\"\n-dependencies = [\n- \"find-msvc-tools\",\n- \"jobserver\",\n- \"libc\",\n- \"shlex\",\n-]\n+checksum = \"26a5c3fd7bfa1ce3897a3a3501d362b2d87b7f2583ebcb4a949ec25911025cbc\"\n \n [[package]]\n name = \"cfg-if\"\n-version = \"1.0.4\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801\"\n-\n-[[package]]\n-name = \"cfg_aliases\"\n-version = \"0.2.1\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724\"\n-\n-[[package]]\n-name = \"chacha20\"\n-version = \"0.10.1\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81\"\n-dependencies = [\n- \"cfg-if\",\n- \"cpufeatures\",\n- \"rand_core\",\n-]\n-\n-[[package]]\n-name = \"cmake\"\n-version = \"0.1.58\"\n+version = \"1.0.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678\"\n-dependencies = [\n- \"cc\",\n-]\n-\n-[[package]]\n-name = \"combine\"\n-version = \"4.6.7\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd\"\n-dependencies = [\n- \"bytes\",\n- \"memchr\",\n-]\n+checksum = \"baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd\"\n \n [[package]]\n name = \"cookie\"\n@@ -128,9 +99,9 @@ dependencies = [\n \n [[package]]\n name = \"cookie_store\"\n-version = \"0.22.1\"\n+version = \"0.21.1\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"15b2c103cf610ec6cae3da84a766285b42fd16aad564758459e6ecf128c75206\"\n+checksum = \"2eac901828f88a5241ee0600950ab981148a18f2f756900ffba1b125ca6a3ef9\"\n dependencies = [\n  \"cookie\",\n  \"document-features\",\n@@ -154,45 +125,27 @@ dependencies = [\n  \"libc\",\n ]\n \n-[[package]]\n-name = \"core-foundation\"\n-version = \"0.10.1\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6\"\n-dependencies = [\n- \"core-foundation-sys\",\n- \"libc\",\n-]\n-\n [[package]]\n name = \"core-foundation-sys\"\n-version = \"0.8.7\"\n+version = \"0.8.6\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b\"\n-\n-[[package]]\n-name = \"cpufeatures\"\n-version = \"0.3.0\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201\"\n-dependencies = [\n- \"libc\",\n-]\n+checksum = \"06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f\"\n \n [[package]]\n name = \"deranged\"\n-version = \"0.5.8\"\n+version = \"0.3.11\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c\"\n+checksum = \"b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4\"\n dependencies = [\n- \"serde_core\",\n+ \"powerfmt\",\n+ \"serde\",\n ]\n \n [[package]]\n name = \"displaydoc\"\n-version = \"0.2.6\"\n+version = \"0.2.5\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f\"\n+checksum = \"97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0\"\n dependencies = [\n  \"proc-macro2\",\n  \"quote\",\n@@ -201,42 +154,36 @@ dependencies = [\n \n [[package]]\n name = \"document-features\"\n-version = \"0.2.12\"\n+version = \"0.2.10\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61\"\n+checksum = \"cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0\"\n dependencies = [\n  \"litrs\",\n ]\n \n-[[package]]\n-name = \"dunce\"\n-version = \"1.0.5\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813\"\n-\n [[package]]\n name = \"encoding_rs\"\n-version = \"0.8.35\"\n+version = \"0.8.34\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3\"\n+checksum = \"b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59\"\n dependencies = [\n  \"cfg-if\",\n ]\n \n [[package]]\n name = \"equivalent\"\n-version = \"1.0.2\"\n+version = \"1.0.1\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f\"\n+checksum = \"5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5\"\n \n [[package]]\n name = \"errno\"\n-version = \"0.3.14\"\n+version = \"0.3.9\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb\"\n+checksum = \"534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba\"\n dependencies = [\n  \"libc\",\n- \"windows-sys 0.61.2\",\n+ \"windows-sys\",\n ]\n \n [[package]]\n@@ -251,15 +198,9 @@ dependencies = [\n \n [[package]]\n name = \"fastrand\"\n-version = \"2.4.1\"\n+version = \"2.1.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6\"\n-\n-[[package]]\n-name = \"find-msvc-tools\"\n-version = \"0.1.9\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582\"\n+checksum = \"9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a\"\n \n [[package]]\n name = \"fnv\"\n@@ -284,7 +225,7 @@ checksum = \"00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b\"\n \n [[package]]\n name = \"forgejo-api\"\n-version = \"0.11.1\"\n+version = \"0.10.0\"\n dependencies = [\n  \"base64ct\",\n  \"bytes\",\n@@ -304,24 +245,18 @@ dependencies = [\n \n [[package]]\n name = \"form_urlencoded\"\n-version = \"1.2.2\"\n+version = \"1.2.1\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf\"\n+checksum = \"e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456\"\n dependencies = [\n  \"percent-encoding\",\n ]\n \n-[[package]]\n-name = \"fs_extra\"\n-version = \"1.3.0\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c\"\n-\n [[package]]\n name = \"futures\"\n-version = \"0.3.32\"\n+version = \"0.3.31\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d\"\n+checksum = \"65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876\"\n dependencies = [\n  \"futures-channel\",\n  \"futures-core\",\n@@ -334,9 +269,9 @@ dependencies = [\n \n [[package]]\n name = \"futures-channel\"\n-version = \"0.3.32\"\n+version = \"0.3.31\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d\"\n+checksum = \"2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10\"\n dependencies = [\n  \"futures-core\",\n  \"futures-sink\",\n@@ -344,15 +279,15 @@ dependencies = [\n \n [[package]]\n name = \"futures-core\"\n-version = \"0.3.32\"\n+version = \"0.3.31\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d\"\n+checksum = \"05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e\"\n \n [[package]]\n name = \"futures-executor\"\n-version = \"0.3.32\"\n+version = \"0.3.31\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d\"\n+checksum = \"1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f\"\n dependencies = [\n  \"futures-core\",\n  \"futures-task\",\n@@ -361,15 +296,15 @@ dependencies = [\n \n [[package]]\n name = \"futures-io\"\n-version = \"0.3.32\"\n+version = \"0.3.31\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718\"\n+checksum = \"9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6\"\n \n [[package]]\n name = \"futures-macro\"\n-version = \"0.3.32\"\n+version = \"0.3.31\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b\"\n+checksum = \"162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650\"\n dependencies = [\n  \"proc-macro2\",\n  \"quote\",\n@@ -378,21 +313,21 @@ dependencies = [\n \n [[package]]\n name = \"futures-sink\"\n-version = \"0.3.32\"\n+version = \"0.3.31\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893\"\n+checksum = \"e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7\"\n \n [[package]]\n name = \"futures-task\"\n-version = \"0.3.32\"\n+version = \"0.3.31\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393\"\n+checksum = \"f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988\"\n \n [[package]]\n name = \"futures-util\"\n-version = \"0.3.32\"\n+version = \"0.3.31\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6\"\n+checksum = \"9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81\"\n dependencies = [\n  \"futures-channel\",\n  \"futures-core\",\n@@ -402,41 +337,32 @@ dependencies = [\n  \"futures-task\",\n  \"memchr\",\n  \"pin-project-lite\",\n+ \"pin-utils\",\n  \"slab\",\n ]\n \n [[package]]\n name = \"getrandom\"\n-version = \"0.2.17\"\n+version = \"0.2.15\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0\"\n+checksum = \"c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7\"\n dependencies = [\n  \"cfg-if\",\n- \"js-sys\",\n  \"libc\",\n  \"wasi\",\n- \"wasm-bindgen\",\n ]\n \n [[package]]\n-name = \"getrandom\"\n-version = \"0.4.3\"\n+name = \"gimli\"\n+version = \"0.29.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099\"\n-dependencies = [\n- \"cfg-if\",\n- \"js-sys\",\n- \"libc\",\n- \"r-efi\",\n- \"rand_core\",\n- \"wasm-bindgen\",\n-]\n+checksum = \"40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd\"\n \n [[package]]\n name = \"h2\"\n-version = \"0.4.15\"\n+version = \"0.4.7\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"6cb093c84e8bd9b188d4c4a8cb6579fc016968d14c99882163cd3ff402a4f155\"\n+checksum = \"ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e\"\n dependencies = [\n  \"atomic-waker\",\n  \"bytes\",\n@@ -453,17 +379,24 @@ dependencies = [\n \n [[package]]\n name = \"hashbrown\"\n-version = \"0.17.1\"\n+version = \"0.14.5\"\n+source = \"registry+https://github.com/rust-lang/crates.io-index\"\n+checksum = \"e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1\"\n+\n+[[package]]\n+name = \"hermit-abi\"\n+version = \"0.3.9\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a\"\n+checksum = \"d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024\"\n \n [[package]]\n name = \"http\"\n-version = \"1.4.2\"\n+version = \"1.2.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425\"\n+checksum = \"f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea\"\n dependencies = [\n  \"bytes\",\n+ \"fnv\",\n  \"itoa\",\n ]\n \n@@ -479,12 +412,12 @@ dependencies = [\n \n [[package]]\n name = \"http-body-util\"\n-version = \"0.1.3\"\n+version = \"0.1.2\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a\"\n+checksum = \"793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f\"\n dependencies = [\n  \"bytes\",\n- \"futures-core\",\n+ \"futures-util\",\n  \"http\",\n  \"http-body\",\n  \"pin-project-lite\",\n@@ -492,20 +425,19 @@ dependencies = [\n \n [[package]]\n name = \"httparse\"\n-version = \"1.10.1\"\n+version = \"1.9.4\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87\"\n+checksum = \"0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9\"\n \n [[package]]\n name = \"hyper\"\n-version = \"1.10.1\"\n+version = \"1.5.2\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"55281c53a1894c864990125767da440a4e630446785086f52523b20033b74498\"\n+checksum = \"256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0\"\n dependencies = [\n- \"atomic-waker\",\n  \"bytes\",\n  \"futures-channel\",\n- \"futures-core\",\n+ \"futures-util\",\n  \"h2\",\n  \"http\",\n  \"http-body\",\n@@ -519,17 +451,20 @@ dependencies = [\n \n [[package]]\n name = \"hyper-rustls\"\n-version = \"0.27.9\"\n+version = \"0.27.5\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f\"\n+checksum = \"2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2\"\n dependencies = [\n+ \"futures-util\",\n  \"http\",\n  \"hyper\",\n  \"hyper-util\",\n  \"rustls\",\n+ \"rustls-pki-types\",\n  \"tokio\",\n  \"tokio-rustls\",\n  \"tower-service\",\n+ \"webpki-roots 0.26.11\",\n ]\n \n [[package]]\n@@ -550,48 +485,41 @@ dependencies = [\n \n [[package]]\n name = \"hyper-util\"\n-version = \"0.1.20\"\n+version = \"0.1.7\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0\"\n+checksum = \"cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9\"\n dependencies = [\n- \"base64\",\n  \"bytes\",\n  \"futures-channel\",\n  \"futures-util\",\n  \"http\",\n  \"http-body\",\n  \"hyper\",\n- \"ipnet\",\n- \"libc\",\n- \"percent-encoding\",\n  \"pin-project-lite\",\n  \"socket2\",\n- \"system-configuration\",\n  \"tokio\",\n+ \"tower\",\n  \"tower-service\",\n  \"tracing\",\n- \"windows-registry\",\n ]\n \n [[package]]\n name = \"icu_collections\"\n-version = \"2.2.0\"\n+version = \"1.5.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c\"\n+checksum = \"db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526\"\n dependencies = [\n  \"displaydoc\",\n- \"potential_utf\",\n- \"utf8_iter\",\n  \"yoke\",\n  \"zerofrom\",\n  \"zerovec\",\n ]\n \n [[package]]\n-name = \"icu_locale_core\"\n-version = \"2.2.0\"\n+name = \"icu_locid\"\n+version = \"1.5.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29\"\n+checksum = \"13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637\"\n dependencies = [\n  \"displaydoc\",\n  \"litemap\",\n@@ -600,66 +528,104 @@ dependencies = [\n  \"zerovec\",\n ]\n \n+[[package]]\n+name = \"icu_locid_transform\"\n+version = \"1.5.0\"\n+source = \"registry+https://github.com/rust-lang/crates.io-index\"\n+checksum = \"01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e\"\n+dependencies = [\n+ \"displaydoc\",\n+ \"icu_locid\",\n+ \"icu_locid_transform_data\",\n+ \"icu_provider\",\n+ \"tinystr\",\n+ \"zerovec\",\n+]\n+\n+[[package]]\n+name = \"icu_locid_transform_data\"\n+version = \"1.5.0\"\n+source = \"registry+https://github.com/rust-lang/crates.io-index\"\n+checksum = \"fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e\"\n+\n [[package]]\n name = \"icu_normalizer\"\n-version = \"2.2.0\"\n+version = \"1.5.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4\"\n+checksum = \"19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f\"\n dependencies = [\n+ \"displaydoc\",\n  \"icu_collections\",\n  \"icu_normalizer_data\",\n  \"icu_properties\",\n  \"icu_provider\",\n  \"smallvec\",\n+ \"utf16_iter\",\n+ \"utf8_iter\",\n+ \"write16\",\n  \"zerovec\",\n ]\n \n [[package]]\n name = \"icu_normalizer_data\"\n-version = \"2.2.0\"\n+version = \"1.5.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38\"\n+checksum = \"f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516\"\n \n [[package]]\n name = \"icu_properties\"\n-version = \"2.2.0\"\n+version = \"1.5.1\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de\"\n+checksum = \"93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5\"\n dependencies = [\n+ \"displaydoc\",\n  \"icu_collections\",\n- \"icu_locale_core\",\n+ \"icu_locid_transform\",\n  \"icu_properties_data\",\n  \"icu_provider\",\n- \"zerotrie\",\n+ \"tinystr\",\n  \"zerovec\",\n ]\n \n [[package]]\n name = \"icu_properties_data\"\n-version = \"2.2.0\"\n+version = \"1.5.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14\"\n+checksum = \"67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569\"\n \n [[package]]\n name = \"icu_provider\"\n-version = \"2.2.0\"\n+version = \"1.5.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421\"\n+checksum = \"6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9\"\n dependencies = [\n  \"displaydoc\",\n- \"icu_locale_core\",\n+ \"icu_locid\",\n+ \"icu_provider_macros\",\n+ \"stable_deref_trait\",\n+ \"tinystr\",\n  \"writeable\",\n  \"yoke\",\n  \"zerofrom\",\n- \"zerotrie\",\n  \"zerovec\",\n ]\n \n+[[package]]\n+name = \"icu_provider_macros\"\n+version = \"1.5.0\"\n+source = \"registry+https://github.com/rust-lang/crates.io-index\"\n+checksum = \"1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6\"\n+dependencies = [\n+ \"proc-macro2\",\n+ \"quote\",\n+ \"syn\",\n+]\n+\n [[package]]\n name = \"idna\"\n-version = \"1.1.0\"\n+version = \"1.0.3\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de\"\n+checksum = \"686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e\"\n dependencies = [\n  \"idna_adapter\",\n  \"smallvec\",\n@@ -668,9 +634,9 @@ dependencies = [\n \n [[package]]\n name = \"idna_adapter\"\n-version = \"1.2.2\"\n+version = \"1.2.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714\"\n+checksum = \"daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71\"\n dependencies = [\n  \"icu_normalizer\",\n  \"icu_properties\",\n@@ -678,15 +644,15 @@ dependencies = [\n \n [[package]]\n name = \"indenter\"\n-version = \"0.3.4\"\n+version = \"0.3.3\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5\"\n+checksum = \"ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683\"\n \n [[package]]\n name = \"indexmap\"\n-version = \"2.14.0\"\n+version = \"2.2.6\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9\"\n+checksum = \"168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26\"\n dependencies = [\n  \"equivalent\",\n  \"hashbrown\",\n@@ -694,127 +660,60 @@ dependencies = [\n \n [[package]]\n name = \"ipnet\"\n-version = \"2.12.0\"\n+version = \"2.9.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2\"\n+checksum = \"8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3\"\n \n [[package]]\n name = \"itoa\"\n-version = \"1.0.18\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682\"\n-\n-[[package]]\n-name = \"jni\"\n-version = \"0.22.4\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498\"\n-dependencies = [\n- \"cfg-if\",\n- \"combine\",\n- \"jni-macros\",\n- \"jni-sys\",\n- \"log\",\n- \"simd_cesu8\",\n- \"thiserror\",\n- \"walkdir\",\n- \"windows-link\",\n-]\n-\n-[[package]]\n-name = \"jni-macros\"\n-version = \"0.22.4\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3\"\n-dependencies = [\n- \"proc-macro2\",\n- \"quote\",\n- \"rustc_version\",\n- \"simd_cesu8\",\n- \"syn\",\n-]\n-\n-[[package]]\n-name = \"jni-sys\"\n-version = \"0.4.1\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2\"\n-dependencies = [\n- \"jni-sys-macros\",\n-]\n-\n-[[package]]\n-name = \"jni-sys-macros\"\n-version = \"0.4.1\"\n+version = \"1.0.11\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264\"\n-dependencies = [\n- \"quote\",\n- \"syn\",\n-]\n-\n-[[package]]\n-name = \"jobserver\"\n-version = \"0.1.35\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3\"\n-dependencies = [\n- \"getrandom 0.4.3\",\n- \"libc\",\n-]\n+checksum = \"49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b\"\n \n [[package]]\n name = \"js-sys\"\n-version = \"0.3.103\"\n+version = \"0.3.69\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102\"\n+checksum = \"29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d\"\n dependencies = [\n- \"cfg-if\",\n- \"futures-util\",\n  \"wasm-bindgen\",\n ]\n \n [[package]]\n name = \"libc\"\n-version = \"0.2.186\"\n+version = \"0.2.155\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66\"\n+checksum = \"97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c\"\n \n [[package]]\n name = \"linux-raw-sys\"\n-version = \"0.12.1\"\n+version = \"0.4.14\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53\"\n+checksum = \"78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89\"\n \n [[package]]\n name = \"litemap\"\n-version = \"0.8.2\"\n+version = \"0.7.4\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0\"\n+checksum = \"4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104\"\n \n [[package]]\n name = \"litrs\"\n-version = \"1.0.0\"\n+version = \"0.4.1\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092\"\n+checksum = \"b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5\"\n \n [[package]]\n name = \"log\"\n-version = \"0.4.33\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad\"\n-\n-[[package]]\n-name = \"lru-slab\"\n-version = \"0.1.2\"\n+version = \"0.4.22\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154\"\n+checksum = \"a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24\"\n \n [[package]]\n name = \"memchr\"\n-version = \"2.8.3\"\n+version = \"2.7.4\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98\"\n+checksum = \"78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3\"\n \n [[package]]\n name = \"mime\"\n@@ -832,22 +731,32 @@ dependencies = [\n  \"unicase\",\n ]\n \n+[[package]]\n+name = \"miniz_oxide\"\n+version = \"0.7.4\"\n+source = \"registry+https://github.com/rust-lang/crates.io-index\"\n+checksum = \"b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08\"\n+dependencies = [\n+ \"adler\",\n+]\n+\n [[package]]\n name = \"mio\"\n-version = \"1.2.1\"\n+version = \"1.0.1\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda\"\n+checksum = \"4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4\"\n dependencies = [\n+ \"hermit-abi\",\n  \"libc\",\n  \"wasi\",\n- \"windows-sys 0.61.2\",\n+ \"windows-sys\",\n ]\n \n [[package]]\n name = \"native-tls\"\n-version = \"0.2.18\"\n+version = \"0.2.12\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2\"\n+checksum = \"a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466\"\n dependencies = [\n  \"libc\",\n  \"log\",\n@@ -862,26 +771,36 @@ dependencies = [\n \n [[package]]\n name = \"num-conv\"\n-version = \"0.2.2\"\n+version = \"0.1.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441\"\n+checksum = \"51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9\"\n+\n+[[package]]\n+name = \"object\"\n+version = \"0.36.2\"\n+source = \"registry+https://github.com/rust-lang/crates.io-index\"\n+checksum = \"3f203fa8daa7bb185f760ae12bd8e097f63d17041dcdcaf675ac54cdf863170e\"\n+dependencies = [\n+ \"memchr\",\n+]\n \n [[package]]\n name = \"once_cell\"\n-version = \"1.21.4\"\n+version = \"1.19.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50\"\n+checksum = \"3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92\"\n \n [[package]]\n name = \"openssl\"\n-version = \"0.10.81\"\n+version = \"0.10.66\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"77823a27f0babb03091cb9ed9ef80af3b39dbc82f97e8fa530374b7dafd87a45\"\n+checksum = \"9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1\"\n dependencies = [\n  \"bitflags\",\n  \"cfg-if\",\n  \"foreign-types\",\n  \"libc\",\n+ \"once_cell\",\n  \"openssl-macros\",\n  \"openssl-sys\",\n ]\n@@ -899,15 +818,15 @@ dependencies = [\n \n [[package]]\n name = \"openssl-probe\"\n-version = \"0.2.1\"\n+version = \"0.1.5\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe\"\n+checksum = \"ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf\"\n \n [[package]]\n name = \"openssl-sys\"\n-version = \"0.9.117\"\n+version = \"0.9.103\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"b47e7e6bb2c38cd930d25a23b40fa52e068c10e85f3e03a7f5ba5aaca5713695\"\n+checksum = \"7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6\"\n dependencies = [\n  \"cc\",\n  \"libc\",\n@@ -917,30 +836,47 @@ dependencies = [\n \n [[package]]\n name = \"percent-encoding\"\n-version = \"2.3.2\"\n+version = \"2.3.1\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220\"\n+checksum = \"e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e\"\n+\n+[[package]]\n+name = \"pin-project\"\n+version = \"1.1.7\"\n+source = \"registry+https://github.com/rust-lang/crates.io-index\"\n+checksum = \"be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95\"\n+dependencies = [\n+ \"pin-project-internal\",\n+]\n+\n+[[package]]\n+name = \"pin-project-internal\"\n+version = \"1.1.7\"\n+source = \"registry+https://github.com/rust-lang/crates.io-index\"\n+checksum = \"3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c\"\n+dependencies = [\n+ \"proc-macro2\",\n+ \"quote\",\n+ \"syn\",\n+]\n \n [[package]]\n name = \"pin-project-lite\"\n-version = \"0.2.17\"\n+version = \"0.2.14\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd\"\n+checksum = \"bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02\"\n \n [[package]]\n-name = \"pkg-config\"\n-version = \"0.3.33\"\n+name = \"pin-utils\"\n+version = \"0.1.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e\"\n+checksum = \"8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184\"\n \n [[package]]\n-name = \"potential_utf\"\n-version = \"0.1.5\"\n+name = \"pkg-config\"\n+version = \"0.3.30\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564\"\n-dependencies = [\n- \"zerovec\",\n-]\n+checksum = \"d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec\"\n \n [[package]]\n name = \"powerfmt\"\n@@ -948,11 +884,20 @@ version = \"0.2.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n checksum = \"439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391\"\n \n+[[package]]\n+name = \"ppv-lite86\"\n+version = \"0.2.21\"\n+source = \"registry+https://github.com/rust-lang/crates.io-index\"\n+checksum = \"85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9\"\n+dependencies = [\n+ \"zerocopy\",\n+]\n+\n [[package]]\n name = \"proc-macro2\"\n-version = \"1.0.106\"\n+version = \"1.0.86\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934\"\n+checksum = \"5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77\"\n dependencies = [\n  \"unicode-ident\",\n ]\n@@ -975,12 +920,11 @@ dependencies = [\n \n [[package]]\n name = \"quinn\"\n-version = \"0.11.11\"\n+version = \"0.11.5\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8\"\n+checksum = \"8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684\"\n dependencies = [\n  \"bytes\",\n- \"cfg_aliases\",\n  \"pin-project-lite\",\n  \"quinn-proto\",\n  \"quinn-udp\",\n@@ -990,92 +934,82 @@ dependencies = [\n  \"thiserror\",\n  \"tokio\",\n  \"tracing\",\n- \"web-time\",\n ]\n \n [[package]]\n name = \"quinn-proto\"\n-version = \"0.11.16\"\n+version = \"0.11.8\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"2f4bfc015262b9df63c8845072ce59068853ff5872180c2ce2f13038b970e560\"\n+checksum = \"fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6\"\n dependencies = [\n- \"aws-lc-rs\",\n  \"bytes\",\n- \"getrandom 0.4.3\",\n- \"lru-slab\",\n  \"rand\",\n- \"rand_pcg\",\n  \"ring\",\n  \"rustc-hash\",\n  \"rustls\",\n- \"rustls-pki-types\",\n  \"slab\",\n  \"thiserror\",\n  \"tinyvec\",\n  \"tracing\",\n- \"web-time\",\n ]\n \n [[package]]\n name = \"quinn-udp\"\n-version = \"0.5.15\"\n+version = \"0.5.4\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"35a133f956daabe89a61a685c2649f13d82d5aa4bd5d12d1277e1072a21c0694\"\n+checksum = \"8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285\"\n dependencies = [\n- \"cfg_aliases\",\n  \"libc\",\n  \"once_cell\",\n  \"socket2\",\n  \"tracing\",\n- \"windows-sys 0.61.2\",\n+ \"windows-sys\",\n ]\n \n [[package]]\n name = \"quote\"\n-version = \"1.0.46\"\n+version = \"1.0.36\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368\"\n+checksum = \"0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7\"\n dependencies = [\n  \"proc-macro2\",\n ]\n \n-[[package]]\n-name = \"r-efi\"\n-version = \"6.0.0\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf\"\n-\n [[package]]\n name = \"rand\"\n-version = \"0.10.2\"\n+version = \"0.8.5\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80\"\n+checksum = \"34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404\"\n dependencies = [\n- \"chacha20\",\n- \"getrandom 0.4.3\",\n+ \"libc\",\n+ \"rand_chacha\",\n  \"rand_core\",\n ]\n \n [[package]]\n-name = \"rand_core\"\n-version = \"0.10.1\"\n+name = \"rand_chacha\"\n+version = \"0.3.1\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69\"\n+checksum = \"e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88\"\n+dependencies = [\n+ \"ppv-lite86\",\n+ \"rand_core\",\n+]\n \n [[package]]\n-name = \"rand_pcg\"\n-version = \"0.10.2\"\n+name = \"rand_core\"\n+version = \"0.6.4\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a\"\n+checksum = \"ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c\"\n dependencies = [\n- \"rand_core\",\n+ \"getrandom\",\n ]\n \n [[package]]\n name = \"reqwest\"\n-version = \"0.13.4\"\n+version = \"0.12.9\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3\"\n+checksum = \"a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f\"\n dependencies = [\n  \"base64\",\n  \"bytes\",\n@@ -1093,83 +1027,84 @@ dependencies = [\n  \"hyper-rustls\",\n  \"hyper-tls\",\n  \"hyper-util\",\n+ \"ipnet\",\n  \"js-sys\",\n  \"log\",\n  \"mime\",\n  \"mime_guess\",\n  \"native-tls\",\n+ \"once_cell\",\n  \"percent-encoding\",\n  \"pin-project-lite\",\n  \"quinn\",\n  \"rustls\",\n+ \"rustls-pemfile\",\n  \"rustls-pki-types\",\n- \"rustls-platform-verifier\",\n  \"serde\",\n  \"serde_json\",\n  \"serde_urlencoded\",\n  \"sync_wrapper\",\n+ \"system-configuration\",\n  \"tokio\",\n  \"tokio-native-tls\",\n  \"tokio-rustls\",\n- \"tower\",\n- \"tower-http\",\n  \"tower-service\",\n  \"url\",\n  \"wasm-bindgen\",\n  \"wasm-bindgen-futures\",\n  \"web-sys\",\n+ \"webpki-roots 0.26.11\",\n+ \"windows-registry\",\n ]\n \n [[package]]\n name = \"ring\"\n-version = \"0.17.14\"\n+version = \"0.17.8\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7\"\n+checksum = \"c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d\"\n dependencies = [\n  \"cc\",\n  \"cfg-if\",\n- \"getrandom 0.2.17\",\n+ \"getrandom\",\n  \"libc\",\n+ \"spin\",\n  \"untrusted\",\n- \"windows-sys 0.52.0\",\n+ \"windows-sys\",\n ]\n \n [[package]]\n-name = \"rustc-hash\"\n-version = \"2.1.3\"\n+name = \"rustc-demangle\"\n+version = \"0.1.24\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d\"\n+checksum = \"719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f\"\n \n [[package]]\n-name = \"rustc_version\"\n-version = \"0.4.1\"\n+name = \"rustc-hash\"\n+version = \"2.1.1\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92\"\n-dependencies = [\n- \"semver\",\n-]\n+checksum = \"357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d\"\n \n [[package]]\n name = \"rustix\"\n-version = \"1.1.4\"\n+version = \"0.38.34\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190\"\n+checksum = \"70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f\"\n dependencies = [\n  \"bitflags\",\n  \"errno\",\n  \"libc\",\n  \"linux-raw-sys\",\n- \"windows-sys 0.61.2\",\n+ \"windows-sys\",\n ]\n \n [[package]]\n name = \"rustls\"\n-version = \"0.23.41\"\n+version = \"0.23.20\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"6b92b125634d9b795e7beca796cc790df15a7fb38323bf3196fda83292d06b1f\"\n+checksum = \"5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b\"\n dependencies = [\n- \"aws-lc-rs\",\n  \"once_cell\",\n+ \"ring\",\n  \"rustls-pki-types\",\n  \"rustls-webpki\",\n  \"subtle\",\n@@ -1177,104 +1112,54 @@ dependencies = [\n ]\n \n [[package]]\n-name = \"rustls-native-certs\"\n-version = \"0.8.4\"\n+name = \"rustls-pemfile\"\n+version = \"2.2.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"dab5152771c58876a2146916e53e35057e1a4dfa2b9df0f0305b07f611fdea4d\"\n+checksum = \"dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50\"\n dependencies = [\n- \"openssl-probe\",\n  \"rustls-pki-types\",\n- \"schannel\",\n- \"security-framework\",\n ]\n \n [[package]]\n name = \"rustls-pki-types\"\n-version = \"1.15.0\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"764899a24af3980067ee14bc143654f297b22eaebfe3c7b6b211920a5a59b046\"\n-dependencies = [\n- \"web-time\",\n- \"zeroize\",\n-]\n-\n-[[package]]\n-name = \"rustls-platform-verifier\"\n-version = \"0.7.0\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0\"\n-dependencies = [\n- \"core-foundation 0.10.1\",\n- \"core-foundation-sys\",\n- \"jni\",\n- \"log\",\n- \"once_cell\",\n- \"rustls\",\n- \"rustls-native-certs\",\n- \"rustls-platform-verifier-android\",\n- \"rustls-webpki\",\n- \"security-framework\",\n- \"security-framework-sys\",\n- \"webpki-root-certs\",\n- \"windows-sys 0.61.2\",\n-]\n-\n-[[package]]\n-name = \"rustls-platform-verifier-android\"\n-version = \"0.1.1\"\n+version = \"1.10.1\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f\"\n+checksum = \"d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37\"\n \n [[package]]\n name = \"rustls-webpki\"\n-version = \"0.103.13\"\n+version = \"0.102.8\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e\"\n+checksum = \"64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9\"\n dependencies = [\n- \"aws-lc-rs\",\n  \"ring\",\n  \"rustls-pki-types\",\n  \"untrusted\",\n ]\n \n-[[package]]\n-name = \"rustversion\"\n-version = \"1.0.23\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f\"\n-\n [[package]]\n name = \"ryu\"\n-version = \"1.0.23\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f\"\n-\n-[[package]]\n-name = \"same-file\"\n-version = \"1.0.6\"\n+version = \"1.0.18\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502\"\n-dependencies = [\n- \"winapi-util\",\n-]\n+checksum = \"f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f\"\n \n [[package]]\n name = \"schannel\"\n-version = \"0.1.29\"\n+version = \"0.1.23\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939\"\n+checksum = \"fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534\"\n dependencies = [\n- \"windows-sys 0.61.2\",\n+ \"windows-sys\",\n ]\n \n [[package]]\n name = \"security-framework\"\n-version = \"3.7.0\"\n+version = \"2.11.1\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d\"\n+checksum = \"897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02\"\n dependencies = [\n  \"bitflags\",\n- \"core-foundation 0.10.1\",\n+ \"core-foundation\",\n  \"core-foundation-sys\",\n  \"libc\",\n  \"security-framework-sys\",\n@@ -1282,44 +1167,28 @@ dependencies = [\n \n [[package]]\n name = \"security-framework-sys\"\n-version = \"2.17.0\"\n+version = \"2.11.1\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3\"\n+checksum = \"75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf\"\n dependencies = [\n  \"core-foundation-sys\",\n  \"libc\",\n ]\n \n-[[package]]\n-name = \"semver\"\n-version = \"1.0.28\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd\"\n-\n [[package]]\n name = \"serde\"\n-version = \"1.0.228\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e\"\n-dependencies = [\n- \"serde_core\",\n- \"serde_derive\",\n-]\n-\n-[[package]]\n-name = \"serde_core\"\n-version = \"1.0.228\"\n+version = \"1.0.204\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad\"\n+checksum = \"bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12\"\n dependencies = [\n  \"serde_derive\",\n ]\n \n [[package]]\n name = \"serde_derive\"\n-version = \"1.0.228\"\n+version = \"1.0.204\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79\"\n+checksum = \"e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222\"\n dependencies = [\n  \"proc-macro2\",\n  \"quote\",\n@@ -1328,15 +1197,14 @@ dependencies = [\n \n [[package]]\n name = \"serde_json\"\n-version = \"1.0.150\"\n+version = \"1.0.121\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9\"\n+checksum = \"4ab380d7d9f22ef3f21ad3e6c1ebe8e4fc7a2000ccba2e4d71fc96f15b2cb609\"\n dependencies = [\n  \"itoa\",\n  \"memchr\",\n+ \"ryu\",\n  \"serde\",\n- \"serde_core\",\n- \"zmij\",\n ]\n \n [[package]]\n@@ -1352,47 +1220,28 @@ dependencies = [\n ]\n \n [[package]]\n-name = \"shlex\"\n-version = \"2.0.1\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba\"\n-\n-[[package]]\n-name = \"simd_cesu8\"\n-version = \"1.1.1\"\n+name = \"slab\"\n+version = \"0.4.9\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"94f90157bb87cddf702797c5dadfa0be7d266cdf49e22da2fcaa32eff75b2c33\"\n+checksum = \"8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67\"\n dependencies = [\n- \"rustc_version\",\n- \"simdutf8\",\n+ \"autocfg\",\n ]\n \n-[[package]]\n-name = \"simdutf8\"\n-version = \"0.1.5\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e\"\n-\n-[[package]]\n-name = \"slab\"\n-version = \"0.4.12\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5\"\n-\n [[package]]\n name = \"smallvec\"\n-version = \"1.15.2\"\n+version = \"1.13.2\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90\"\n+checksum = \"3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67\"\n \n [[package]]\n name = \"socket2\"\n-version = \"0.6.4\"\n+version = \"0.5.7\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51\"\n+checksum = \"ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c\"\n dependencies = [\n  \"libc\",\n- \"windows-sys 0.61.2\",\n+ \"windows-sys\",\n ]\n \n [[package]]\n@@ -1401,11 +1250,17 @@ version = \"0.1.1\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n checksum = \"b5097ec7ea7218135541ad96348f1441d0c616537dd4ed9c47205920c35d7d97\"\n \n+[[package]]\n+name = \"spin\"\n+version = \"0.9.8\"\n+source = \"registry+https://github.com/rust-lang/crates.io-index\"\n+checksum = \"6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67\"\n+\n [[package]]\n name = \"stable_deref_trait\"\n-version = \"1.2.1\"\n+version = \"1.2.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596\"\n+checksum = \"a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3\"\n \n [[package]]\n name = \"subtle\"\n@@ -1415,9 +1270,9 @@ checksum = \"13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292\"\n \n [[package]]\n name = \"syn\"\n-version = \"2.0.118\"\n+version = \"2.0.72\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422\"\n+checksum = \"dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af\"\n dependencies = [\n  \"proc-macro2\",\n  \"quote\",\n@@ -1435,9 +1290,9 @@ dependencies = [\n \n [[package]]\n name = \"synstructure\"\n-version = \"0.13.2\"\n+version = \"0.13.1\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2\"\n+checksum = \"c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971\"\n dependencies = [\n  \"proc-macro2\",\n  \"quote\",\n@@ -1446,12 +1301,12 @@ dependencies = [\n \n [[package]]\n name = \"system-configuration\"\n-version = \"0.7.0\"\n+version = \"0.6.1\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b\"\n+checksum = \"3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b\"\n dependencies = [\n  \"bitflags\",\n- \"core-foundation 0.9.4\",\n+ \"core-foundation\",\n  \"system-configuration-sys\",\n ]\n \n@@ -1467,31 +1322,30 @@ dependencies = [\n \n [[package]]\n name = \"tempfile\"\n-version = \"3.27.0\"\n+version = \"3.10.1\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd\"\n+checksum = \"85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1\"\n dependencies = [\n+ \"cfg-if\",\n  \"fastrand\",\n- \"getrandom 0.4.3\",\n- \"once_cell\",\n  \"rustix\",\n- \"windows-sys 0.61.2\",\n+ \"windows-sys\",\n ]\n \n [[package]]\n name = \"thiserror\"\n-version = \"2.0.18\"\n+version = \"1.0.63\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4\"\n+checksum = \"c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724\"\n dependencies = [\n  \"thiserror-impl\",\n ]\n \n [[package]]\n name = \"thiserror-impl\"\n-version = \"2.0.18\"\n+version = \"1.0.63\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5\"\n+checksum = \"a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261\"\n dependencies = [\n  \"proc-macro2\",\n  \"quote\",\n@@ -1500,29 +1354,30 @@ dependencies = [\n \n [[package]]\n name = \"time\"\n-version = \"0.3.53\"\n+version = \"0.3.36\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"18dfaaeddcb932337b5e7866ee7d0ce9b76d2fd092997146f187ec09b4558a50\"\n+checksum = \"5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885\"\n dependencies = [\n  \"deranged\",\n+ \"itoa\",\n  \"num-conv\",\n  \"powerfmt\",\n- \"serde_core\",\n+ \"serde\",\n  \"time-core\",\n  \"time-macros\",\n ]\n \n [[package]]\n name = \"time-core\"\n-version = \"0.1.9\"\n+version = \"0.1.2\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109\"\n+checksum = \"ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3\"\n \n [[package]]\n name = \"time-macros\"\n-version = \"0.2.31\"\n+version = \"0.2.18\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"c431b87111666e491a90baa837f914fb45cd5dc3c268591b0220ff5057f2085f\"\n+checksum = \"3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf\"\n dependencies = [\n  \"num-conv\",\n  \"time-core\",\n@@ -1530,9 +1385,9 @@ dependencies = [\n \n [[package]]\n name = \"tinystr\"\n-version = \"0.8.3\"\n+version = \"0.7.6\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d\"\n+checksum = \"9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f\"\n dependencies = [\n  \"displaydoc\",\n  \"zerovec\",\n@@ -1540,9 +1395,9 @@ dependencies = [\n \n [[package]]\n name = \"tinyvec\"\n-version = \"1.11.0\"\n+version = \"1.10.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3\"\n+checksum = \"bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa\"\n dependencies = [\n  \"tinyvec_macros\",\n ]\n@@ -1555,24 +1410,25 @@ checksum = \"1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20\"\n \n [[package]]\n name = \"tokio\"\n-version = \"1.52.3\"\n+version = \"1.39.2\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe\"\n+checksum = \"daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1\"\n dependencies = [\n+ \"backtrace\",\n  \"bytes\",\n  \"libc\",\n  \"mio\",\n  \"pin-project-lite\",\n  \"socket2\",\n  \"tokio-macros\",\n- \"windows-sys 0.61.2\",\n+ \"windows-sys\",\n ]\n \n [[package]]\n name = \"tokio-macros\"\n-version = \"2.7.0\"\n+version = \"2.4.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496\"\n+checksum = \"693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752\"\n dependencies = [\n  \"proc-macro2\",\n  \"quote\",\n@@ -1591,9 +1447,9 @@ dependencies = [\n \n [[package]]\n name = \"tokio-rustls\"\n-version = \"0.26.4\"\n+version = \"0.26.1\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61\"\n+checksum = \"5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37\"\n dependencies = [\n  \"rustls\",\n  \"tokio\",\n@@ -1601,9 +1457,9 @@ dependencies = [\n \n [[package]]\n name = \"tokio-util\"\n-version = \"0.7.18\"\n+version = \"0.7.11\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098\"\n+checksum = \"9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1\"\n dependencies = [\n  \"bytes\",\n  \"futures-core\",\n@@ -1614,37 +1470,19 @@ dependencies = [\n \n [[package]]\n name = \"tower\"\n-version = \"0.5.3\"\n+version = \"0.4.13\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4\"\n+checksum = \"b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c\"\n dependencies = [\n  \"futures-core\",\n  \"futures-util\",\n+ \"pin-project\",\n  \"pin-project-lite\",\n- \"sync_wrapper\",\n  \"tokio\",\n  \"tower-layer\",\n  \"tower-service\",\n ]\n \n-[[package]]\n-name = \"tower-http\"\n-version = \"0.6.11\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840\"\n-dependencies = [\n- \"bitflags\",\n- \"bytes\",\n- \"futures-util\",\n- \"http\",\n- \"http-body\",\n- \"pin-project-lite\",\n- \"tower\",\n- \"tower-layer\",\n- \"tower-service\",\n- \"url\",\n-]\n-\n [[package]]\n name = \"tower-layer\"\n version = \"0.3.3\"\n@@ -1653,15 +1491,15 @@ checksum = \"121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e\"\n \n [[package]]\n name = \"tower-service\"\n-version = \"0.3.3\"\n+version = \"0.3.2\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3\"\n+checksum = \"b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52\"\n \n [[package]]\n name = \"tracing\"\n-version = \"0.1.44\"\n+version = \"0.1.40\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100\"\n+checksum = \"c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef\"\n dependencies = [\n  \"pin-project-lite\",\n  \"tracing-core\",\n@@ -1669,9 +1507,9 @@ dependencies = [\n \n [[package]]\n name = \"tracing-core\"\n-version = \"0.1.36\"\n+version = \"0.1.32\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a\"\n+checksum = \"c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54\"\n dependencies = [\n  \"once_cell\",\n ]\n@@ -1684,15 +1522,18 @@ checksum = \"e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b\"\n \n [[package]]\n name = \"unicase\"\n-version = \"2.9.0\"\n+version = \"2.7.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142\"\n+checksum = \"f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89\"\n+dependencies = [\n+ \"version_check\",\n+]\n \n [[package]]\n name = \"unicode-ident\"\n-version = \"1.0.24\"\n+version = \"1.0.12\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75\"\n+checksum = \"3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b\"\n \n [[package]]\n name = \"untrusted\"\n@@ -1702,15 +1543,14 @@ checksum = \"8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1\"\n \n [[package]]\n name = \"url\"\n-version = \"2.5.8\"\n+version = \"2.5.4\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed\"\n+checksum = \"32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60\"\n dependencies = [\n  \"form_urlencoded\",\n  \"idna\",\n  \"percent-encoding\",\n  \"serde\",\n- \"serde_derive\",\n ]\n \n [[package]]\n@@ -1719,6 +1559,12 @@ version = \"2.1.3\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n checksum = \"daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da\"\n \n+[[package]]\n+name = \"utf16_iter\"\n+version = \"1.0.5\"\n+source = \"registry+https://github.com/rust-lang/crates.io-index\"\n+checksum = \"c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246\"\n+\n [[package]]\n name = \"utf8_iter\"\n version = \"1.0.4\"\n@@ -1737,16 +1583,6 @@ version = \"0.9.5\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n checksum = \"0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a\"\n \n-[[package]]\n-name = \"walkdir\"\n-version = \"2.5.0\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b\"\n-dependencies = [\n- \"same-file\",\n- \"winapi-util\",\n-]\n-\n [[package]]\n name = \"want\"\n version = \"0.3.1\"\n@@ -1758,38 +1594,52 @@ dependencies = [\n \n [[package]]\n name = \"wasi\"\n-version = \"0.11.1+wasi-snapshot-preview1\"\n+version = \"0.11.0+wasi-snapshot-preview1\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b\"\n+checksum = \"9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423\"\n \n [[package]]\n name = \"wasm-bindgen\"\n-version = \"0.2.126\"\n+version = \"0.2.92\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4\"\n+checksum = \"4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8\"\n dependencies = [\n  \"cfg-if\",\n- \"once_cell\",\n- \"rustversion\",\n  \"wasm-bindgen-macro\",\n+]\n+\n+[[package]]\n+name = \"wasm-bindgen-backend\"\n+version = \"0.2.92\"\n+source = \"registry+https://github.com/rust-lang/crates.io-index\"\n+checksum = \"614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da\"\n+dependencies = [\n+ \"bumpalo\",\n+ \"log\",\n+ \"once_cell\",\n+ \"proc-macro2\",\n+ \"quote\",\n+ \"syn\",\n  \"wasm-bindgen-shared\",\n ]\n \n [[package]]\n name = \"wasm-bindgen-futures\"\n-version = \"0.4.76\"\n+version = \"0.4.42\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"c62df1340f32221cb9c54d6a27b030e3dba64361d4a95bed55f9aacb44da291d\"\n+checksum = \"76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0\"\n dependencies = [\n+ \"cfg-if\",\n  \"js-sys\",\n  \"wasm-bindgen\",\n+ \"web-sys\",\n ]\n \n [[package]]\n name = \"wasm-bindgen-macro\"\n-version = \"0.2.126\"\n+version = \"0.2.92\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1\"\n+checksum = \"a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726\"\n dependencies = [\n  \"quote\",\n  \"wasm-bindgen-macro-support\",\n@@ -1797,97 +1647,79 @@ dependencies = [\n \n [[package]]\n name = \"wasm-bindgen-macro-support\"\n-version = \"0.2.126\"\n+version = \"0.2.92\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e\"\n+checksum = \"e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7\"\n dependencies = [\n- \"bumpalo\",\n  \"proc-macro2\",\n  \"quote\",\n  \"syn\",\n+ \"wasm-bindgen-backend\",\n  \"wasm-bindgen-shared\",\n ]\n \n [[package]]\n name = \"wasm-bindgen-shared\"\n-version = \"0.2.126\"\n+version = \"0.2.92\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24\"\n-dependencies = [\n- \"unicode-ident\",\n-]\n+checksum = \"af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96\"\n \n [[package]]\n name = \"web-sys\"\n-version = \"0.3.103\"\n+version = \"0.3.69\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"8622dcb61c0bcc9fffa6938bed81210af2da9a7e4a1a834b2e37a59b6dfb6141\"\n+checksum = \"77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef\"\n dependencies = [\n  \"js-sys\",\n  \"wasm-bindgen\",\n ]\n \n [[package]]\n-name = \"web-time\"\n-version = \"1.1.0\"\n+name = \"webpki-roots\"\n+version = \"0.26.11\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb\"\n+checksum = \"521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9\"\n dependencies = [\n- \"js-sys\",\n- \"wasm-bindgen\",\n+ \"webpki-roots 1.0.4\",\n ]\n \n [[package]]\n-name = \"webpki-root-certs\"\n-version = \"1.0.8\"\n+name = \"webpki-roots\"\n+version = \"1.0.4\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"0d46a5a140e6f7afeccd8eae97eff335163939eac8b929834875168b29b3d267\"\n+checksum = \"b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e\"\n dependencies = [\n  \"rustls-pki-types\",\n ]\n \n-[[package]]\n-name = \"winapi-util\"\n-version = \"0.1.11\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22\"\n-dependencies = [\n- \"windows-sys 0.61.2\",\n-]\n-\n-[[package]]\n-name = \"windows-link\"\n-version = \"0.2.1\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5\"\n-\n [[package]]\n name = \"windows-registry\"\n-version = \"0.6.1\"\n+version = \"0.2.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720\"\n+checksum = \"e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0\"\n dependencies = [\n- \"windows-link\",\n  \"windows-result\",\n  \"windows-strings\",\n+ \"windows-targets\",\n ]\n \n [[package]]\n name = \"windows-result\"\n-version = \"0.4.1\"\n+version = \"0.2.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5\"\n+checksum = \"1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e\"\n dependencies = [\n- \"windows-link\",\n+ \"windows-targets\",\n ]\n \n [[package]]\n name = \"windows-strings\"\n-version = \"0.5.1\"\n+version = \"0.1.0\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091\"\n+checksum = \"4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10\"\n dependencies = [\n- \"windows-link\",\n+ \"windows-result\",\n+ \"windows-targets\",\n ]\n \n [[package]]\n@@ -1899,15 +1731,6 @@ dependencies = [\n  \"windows-targets\",\n ]\n \n-[[package]]\n-name = \"windows-sys\"\n-version = \"0.61.2\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc\"\n-dependencies = [\n- \"windows-link\",\n-]\n-\n [[package]]\n name = \"windows-targets\"\n version = \"0.52.6\"\n@@ -1972,18 +1795,25 @@ version = \"0.52.6\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n checksum = \"589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec\"\n \n+[[package]]\n+name = \"write16\"\n+version = \"1.0.0\"\n+source = \"registry+https://github.com/rust-lang/crates.io-index\"\n+checksum = \"d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936\"\n+\n [[package]]\n name = \"writeable\"\n-version = \"0.6.3\"\n+version = \"0.5.5\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4\"\n+checksum = \"1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51\"\n \n [[package]]\n name = \"yoke\"\n-version = \"0.8.3\"\n+version = \"0.7.5\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5\"\n+checksum = \"120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40\"\n dependencies = [\n+ \"serde\",\n  \"stable_deref_trait\",\n  \"yoke-derive\",\n  \"zerofrom\",\n@@ -1991,9 +1821,9 @@ dependencies = [\n \n [[package]]\n name = \"yoke-derive\"\n-version = \"0.8.2\"\n+version = \"0.7.5\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e\"\n+checksum = \"2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154\"\n dependencies = [\n  \"proc-macro2\",\n  \"quote\",\n@@ -2002,48 +1832,57 @@ dependencies = [\n ]\n \n [[package]]\n-name = \"zerofrom\"\n-version = \"0.1.8\"\n+name = \"zerocopy\"\n+version = \"0.8.27\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272\"\n+checksum = \"0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c\"\n dependencies = [\n- \"zerofrom-derive\",\n+ \"zerocopy-derive\",\n ]\n \n [[package]]\n-name = \"zerofrom-derive\"\n-version = \"0.1.7\"\n+name = \"zerocopy-derive\"\n+version = \"0.8.27\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1\"\n+checksum = \"88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831\"\n dependencies = [\n  \"proc-macro2\",\n  \"quote\",\n  \"syn\",\n- \"synstructure\",\n ]\n \n [[package]]\n-name = \"zeroize\"\n-version = \"1.9.0\"\n+name = \"zerofrom\"\n+version = \"0.1.5\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e\"\n+checksum = \"cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e\"\n+dependencies = [\n+ \"zerofrom-derive\",\n+]\n \n [[package]]\n-name = \"zerotrie\"\n-version = \"0.2.4\"\n+name = \"zerofrom-derive\"\n+version = \"0.1.5\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf\"\n+checksum = \"595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808\"\n dependencies = [\n- \"displaydoc\",\n- \"yoke\",\n- \"zerofrom\",\n+ \"proc-macro2\",\n+ \"quote\",\n+ \"syn\",\n+ \"synstructure\",\n ]\n \n+[[package]]\n+name = \"zeroize\"\n+version = \"1.8.1\"\n+source = \"registry+https://github.com/rust-lang/crates.io-index\"\n+checksum = \"ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde\"\n+\n [[package]]\n name = \"zerovec\"\n-version = \"0.11.6\"\n+version = \"0.10.4\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239\"\n+checksum = \"aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079\"\n dependencies = [\n  \"yoke\",\n  \"zerofrom\",\n@@ -2052,17 +1891,11 @@ dependencies = [\n \n [[package]]\n name = \"zerovec-derive\"\n-version = \"0.11.3\"\n+version = \"0.10.3\"\n source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555\"\n+checksum = \"6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6\"\n dependencies = [\n  \"proc-macro2\",\n  \"quote\",\n  \"syn\",\n ]\n-\n-[[package]]\n-name = \"zmij\"\n-version = \"1.0.21\"\n-source = \"registry+https://github.com/rust-lang/crates.io-index\"\n-checksum = \"b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa\"\ndiff --git a/Cargo.toml b/Cargo.toml\nindex 3913e90..3da824e 100644\n--- a/Cargo.toml\n+++ b/Cargo.toml\n@@ -12,7 +12,7 @@\n [package]\n edition = \"2021\"\n name = \"forgejo-api\"\n-version = \"0.11.1\"\n+version = \"0.10.0\"\n build = false\n autolib = false\n autobins = false\n@@ -26,8 +26,7 @@ repository = \"https://codeberg.org/Cyborus/forgejo-api\"\n \n [features]\n default = [\"reqwest/default-tls\"]\n-native-tls = [\"reqwest/native-tls\"]\n-rustls-tls = [\"reqwest/rustls\"]\n+rustls-tls = [\"reqwest/rustls-tls\"]\n sync = [\"reqwest/blocking\"]\n \n [lib]\n@@ -55,40 +54,40 @@ name = \"user\"\n path = \"tests/user.rs\"\n \n [dependencies.base64ct]\n-version = \"1.8.3\"\n+version = \"1.6.0\"\n \n [dependencies.bytes]\n-version = \"1.12.1\"\n+version = \"1.5.0\"\n \n [dependencies.futures]\n-version = \"0.3.32\"\n+version = \"0.3.31\"\n \n [dependencies.reqwest]\n-version = \"0.13.4\"\n+version = \"0.12\"\n features = [\n     \"charset\",\n     \"http2\",\n-    \"system-proxy\",\n+    \"macos-system-configuration\",\n     \"json\",\n     \"multipart\",\n ]\n default-features = false\n \n [dependencies.serde]\n-version = \"1.0.228\"\n+version = \"1.0.168\"\n features = [\"derive\"]\n \n [dependencies.serde_json]\n-version = \"1.0.150\"\n+version = \"1.0.108\"\n \n [dependencies.soft_assert]\n version = \"0.1.1\"\n \n [dependencies.thiserror]\n-version = \"2.0.18\"\n+version = \"1.0.43\"\n \n [dependencies.time]\n-version = \"0.3.53\"\n+version = \"0.3.26\"\n features = [\n     \"parsing\",\n     \"serde\",\n@@ -96,31 +95,28 @@ features = [\n ]\n \n [dependencies.tokio]\n-version = \"1.52.3\"\n+version = \"1.29.1\"\n features = [\"net\"]\n \n [dependencies.url]\n-version = \"2.5.8\"\n+version = \"2.4.0\"\n features = [\"serde\"]\n \n [dependencies.urlencoding]\n version = \"2.1.3\"\n \n [dependencies.zeroize]\n-version = \"1.9.0\"\n+version = \"1.7.0\"\n \n [dev-dependencies.eyre]\n-version = \"0.6.12\"\n+version = \"0.6.9\"\n \n [dev-dependencies.reqwest]\n-version = \"0.13\"\n-features = [\n-    \"cookies\",\n-    \"form\",\n-]\n+version = \"0.12\"\n+features = [\"cookies\"]\n \n [dev-dependencies.tokio]\n-version = \"1.52.3\"\n+version = \"1.29.1\"\n features = [\n     \"net\",\n     \"fs\",\ndiff --git a/Cargo.toml.orig b/Cargo.toml.orig\nindex c151916..0df78bb 100644\n--- a/Cargo.toml.orig\n+++ b/Cargo.toml.orig\n@@ -1,7 +1,7 @@\n workspace = { members = [\"generator\"] }\n [package]\n name = \"forgejo-api\"\n-version = \"0.11.1\"\n+version = \"0.10.0\"\n edition = \"2021\"\n license = \"Apache-2.0 OR MIT\"\n repository = \"https://codeberg.org/Cyborus/forgejo-api\"\n@@ -10,27 +10,26 @@ description = \"Interface to Forgejo's Web API\"\n # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html\n \n [dependencies]\n-reqwest = { version = \"0.13.4\", default-features = false, features = [\"charset\", \"http2\", \"system-proxy\", \"json\", \"multipart\"] }\n+reqwest = { version = \"0.12\", default-features = false, features = [\"charset\", \"http2\", \"macos-system-configuration\", \"json\", \"multipart\"] }\n soft_assert = \"0.1.1\"\n-thiserror = \"2.0.18\"\n-tokio = { version = \"1.52.3\", features = [\"net\"] }\n-url = { version = \"2.5.8\", features = [\"serde\"] }\n-serde = { version = \"1.0.228\", features = [\"derive\"] }\n-time = { version = \"0.3.53\", features = [\"parsing\", \"serde\", \"formatting\"] }\n-serde_json = \"1.0.150\"\n-bytes = \"1.12.1\"\n-base64ct = \"1.8.3\"\n-zeroize = \"1.9.0\"\n-futures = \"0.3.32\"\n+thiserror = \"1.0.43\"\n+tokio = { version = \"1.29.1\", features = [\"net\"] }\n+url = { version = \"2.4.0\", features = [\"serde\"] }\n+serde = { version = \"1.0.168\", features = [\"derive\"] }\n+time = { version = \"0.3.26\", features = [\"parsing\", \"serde\", \"formatting\"] }\n+serde_json = \"1.0.108\"\n+bytes = \"1.5.0\"\n+base64ct = \"1.6.0\"\n+zeroize = \"1.7.0\"\n+futures = \"0.3.31\"\n urlencoding = \"2.1.3\"\n \n [features]\n default = [\"reqwest/default-tls\"]\n sync = [\"reqwest/blocking\"]\n-rustls-tls = [\"reqwest/rustls\"]\n-native-tls = [\"reqwest/native-tls\"]\n+rustls-tls = [\"reqwest/rustls-tls\"]\n \n [dev-dependencies]\n-eyre = \"0.6.12\"\n-reqwest = { version = \"0.13\", features = [\"cookies\", \"form\"] }\n-tokio = { version = \"1.52.3\", features = [\"net\", \"fs\", \"rt\", \"macros\"] }\n+eyre = \"0.6.9\"\n+reqwest = { version = \"0.12\", features = [\"cookies\"] }\n+tokio = { version = \"1.29.1\", features = [\"net\", \"fs\", \"rt\", \"macros\"] }\ndiff --git a/LICENSE-APACHE b/LICENSE-APACHE\nindex dc9e48e..261eeb9 100644\n--- a/LICENSE-APACHE\n+++ b/LICENSE-APACHE\n@@ -186,7 +186,7 @@\n       same \"printed page\" as the copyright notice for easier\n       identification within third-party archives.\n \n-   Copyright 2026 Cyborus\n+   Copyright [yyyy] [name of copyright owner]\n \n    Licensed under the Apache License, Version 2.0 (the \"License\");\n    you may not use this file except in compliance with the License.\ndiff --git a/LICENSE-MIT b/LICENSE-MIT\nindex bb32775..8aa2645 100644\n--- a/LICENSE-MIT\n+++ b/LICENSE-MIT\n@@ -1,6 +1,6 @@\n MIT License\n \n-Copyright (c) 2026 Cyborus\n+Copyright (c) [year] [fullname]\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\ndiff --git a/debian/cargo-checksum.json b/debian/cargo-checksum.json\nindex d7bb56a..aeb912a 100644\n--- a/debian/cargo-checksum.json\n+++ b/debian/cargo-checksum.json\n@@ -1 +1 @@\n-{\"package\":\"e723c70a2a46fe0dbc2c10024218170ad9ca6ce8f98a39cee8032478ab748086\",\"files\":{}}\n+{\"package\":\"f855a38f4ebd722f5955cb482cd051fe6499f9cfaab2f3cabf955d4c32c1327d\",\"files\":{}}\ndiff --git a/debian/changelog b/debian/changelog\nindex 5b7d17d..7e0a500 100644\n--- a/debian/changelog\n+++ b/debian/changelog\n@@ -1,29 +1,3 @@\n-rust-forgejo-api (0.11.1-1) sid; urgency=medium\n-\n-  * Merging upstream version 0.11.1.\n-  * Updating cargo checksum.\n-  * Updating cargo crate version.\n-  * Updating build-depends.\n-  * Updating depends.\n-  * Updating tests control.\n-  * Adding patch to update cargo crate depends to available versions in\n-    the debian archive.\n-\n- -- Daniel Baumann <daniel@debian.org>  Wed, 22 Jul 2026 15:33:15 +0200\n-\n-rust-forgejo-api (0.11.0-1) sid; urgency=medium\n-\n-  * Updating to debhelper 14.\n-  * Merging upstream version 0.11.0.\n-  * Updating cargo checksum.\n-  * Updating build-depends.\n-  * Updating cargo crate version.\n-  * Updating depends.\n-  * Updating test.\n-  * Updating vcs fields.\n-\n- -- Daniel Baumann <daniel@debian.org>  Fri, 10 Jul 2026 20:37:58 +0200\n-\n rust-forgejo-api (0.10.0-2) sid; urgency=medium\n \n   * Renaming source package to rust-forgejo-api for consistency with Rust\ndiff --git a/debian/control b/debian/control\nindex 3c85cd8..da8db65 100644\n--- a/debian/control\n+++ b/debian/control\n@@ -3,96 +3,79 @@ Section: rust\n Priority: optional\n Maintainer: Daniel Baumann <daniel@debian.org>\n Build-Depends:\n- debhelper-compat (= 14),\n+ debhelper-compat (= 13),\n  dh-sequence-cargo,\n- dh-sequence-single-binary,\n Build-Depends-Arch:\n  cargo:native <!nocheck>,\n- librust-base64ct-1+default-dev (>= 1.8.3) <!nocheck>,\n- librust-bytes-1+default-dev (>= 1.11) <!nocheck>,\n- librust-futures-0.3+default-dev (>= 0.3.32) <!nocheck>,\n- librust-reqwest-0.12+charset-dev <!nocheck>,\n- librust-reqwest-0.12+default-tls-dev <!nocheck>,\n- librust-reqwest-0.12+http2-dev <!nocheck>,\n- librust-reqwest-0.12+json-dev <!nocheck>,\n- librust-reqwest-0.12+multipart-dev <!nocheck>,\n- librust-reqwest-0.12+system-proxy-dev <!nocheck>,\n- librust-serde-1+default-dev (>= 1.0.228) <!nocheck>,\n- librust-serde-1+derive-dev (>= 1.0.228) <!nocheck>,\n- librust-serde-json-1+default-dev (>= 1.0.150) <!nocheck>,\n- librust-soft-assert-0.1+default-dev (>= 0.1.1) <!nocheck>,\n- librust-thiserror-2+default-dev (>= 2.0.18) <!nocheck>,\n- librust-time-0.3+default-dev <!nocheck>,\n- librust-time-0.3+formatting-dev <!nocheck>,\n- librust-time-0.3+parsing-dev <!nocheck>,\n- librust-time-0.3+serde-dev <!nocheck>,\n- librust-tokio-1+default-dev (>= 1.52.3) <!nocheck>,\n- librust-tokio-1+net-dev (>= 1.52.3) <!nocheck>,\n- librust-url-2+default-dev (>= 2.5.8) <!nocheck>,\n- librust-url-2+serde-dev (>= 2.5.8) <!nocheck>,\n- librust-urlencoding-2+default-dev (>= 2.1.3) <!nocheck>,\n- librust-zeroize-1+default-dev (>= 1.9.0) <!nocheck>,\n+ librust-base64ct-dev (>= 1.6.0) <!nocheck>,\n+ librust-bytes-dev (>= 1.5.0) <!nocheck>,\n+ librust-futures-dev (>= 0.3.31) <!nocheck>,\n+ librust-reqwest-0.12-dev <!nocheck>,\n+ librust-serde-dev (>= 1.0.168) <!nocheck>,\n+ librust-serde-json-dev (>= 1.0.108) <!nocheck>,\n+ librust-soft-assert-dev (>= 0.1.1) <!nocheck>,\n+ librust-thiserror-dev (>= 1.0.43) <!nocheck>,\n+ librust-time-dev (>= 0.3.26) <!nocheck>,\n+ librust-tokio-dev (>= 1.29.1) <!nocheck>,\n+ librust-url-dev (>= 2.4.0) <!nocheck>,\n+ librust-urlencoding-dev (>= 2.1.3) <!nocheck>,\n+ librust-zeroize-dev (>= 1.7.0) <!nocheck>,\n  libstd-rust-dev <!nocheck>,\n  rustc:native <!nocheck>,\n Standards-Version: 4.7.4\n Homepage: https://codeberg.org/Cyborus/forgejo-api\n-Vcs-Browser: https://forgejo.debian.net/rust/rust-forgejo-api\n-Vcs-Git: https://forgejo.debian.net/rust/rust-forgejo-api\n+Vcs-Browser: https://forgejo.debian.net/forgejo-cli/rust-forgejo-api\n+Vcs-Git: https://forgejo.debian.net/forgejo-cli/rust-forgejo-api\n X-Cargo-Crate: forgejo-api\n-X-Cargo-Crate-Version: 0.11.1\n+X-Cargo-Crate-Version: 0.10.0\n \n Package: librust-forgejo-api-dev\n Section: rust\n Architecture: any\n Multi-Arch: same\n Depends:\n- librust-base64ct-1+default-dev (>= 1.8.3),\n- librust-bytes-1+default-dev (>= 1.11),\n- librust-futures-0.3+default-dev (>= 0.3.32),\n+ librust-base64ct-1+default-dev (>= 1.6.0),\n+ librust-bytes-1+default-dev (>= 1.5.0),\n+ librust-futures-0.3+default-dev (>= 0.3.31),\n  librust-reqwest-0.12+blocking-dev,\n  librust-reqwest-0.12+charset-dev,\n  librust-reqwest-0.12+default-tls-dev,\n  librust-reqwest-0.12+http2-dev,\n  librust-reqwest-0.12+json-dev,\n+ librust-reqwest-0.12+macos-system-configuration-dev,\n  librust-reqwest-0.12+multipart-dev,\n- librust-reqwest-0.12+native-tls-dev,\n- librust-reqwest-0.12+rustls-dev,\n- librust-reqwest-0.12+system-proxy-dev,\n- librust-serde-1+default-dev (>= 1.0.228),\n- librust-serde-1+derive-dev (>= 1.0.228),\n- librust-serde-json-1+default-dev (>= 1.0.150),\n+ librust-reqwest-0.12+rustls-tls-dev,\n+ librust-serde-1+default-dev (>= 1.0.168),\n+ librust-serde-1+derive-dev (>= 1.0.168),\n+ librust-serde-json-1+default-dev (>= 1.0.108),\n  librust-soft-assert-0.1+default-dev (>= 0.1.1),\n- librust-thiserror-2+default-dev (>= 2.0.18),\n- librust-time-0.3+default-dev,\n- librust-time-0.3+formatting-dev,\n- librust-time-0.3+parsing-dev,\n- librust-time-0.3+serde-dev,\n- librust-tokio-1+default-dev (>= 1.52.3),\n- librust-tokio-1+net-dev (>= 1.52.3),\n- librust-url-2+default-dev (>= 2.5.8),\n- librust-url-2+serde-dev (>= 2.5.8),\n+ librust-thiserror-1+default-dev (>= 1.0.43),\n+ librust-time-0.3+default-dev (>= 0.3.26),\n+ librust-time-0.3+formatting-dev (>= 0.3.26),\n+ librust-time-0.3+parsing-dev (>= 0.3.26),\n+ librust-time-0.3+serde-dev (>= 0.3.26),\n+ librust-tokio-1+default-dev (>= 1.29.1),\n+ librust-tokio-1+net-dev (>= 1.29.1),\n+ librust-url-2+default-dev (>= 2.4.0),\n+ librust-url-2+serde-dev (>= 2.4.0),\n  librust-urlencoding-2+default-dev (>= 2.1.3),\n- librust-zeroize-1+default-dev (>= 1.9.0),\n+ librust-zeroize-1+default-dev (>= 1.7.0),\n  ${misc:Depends},\n Provides:\n  librust-forgejo-api+default-dev (= ${binary:Version}),\n- librust-forgejo-api+native-tls-dev (= ${binary:Version}),\n  librust-forgejo-api+rustls-tls-dev (= ${binary:Version}),\n  librust-forgejo-api+sync-dev (= ${binary:Version}),\n  librust-forgejo-api-0+default-dev (= ${binary:Version}),\n- librust-forgejo-api-0+native-tls-dev (= ${binary:Version}),\n  librust-forgejo-api-0+rustls-tls-dev (= ${binary:Version}),\n  librust-forgejo-api-0+sync-dev (= ${binary:Version}),\n  librust-forgejo-api-0-dev (= ${binary:Version}),\n- librust-forgejo-api-0.11+default-dev (= ${binary:Version}),\n- librust-forgejo-api-0.11+native-tls-dev (= ${binary:Version}),\n- librust-forgejo-api-0.11+rustls-tls-dev (= ${binary:Version}),\n- librust-forgejo-api-0.11+sync-dev (= ${binary:Version}),\n- librust-forgejo-api-0.11-dev (= ${binary:Version}),\n- librust-forgejo-api-0.11.1+default-dev (= ${binary:Version}),\n- librust-forgejo-api-0.11.1+native-tls-dev (= ${binary:Version}),\n- librust-forgejo-api-0.11.1+rustls-tls-dev (= ${binary:Version}),\n- librust-forgejo-api-0.11.1+sync-dev (= ${binary:Version}),\n- librust-forgejo-api-0.11.1-dev (= ${binary:Version}),\n+ librust-forgejo-api-0.10+default-dev (= ${binary:Version}),\n+ librust-forgejo-api-0.10+rustls-tls-dev (= ${binary:Version}),\n+ librust-forgejo-api-0.10+sync-dev (= ${binary:Version}),\n+ librust-forgejo-api-0.10-dev (= ${binary:Version}),\n+ librust-forgejo-api-0.10.0+default-dev (= ${binary:Version}),\n+ librust-forgejo-api-0.10.0+rustls-tls-dev (= ${binary:Version}),\n+ librust-forgejo-api-0.10.0+sync-dev (= ${binary:Version}),\n+ librust-forgejo-api-0.10.0-dev (= ${binary:Version}),\n Description: Interface to Forgejo's Web API - Rust source code\n  Source code for Debianized Rust crate \"forgejo-api\"\ndiff --git a/debian/patches/debian/0001-cargo.patch b/debian/patches/debian/0001-cargo.patch\ndeleted file mode 100644\nindex fad4029..0000000\n--- a/debian/patches/debian/0001-cargo.patch\n+++ /dev/null\n@@ -1,31 +0,0 @@\n-Author: Daniel Baumann <daniel@debian.org>\n-Description: Updating cargo crate depends to available versions in the debian archive.\n-\n-diff -Naurp rust-forgejo-api.orig/Cargo.toml rust-forgejo-api/Cargo.toml\n---- rust-forgejo-api.orig/Cargo.toml\n-+++ rust-forgejo-api/Cargo.toml\n-@@ -58,13 +58,13 @@ path = \"tests/user.rs\"\n- version = \"1.8.3\"\n- \n- [dependencies.bytes]\n--version = \"1.12.1\"\n-+version = \">= 1.11\"\n- \n- [dependencies.futures]\n- version = \"0.3.32\"\n- \n- [dependencies.reqwest]\n--version = \"0.13.4\"\n-+version = \">= 0.12\"\n- features = [\n-     \"charset\",\n-     \"http2\",\n-@@ -88,7 +88,7 @@ version = \"0.1.1\"\n- version = \"2.0.18\"\n- \n- [dependencies.time]\n--version = \"0.3.53\"\n-+version = \">= 0.3\"\n- features = [\n-     \"parsing\",\n-     \"serde\",\ndiff --git a/debian/patches/series b/debian/patches/series\ndeleted file mode 100644\nindex 2c2b5f8..0000000\n--- a/debian/patches/series\n+++ /dev/null\n@@ -1 +0,0 @@\n-debian/0001-cargo.patch\ndiff --git a/debian/tests/control b/debian/tests/control\nindex 734f088..ed27d44 100644\n--- a/debian/tests/control\n+++ b/debian/tests/control\n@@ -1,117 +1,94 @@\n-Test-Command: /usr/share/cargo/bin/cargo-auto-test forgejo-api 0.11.1 --all-targets --all-features\n+Test-Command: /usr/share/cargo/bin/cargo-auto-test forgejo-api 0.10.0 --all-targets --all-features\n Features:\n  test-name=rust-forgejo-api:@,\n Depends:\n  dh-cargo (>= 33~),\n- librust-eyre-0.6+default-dev (>= 0.6.12),\n+ librust-eyre-0.6+default-dev (>= 0.6.9),\n  librust-reqwest-0.12+cookies-dev,\n  librust-reqwest-0.12+default-dev,\n- librust-reqwest-0.12+form-dev,\n- librust-tokio-1+default-dev (>= 1.52.3),\n- librust-tokio-1+fs-dev (>= 1.52.3),\n- librust-tokio-1+macros-dev (>= 1.52.3),\n- librust-tokio-1+net-dev (>= 1.52.3),\n- librust-tokio-1+rt-dev (>= 1.52.3),\n+ librust-tokio-1+default-dev (>= 1.29.1),\n+ librust-tokio-1+fs-dev (>= 1.29.1),\n+ librust-tokio-1+macros-dev (>= 1.29.1),\n+ librust-tokio-1+net-dev (>= 1.29.1),\n+ librust-tokio-1+rt-dev (>= 1.29.1),\n  rustc,\n  @,\n Restrictions:\n  allow-stderr,\n+ skip-not-installable,\n \n-Test-Command: /usr/share/cargo/bin/cargo-auto-test forgejo-api 0.11.1 --all-targets\n+Test-Command: /usr/share/cargo/bin/cargo-auto-test forgejo-api 0.10.0 --all-targets\n Features:\n  test-name=librust-forgejo-api-dev:default,\n Depends:\n  dh-cargo (>= 33~),\n- librust-eyre-0.6+default-dev (>= 0.6.12),\n+ librust-eyre-0.6+default-dev (>= 0.6.9),\n  librust-reqwest-0.12+cookies-dev,\n  librust-reqwest-0.12+default-dev,\n- librust-reqwest-0.12+form-dev,\n- librust-tokio-1+default-dev (>= 1.52.3),\n- librust-tokio-1+fs-dev (>= 1.52.3),\n- librust-tokio-1+macros-dev (>= 1.52.3),\n- librust-tokio-1+net-dev (>= 1.52.3),\n- librust-tokio-1+rt-dev (>= 1.52.3),\n+ librust-tokio-1+default-dev (>= 1.29.1),\n+ librust-tokio-1+fs-dev (>= 1.29.1),\n+ librust-tokio-1+macros-dev (>= 1.29.1),\n+ librust-tokio-1+net-dev (>= 1.29.1),\n+ librust-tokio-1+rt-dev (>= 1.29.1),\n  rustc,\n  @,\n Restrictions:\n  allow-stderr,\n+ skip-not-installable,\n \n-Test-Command: /usr/share/cargo/bin/cargo-auto-test forgejo-api 0.11.1 --all-targets --no-default-features --features native-tls\n-Features:\n- test-name=librust-forgejo-api-dev:native-tls,\n-Depends:\n- dh-cargo (>= 33~),\n- librust-eyre-0.6+default-dev (>= 0.6.12),\n- librust-reqwest-0.12+cookies-dev,\n- librust-reqwest-0.12+default-dev,\n- librust-reqwest-0.12+form-dev,\n- librust-tokio-1+default-dev (>= 1.52.3),\n- librust-tokio-1+fs-dev (>= 1.52.3),\n- librust-tokio-1+macros-dev (>= 1.52.3),\n- librust-tokio-1+net-dev (>= 1.52.3),\n- librust-tokio-1+rt-dev (>= 1.52.3),\n- rustc,\n- @,\n-Restrictions:\n- allow-stderr,\n-Architecture: !riscv64\n-\n-Test-Command: /usr/share/cargo/bin/cargo-auto-test forgejo-api 0.11.1 --all-targets --no-default-features --features rustls-tls\n+Test-Command: /usr/share/cargo/bin/cargo-auto-test forgejo-api 0.10.0 --all-targets --no-default-features --features rustls-tls\n Features:\n  test-name=librust-forgejo-api-dev:rustls-tls,\n Depends:\n  dh-cargo (>= 33~),\n- librust-eyre-0.6+default-dev (>= 0.6.12),\n+ librust-eyre-0.6+default-dev (>= 0.6.9),\n  librust-reqwest-0.12+cookies-dev,\n  librust-reqwest-0.12+default-dev,\n- librust-reqwest-0.12+form-dev,\n- librust-tokio-1+default-dev (>= 1.52.3),\n- librust-tokio-1+fs-dev (>= 1.52.3),\n- librust-tokio-1+macros-dev (>= 1.52.3),\n- librust-tokio-1+net-dev (>= 1.52.3),\n- librust-tokio-1+rt-dev (>= 1.52.3),\n+ librust-tokio-1+default-dev (>= 1.29.1),\n+ librust-tokio-1+fs-dev (>= 1.29.1),\n+ librust-tokio-1+macros-dev (>= 1.29.1),\n+ librust-tokio-1+net-dev (>= 1.29.1),\n+ librust-tokio-1+rt-dev (>= 1.29.1),\n  rustc,\n  @,\n Restrictions:\n  allow-stderr,\n-Architecture: !riscv64\n+ skip-not-installable,\n \n-Test-Command: /usr/share/cargo/bin/cargo-auto-test forgejo-api 0.11.1 --all-targets --no-default-features --features sync\n+Test-Command: /usr/share/cargo/bin/cargo-auto-test forgejo-api 0.10.0 --all-targets --no-default-features --features sync\n Features:\n  test-name=librust-forgejo-api-dev:sync,\n Depends:\n  dh-cargo (>= 33~),\n- librust-eyre-0.6+default-dev (>= 0.6.12),\n+ librust-eyre-0.6+default-dev (>= 0.6.9),\n  librust-reqwest-0.12+cookies-dev,\n  librust-reqwest-0.12+default-dev,\n- librust-reqwest-0.12+form-dev,\n- librust-tokio-1+default-dev (>= 1.52.3),\n- librust-tokio-1+fs-dev (>= 1.52.3),\n- librust-tokio-1+macros-dev (>= 1.52.3),\n- librust-tokio-1+net-dev (>= 1.52.3),\n- librust-tokio-1+rt-dev (>= 1.52.3),\n+ librust-tokio-1+default-dev (>= 1.29.1),\n+ librust-tokio-1+fs-dev (>= 1.29.1),\n+ librust-tokio-1+macros-dev (>= 1.29.1),\n+ librust-tokio-1+net-dev (>= 1.29.1),\n+ librust-tokio-1+rt-dev (>= 1.29.1),\n  rustc,\n  @,\n Restrictions:\n  allow-stderr,\n-Architecture: !riscv64\n+ skip-not-installable,\n \n-Test-Command: /usr/share/cargo/bin/cargo-auto-test forgejo-api 0.11.1 --all-targets --no-default-features\n+Test-Command: /usr/share/cargo/bin/cargo-auto-test forgejo-api 0.10.0 --all-targets --no-default-features\n Features:\n  test-name=librust-forgejo-api-dev:,\n Depends:\n  dh-cargo (>= 33~),\n- librust-eyre-0.6+default-dev (>= 0.6.12),\n+ librust-eyre-0.6+default-dev (>= 0.6.9),\n  librust-reqwest-0.12+cookies-dev,\n  librust-reqwest-0.12+default-dev,\n- librust-reqwest-0.12+form-dev,\n- librust-tokio-1+default-dev (>= 1.52.3),\n- librust-tokio-1+fs-dev (>= 1.52.3),\n- librust-tokio-1+macros-dev (>= 1.52.3),\n- librust-tokio-1+net-dev (>= 1.52.3),\n- librust-tokio-1+rt-dev (>= 1.52.3),\n+ librust-tokio-1+default-dev (>= 1.29.1),\n+ librust-tokio-1+fs-dev (>= 1.29.1),\n+ librust-tokio-1+macros-dev (>= 1.29.1),\n+ librust-tokio-1+net-dev (>= 1.29.1),\n+ librust-tokio-1+rt-dev (>= 1.29.1),\n  rustc,\n  @,\n Restrictions:\n  allow-stderr,\n-Architecture: !riscv64\n+ skip-not-installable,\ndiff --git a/src/generated/endpoints.rs b/src/generated/endpoints.rs\nindex a6416b6..c017dc3 100644\n--- a/src/generated/endpoints.rs\n+++ b/src/generated/endpoints.rs\n@@ -20,32 +20,6 @@ fn json_error<E: Into<crate::ApiError> + serde::de::DeserializeOwned>(\n         Err(error) => ForgejoError::from(error),\n     }\n }\n-pub struct GetActionsRun {}\n-\n-impl Sealed for GetActionsRun {}\n-impl Endpoint for GetActionsRun {\n-    type Response = ActionRun;\n-    fn make_request(self) -> RawRequest {\n-        RawRequest {\n-            method: Method::GET,\n-            path: \"/api/v1/actions/run\".into(),\n-            query: None,\n-            body: RequestBody::None,\n-            page: None,\n-            limit: None,\n-        }\n-    }\n-\n-    fn handle_error(response: ApiResponse) -> Result<(ApiResponse, bool), ForgejoError> {\n-        match response.status_code.as_u16() {\n-            200 => Ok((response, true)),\n-            _ => Err(ForgejoError::UnexpectedStatusCode(\n-                response.status_code.clone(),\n-            )),\n-        }\n-    }\n-}\n-\n pub struct ActivitypubInstanceActor {}\n \n impl Sealed for ActivitypubInstanceActor {}\n@@ -1987,116 +1961,6 @@ impl Endpoint for AdminCreateRepo<'_> {\n     }\n }\n \n-pub struct AdminListUserAccessTokens<'a> {\n-    pub username: &'a str,\n-}\n-\n-impl Sealed for AdminListUserAccessTokens<'_> {}\n-impl Endpoint for AdminListUserAccessTokens<'_> {\n-    type Response = (AccessTokenListHeaders, Vec<AccessToken>);\n-    fn make_request(self) -> RawRequest {\n-        RawRequest {\n-            method: Method::GET,\n-            path: format!(\n-                \"/api/v1/admin/users/{username}/tokens\",\n-                username = urlencoding::encode(self.username)\n-            )\n-            .into(),\n-            query: None,\n-            body: RequestBody::None,\n-            page: None,\n-            limit: None,\n-        }\n-    }\n-\n-    fn handle_error(response: ApiResponse) -> Result<(ApiResponse, bool), ForgejoError> {\n-        match response.status_code.as_u16() {\n-            200 => Ok((response, true)),\n-            403 => Err(json_error::<APIForbiddenError>(&response)),\n-            404 => Err(json_error::<APINotFound>(&response)),\n-            _ => Err(ForgejoError::UnexpectedStatusCode(\n-                response.status_code.clone(),\n-            )),\n-        }\n-    }\n-}\n-\n-pub struct AdminCreateUserAccessToken<'a> {\n-    pub username: &'a str,\n-    pub body: CreateAccessTokenOption,\n-}\n-\n-impl Sealed for AdminCreateUserAccessToken<'_> {}\n-impl Endpoint for AdminCreateUserAccessToken<'_> {\n-    type Response = AccessToken;\n-    fn make_request(self) -> RawRequest {\n-        RawRequest {\n-            method: Method::POST,\n-            path: format!(\n-                \"/api/v1/admin/users/{username}/tokens\",\n-                username = urlencoding::encode(self.username)\n-            )\n-            .into(),\n-            query: None,\n-            body: RequestBody::Json(Bytes::from(\n-                serde_json::to_vec(&self.body)\n-                    .expect(\"failed to serialize value. This is probably a bug in forgejo-api\"),\n-            )),\n-            page: None,\n-            limit: None,\n-        }\n-    }\n-\n-    fn handle_error(response: ApiResponse) -> Result<(ApiResponse, bool), ForgejoError> {\n-        match response.status_code.as_u16() {\n-            201 => Ok((response, true)),\n-            400 => Err(json_error::<APIError>(&response)),\n-            403 => Err(json_error::<APIForbiddenError>(&response)),\n-            404 => Err(json_error::<APINotFound>(&response)),\n-            _ => Err(ForgejoError::UnexpectedStatusCode(\n-                response.status_code.clone(),\n-            )),\n-        }\n-    }\n-}\n-\n-pub struct AdminDeleteUserAccessToken<'a> {\n-    pub username: &'a str,\n-    pub token: &'a str,\n-}\n-\n-impl Sealed for AdminDeleteUserAccessToken<'_> {}\n-impl Endpoint for AdminDeleteUserAccessToken<'_> {\n-    type Response = ();\n-    fn make_request(self) -> RawRequest {\n-        RawRequest {\n-            method: Method::DELETE,\n-            path: format!(\n-                \"/api/v1/admin/users/{username}/tokens/{token}\",\n-                username = urlencoding::encode(self.username),\n-                token = urlencoding::encode(self.token)\n-            )\n-            .into(),\n-            query: None,\n-            body: RequestBody::None,\n-            page: None,\n-            limit: None,\n-        }\n-    }\n-\n-    fn handle_error(response: ApiResponse) -> Result<(ApiResponse, bool), ForgejoError> {\n-        match response.status_code.as_u16() {\n-            204 => Ok((response, false)),\n-            403 => Err(json_error::<APIForbiddenError>(&response)),\n-            404 => Err(json_error::<APINotFound>(&response)),\n-            422 => Err(json_error::<APIError>(&response)),\n-            _ => Err(ForgejoError::UnexpectedStatusCode(\n-                response.status_code.clone(),\n-            )),\n-        }\n-    }\n-}\n-\n pub struct ListGitignoresTemplates {}\n \n impl Sealed for ListGitignoresTemplates {}\n@@ -4871,201 +4735,6 @@ impl Endpoint for RepoEdit<'_> {\n     }\n }\n \n-pub struct ListActionArtifacts<'a> {\n-    pub owner: &'a str,\n-    pub repo: &'a str,\n-    pub query: ListActionArtifactsQuery,\n-}\n-\n-impl Sealed for ListActionArtifacts<'_> {}\n-impl Endpoint for ListActionArtifacts<'_> {\n-    type Response = Vec<ActionArtifact>;\n-    fn make_request(self) -> RawRequest {\n-        RawRequest {\n-            method: Method::GET,\n-            path: format!(\n-                \"/api/v1/repos/{owner}/{repo}/actions/artifacts\",\n-                owner = urlencoding::encode(self.owner),\n-                repo = urlencoding::encode(self.repo)\n-            )\n-            .into(),\n-            query: Some(self.query.into_list()),\n-            body: RequestBody::None,\n-            page: None,\n-            limit: None,\n-        }\n-    }\n-\n-    fn handle_error(response: ApiResponse) -> Result<(ApiResponse, bool), ForgejoError> {\n-        match response.status_code.as_u16() {\n-            200 => Ok((response, true)),\n-            400 => Err(json_error::<APIError>(&response)),\n-            403 => Err(json_error::<APIForbiddenError>(&response)),\n-            _ => Err(ForgejoError::UnexpectedStatusCode(\n-                response.status_code.clone(),\n-            )),\n-        }\n-    }\n-}\n-\n-pub struct GetActionArtifact<'a> {\n-    pub owner: &'a str,\n-    pub repo: &'a str,\n-    pub artifact_id: i64,\n-}\n-\n-impl Sealed for GetActionArtifact<'_> {}\n-impl Endpoint for GetActionArtifact<'_> {\n-    type Response = ActionArtifact;\n-    fn make_request(self) -> RawRequest {\n-        RawRequest {\n-            method: Method::GET,\n-            path: format!(\n-                \"/api/v1/repos/{owner}/{repo}/actions/artifacts/{artifact_id}\",\n-                owner = urlencoding::encode(self.owner),\n-                repo = urlencoding::encode(self.repo),\n-                artifact_id = self.artifact_id\n-            )\n-            .into(),\n-            query: None,\n-            body: RequestBody::None,\n-            page: None,\n-            limit: None,\n-        }\n-    }\n-\n-    fn handle_error(response: ApiResponse) -> Result<(ApiResponse, bool), ForgejoError> {\n-        match response.status_code.as_u16() {\n-            200 => Ok((response, true)),\n-            400 => Err(json_error::<APIError>(&response)),\n-            403 => Err(json_error::<APIForbiddenError>(&response)),\n-            404 => Err(json_error::<APINotFound>(&response)),\n-            _ => Err(ForgejoError::UnexpectedStatusCode(\n-                response.status_code.clone(),\n-            )),\n-        }\n-    }\n-}\n-\n-pub struct DeleteActionArtifact<'a> {\n-    pub owner: &'a str,\n-    pub repo: &'a str,\n-    pub artifact_id: i64,\n-}\n-\n-impl Sealed for DeleteActionArtifact<'_> {}\n-impl Endpoint for DeleteActionArtifact<'_> {\n-    type Response = ();\n-    fn make_request(self) -> RawRequest {\n-        RawRequest {\n-            method: Method::DELETE,\n-            path: format!(\n-                \"/api/v1/repos/{owner}/{repo}/actions/artifacts/{artifact_id}\",\n-                owner = urlencoding::encode(self.owner),\n-                repo = urlencoding::encode(self.repo),\n-                artifact_id = self.artifact_id\n-            )\n-            .into(),\n-            query: None,\n-            body: RequestBody::None,\n-            page: None,\n-            limit: None,\n-        }\n-    }\n-\n-    fn handle_error(response: ApiResponse) -> Result<(ApiResponse, bool), ForgejoError> {\n-        match response.status_code.as_u16() {\n-            204 => Ok((response, false)),\n-            400 => Err(json_error::<APIError>(&response)),\n-            403 => Err(json_error::<APIForbiddenError>(&response)),\n-            404 => Err(json_error::<APINotFound>(&response)),\n-            _ => Err(ForgejoError::UnexpectedStatusCode(\n-                response.status_code.clone(),\n-            )),\n-        }\n-    }\n-}\n-\n-pub struct DownloadActionArtifact<'a> {\n-    pub owner: &'a str,\n-    pub repo: &'a str,\n-    pub artifact_id: i64,\n-}\n-\n-impl Sealed for DownloadActionArtifact<'_> {}\n-impl Endpoint for DownloadActionArtifact<'_> {\n-    type Response = Bytes;\n-    fn make_request(self) -> RawRequest {\n-        RawRequest {\n-            method: Method::GET,\n-            path: format!(\n-                \"/api/v1/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/zip\",\n-                owner = urlencoding::encode(self.owner),\n-                repo = urlencoding::encode(self.repo),\n-                artifact_id = self.artifact_id\n-            )\n-            .into(),\n-            query: None,\n-            body: RequestBody::None,\n-            page: None,\n-            limit: None,\n-        }\n-    }\n-\n-    fn handle_error(response: ApiResponse) -> Result<(ApiResponse, bool), ForgejoError> {\n-        match response.status_code.as_u16() {\n-            200 => Ok((response, true)),\n-            400 => Err(json_error::<APIError>(&response)),\n-            403 => Err(json_error::<APIForbiddenError>(&response)),\n-            404 => Err(json_error::<APINotFound>(&response)),\n-            _ => Err(ForgejoError::UnexpectedStatusCode(\n-                response.status_code.clone(),\n-            )),\n-        }\n-    }\n-}\n-\n-pub struct RepoGetActionJobLogs<'a> {\n-    pub owner: &'a str,\n-    pub repo: &'a str,\n-    pub job_id: i64,\n-    pub query: RepoGetActionJobLogsQuery,\n-}\n-\n-impl Sealed for RepoGetActionJobLogs<'_> {}\n-impl Endpoint for RepoGetActionJobLogs<'_> {\n-    type Response = String;\n-    fn make_request(self) -> RawRequest {\n-        RawRequest {\n-            method: Method::GET,\n-            path: format!(\n-                \"/api/v1/repos/{owner}/{repo}/actions/jobs/{job_id}/logs\",\n-                owner = urlencoding::encode(self.owner),\n-                repo = urlencoding::encode(self.repo),\n-                job_id = self.job_id\n-            )\n-            .into(),\n-            query: Some(self.query.into_list()),\n-            body: RequestBody::None,\n-            page: None,\n-            limit: None,\n-        }\n-    }\n-\n-    fn handle_error(response: ApiResponse) -> Result<(ApiResponse, bool), ForgejoError> {\n-        match response.status_code.as_u16() {\n-            200 => Ok((response, true)),\n-            206 => Ok((response, true)),\n-            401 => Err(json_error::<APIUnauthorizedError>(&response)),\n-            403 => Err(json_error::<APIForbiddenError>(&response)),\n-            404 => Err(json_error::<APINotFound>(&response)),\n-            _ => Err(ForgejoError::UnexpectedStatusCode(\n-                response.status_code.clone(),\n-            )),\n-        }\n-    }\n-}\n-\n pub struct GetRepoRunners<'a> {\n     pub owner: &'a str,\n     pub repo: &'a str,\n@@ -5366,201 +5035,6 @@ impl Endpoint for GetActionRun<'_> {\n     }\n }\n \n-pub struct DeleteActionRun<'a> {\n-    pub owner: &'a str,\n-    pub repo: &'a str,\n-    pub run_id: i64,\n-}\n-\n-impl Sealed for DeleteActionRun<'_> {}\n-impl Endpoint for DeleteActionRun<'_> {\n-    type Response = ();\n-    fn make_request(self) -> RawRequest {\n-        RawRequest {\n-            method: Method::DELETE,\n-            path: format!(\n-                \"/api/v1/repos/{owner}/{repo}/actions/runs/{run_id}\",\n-                owner = urlencoding::encode(self.owner),\n-                repo = urlencoding::encode(self.repo),\n-                run_id = self.run_id\n-            )\n-            .into(),\n-            query: None,\n-            body: RequestBody::None,\n-            page: None,\n-            limit: None,\n-        }\n-    }\n-\n-    fn handle_error(response: ApiResponse) -> Result<(ApiResponse, bool), ForgejoError> {\n-        match response.status_code.as_u16() {\n-            204 => Ok((response, false)),\n-            400 => Err(json_error::<APIError>(&response)),\n-            403 => Err(json_error::<APIForbiddenError>(&response)),\n-            404 => Err(json_error::<APINotFound>(&response)),\n-            _ => Err(ForgejoError::UnexpectedStatusCode(\n-                response.status_code.clone(),\n-            )),\n-        }\n-    }\n-}\n-\n-pub struct ListActionRunArtifacts<'a> {\n-    pub owner: &'a str,\n-    pub repo: &'a str,\n-    pub run_id: i64,\n-    pub query: ListActionRunArtifactsQuery,\n-}\n-\n-impl Sealed for ListActionRunArtifacts<'_> {}\n-impl Endpoint for ListActionRunArtifacts<'_> {\n-    type Response = Vec<ActionArtifact>;\n-    fn make_request(self) -> RawRequest {\n-        RawRequest {\n-            method: Method::GET,\n-            path: format!(\n-                \"/api/v1/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\",\n-                owner = urlencoding::encode(self.owner),\n-                repo = urlencoding::encode(self.repo),\n-                run_id = self.run_id\n-            )\n-            .into(),\n-            query: Some(self.query.into_list()),\n-            body: RequestBody::None,\n-            page: None,\n-            limit: None,\n-        }\n-    }\n-\n-    fn handle_error(response: ApiResponse) -> Result<(ApiResponse, bool), ForgejoError> {\n-        match response.status_code.as_u16() {\n-            200 => Ok((response, true)),\n-            400 => Err(json_error::<APIError>(&response)),\n-            403 => Err(json_error::<APIForbiddenError>(&response)),\n-            404 => Err(json_error::<APINotFound>(&response)),\n-            _ => Err(ForgejoError::UnexpectedStatusCode(\n-                response.status_code.clone(),\n-            )),\n-        }\n-    }\n-}\n-\n-pub struct CancelActionRun<'a> {\n-    pub owner: &'a str,\n-    pub repo: &'a str,\n-    pub run_id: i64,\n-}\n-\n-impl Sealed for CancelActionRun<'_> {}\n-impl Endpoint for CancelActionRun<'_> {\n-    type Response = ();\n-    fn make_request(self) -> RawRequest {\n-        RawRequest {\n-            method: Method::POST,\n-            path: format!(\n-                \"/api/v1/repos/{owner}/{repo}/actions/runs/{run_id}/cancel\",\n-                owner = urlencoding::encode(self.owner),\n-                repo = urlencoding::encode(self.repo),\n-                run_id = self.run_id\n-            )\n-            .into(),\n-            query: None,\n-            body: RequestBody::None,\n-            page: None,\n-            limit: None,\n-        }\n-    }\n-\n-    fn handle_error(response: ApiResponse) -> Result<(ApiResponse, bool), ForgejoError> {\n-        match response.status_code.as_u16() {\n-            204 => Ok((response, false)),\n-            403 => Err(json_error::<APIForbiddenError>(&response)),\n-            404 => Err(json_error::<APINotFound>(&response)),\n-            _ => Err(ForgejoError::UnexpectedStatusCode(\n-                response.status_code.clone(),\n-            )),\n-        }\n-    }\n-}\n-\n-pub struct ListActionRunJobs<'a> {\n-    pub owner: &'a str,\n-    pub repo: &'a str,\n-    pub run_id: i64,\n-}\n-\n-impl Sealed for ListActionRunJobs<'_> {}\n-impl Endpoint for ListActionRunJobs<'_> {\n-    type Response = Vec<ActionRunJob>;\n-    fn make_request(self) -> RawRequest {\n-        RawRequest {\n-            method: Method::GET,\n-            path: format!(\n-                \"/api/v1/repos/{owner}/{repo}/actions/runs/{run_id}/jobs\",\n-                owner = urlencoding::encode(self.owner),\n-                repo = urlencoding::encode(self.repo),\n-                run_id = self.run_id\n-            )\n-            .into(),\n-            query: None,\n-            body: RequestBody::None,\n-            page: None,\n-            limit: None,\n-        }\n-    }\n-\n-    fn handle_error(response: ApiResponse) -> Result<(ApiResponse, bool), ForgejoError> {\n-        match response.status_code.as_u16() {\n-            200 => Ok((response, true)),\n-            400 => Err(json_error::<APIError>(&response)),\n-            403 => Err(json_error::<APIForbiddenError>(&response)),\n-            404 => Err(json_error::<APINotFound>(&response)),\n-            _ => Err(ForgejoError::UnexpectedStatusCode(\n-                response.status_code.clone(),\n-            )),\n-        }\n-    }\n-}\n-\n-pub struct RepoGetActionRunLogs<'a> {\n-    pub owner: &'a str,\n-    pub repo: &'a str,\n-    pub run_id: i64,\n-}\n-\n-impl Sealed for RepoGetActionRunLogs<'_> {}\n-impl Endpoint for RepoGetActionRunLogs<'_> {\n-    type Response = Bytes;\n-    fn make_request(self) -> RawRequest {\n-        RawRequest {\n-            method: Method::GET,\n-            path: format!(\n-                \"/api/v1/repos/{owner}/{repo}/actions/runs/{run_id}/logs\",\n-                owner = urlencoding::encode(self.owner),\n-                repo = urlencoding::encode(self.repo),\n-                run_id = self.run_id\n-            )\n-            .into(),\n-            query: None,\n-            body: RequestBody::None,\n-            page: None,\n-            limit: None,\n-        }\n-    }\n-\n-    fn handle_error(response: ApiResponse) -> Result<(ApiResponse, bool), ForgejoError> {\n-        match response.status_code.as_u16() {\n-            200 => Ok((response, true)),\n-            401 => Err(json_error::<APIUnauthorizedError>(&response)),\n-            403 => Err(json_error::<APIForbiddenError>(&response)),\n-            404 => Err(json_error::<APINotFound>(&response)),\n-            _ => Err(ForgejoError::UnexpectedStatusCode(\n-                response.status_code.clone(),\n-            )),\n-        }\n-    }\n-}\n-\n pub struct RepoListActionsSecrets<'a> {\n     pub owner: &'a str,\n     pub repo: &'a str,\n@@ -16028,40 +15502,6 @@ impl Endpoint for DeleteUserVariable<'_> {\n     }\n }\n \n-pub struct UserCurrentActivityPubFollow {\n-    pub body: APRemoteFollowOption,\n-}\n-\n-impl Sealed for UserCurrentActivityPubFollow {}\n-impl Endpoint for UserCurrentActivityPubFollow {\n-    type Response = ();\n-    fn make_request(self) -> RawRequest {\n-        RawRequest {\n-            method: Method::POST,\n-            path: \"/api/v1/user/activitypub/follow\".into(),\n-            query: None,\n-            body: RequestBody::Json(Bytes::from(\n-                serde_json::to_vec(&self.body)\n-                    .expect(\"failed to serialize value. This is probably a bug in forgejo-api\"),\n-            )),\n-            page: None,\n-            limit: None,\n-        }\n-    }\n-\n-    fn handle_error(response: ApiResponse) -> Result<(ApiResponse, bool), ForgejoError> {\n-        match response.status_code.as_u16() {\n-            204 => Ok((response, false)),\n-            401 => Err(json_error::<APIUnauthorizedError>(&response)),\n-            403 => Err(json_error::<APIForbiddenError>(&response)),\n-            404 => Err(json_error::<APINotFound>(&response)),\n-            _ => Err(ForgejoError::UnexpectedStatusCode(\n-                response.status_code.clone(),\n-            )),\n-        }\n-    }\n-}\n-\n pub struct UserGetOAuth2Applications {}\n \n impl Sealed for UserGetOAuth2Applications {}\ndiff --git a/src/generated/methods.rs b/src/generated/methods.rs\nindex d180d08..2c2ac78 100644\n--- a/src/generated/methods.rs\n+++ b/src/generated/methods.rs\n@@ -6,13 +6,6 @@ use bytes::Bytes;\n use std::collections::BTreeMap;\n \n impl crate::Forgejo {\n-    /// Get a workflow run associated with a token\n-    pub fn get_actions_run(&self) -> Request<'_, endpoints::GetActionsRun, ActionRun> {\n-        endpoints::GetActionsRun {}\n-            .make_request()\n-            .wrap::<_, _>(self)\n-    }\n-\n     /// Returns the instance's Actor\n     pub fn activitypub_instance_actor(\n         &self,\n@@ -763,53 +756,6 @@ impl crate::Forgejo {\n         .wrap::<_, _>(self)\n     }\n \n-    /// List the specified user's access tokens\n-    ///\n-    /// - `username`: username of user\n-    pub fn admin_list_user_access_tokens(\n-        &self,\n-        username: &str,\n-    ) -> Request<\n-        '_,\n-        endpoints::AdminListUserAccessTokens<'_>,\n-        (AccessTokenListHeaders, Vec<AccessToken>),\n-    > {\n-        endpoints::AdminListUserAccessTokens { username }\n-            .make_request()\n-            .wrap::<_, _>(self)\n-    }\n-\n-    /// Create an access token for the specified user\n-    ///\n-    /// - `username`: username of user\n-    /// - `body`: See [`CreateAccessTokenOption`]\n-    pub fn admin_create_user_access_token(\n-        &self,\n-        username: &str,\n-        body: CreateAccessTokenOption,\n-    ) -> Request<'_, endpoints::AdminCreateUserAccessToken<'_>, AccessToken> {\n-        endpoints::AdminCreateUserAccessToken {\n-            username,\n-            body: body,\n-        }\n-        .make_request()\n-        .wrap::<_, _>(self)\n-    }\n-\n-    /// Delete an access token for the specified user\n-    ///\n-    /// - `username`: username of user\n-    /// - `token`: token to be deleted, identified by ID and if not available by name\n-    pub fn admin_delete_user_access_token(\n-        &self,\n-        username: &str,\n-        token: &str,\n-    ) -> Request<'_, endpoints::AdminDeleteUserAccessToken<'_>, ()> {\n-        endpoints::AdminDeleteUserAccessToken { username, token }\n-            .make_request()\n-            .wrap::<_, _>(self)\n-    }\n-\n     /// Returns a list of all gitignore templates\n     pub fn list_gitignores_templates(\n         &self,\n@@ -1918,103 +1864,6 @@ impl crate::Forgejo {\n         .wrap::<_, _>(self)\n     }\n \n-    /// List a repository's artifacts\n-    ///\n-    /// - `owner`: owner of the repo\n-    /// - `repo`: name of the repo\n-    pub fn list_action_artifacts(\n-        &self,\n-        owner: &str,\n-        repo: &str,\n-        query: ListActionArtifactsQuery,\n-    ) -> Request<'_, endpoints::ListActionArtifacts<'_>, Vec<ActionArtifact>> {\n-        endpoints::ListActionArtifacts { owner, repo, query }\n-            .make_request()\n-            .wrap::<_, _>(self)\n-    }\n-\n-    /// Get an artifact by ID\n-    ///\n-    /// - `owner`: owner of the repo\n-    /// - `repo`: name of the repo\n-    /// - `artifact_id`: ID of the artifact\n-    pub fn get_action_artifact(\n-        &self,\n-        owner: &str,\n-        repo: &str,\n-        artifact_id: i64,\n-    ) -> Request<'_, endpoints::GetActionArtifact<'_>, ActionArtifact> {\n-        endpoints::GetActionArtifact {\n-            owner,\n-            repo,\n-            artifact_id,\n-        }\n-        .make_request()\n-        .wrap::<_, _>(self)\n-    }\n-\n-    /// Mark an artifact for deletion\n-    ///\n-    /// - `owner`: owner of the repo\n-    /// - `repo`: name of the repo\n-    /// - `artifact_id`: ID of the artifact\n-    pub fn delete_action_artifact(\n-        &self,\n-        owner: &str,\n-        repo: &str,\n-        artifact_id: i64,\n-    ) -> Request<'_, endpoints::DeleteActionArtifact<'_>, ()> {\n-        endpoints::DeleteActionArtifact {\n-            owner,\n-            repo,\n-            artifact_id,\n-        }\n-        .make_request()\n-        .wrap::<_, _>(self)\n-    }\n-\n-    /// Download an artifact\n-    ///\n-    /// - `owner`: owner of the repo\n-    /// - `repo`: name of the repo\n-    /// - `artifact_id`: ID of the artifact\n-    pub fn download_action_artifact(\n-        &self,\n-        owner: &str,\n-        repo: &str,\n-        artifact_id: i64,\n-    ) -> Request<'_, endpoints::DownloadActionArtifact<'_>, Bytes> {\n-        endpoints::DownloadActionArtifact {\n-            owner,\n-            repo,\n-            artifact_id,\n-        }\n-        .make_request()\n-        .wrap::<_, _>(self)\n-    }\n-\n-    /// Download the plaintext logs of an action job\n-    ///\n-    /// - `owner`: owner of the repo\n-    /// - `repo`: name of the repo\n-    /// - `job_id`: ID of the workflow job\n-    pub fn repo_get_action_job_logs(\n-        &self,\n-        owner: &str,\n-        repo: &str,\n-        job_id: i64,\n-        query: RepoGetActionJobLogsQuery,\n-    ) -> Request<'_, endpoints::RepoGetActionJobLogs<'_>, String> {\n-        endpoints::RepoGetActionJobLogs {\n-            owner,\n-            repo,\n-            job_id,\n-            query,\n-        }\n-        .make_request()\n-        .wrap::<_, _>(self)\n-    }\n-\n     /// Get runners belonging to the repository\n     ///\n     /// - `owner`: owner of the repo\n@@ -2155,109 +2004,6 @@ impl crate::Forgejo {\n         .wrap::<_, _>(self)\n     }\n \n-    /// Delete a completed workflow run.\n-    ///\n-    /// - `owner`: owner of the repo\n-    /// - `repo`: name of the repo\n-    /// - `run_id`: id of the action run\n-    pub fn delete_action_run(\n-        &self,\n-        owner: &str,\n-        repo: &str,\n-        run_id: i64,\n-    ) -> Request<'_, endpoints::DeleteActionRun<'_>, ()> {\n-        endpoints::DeleteActionRun {\n-            owner,\n-            repo,\n-            run_id,\n-        }\n-        .make_request()\n-        .wrap::<_, _>(self)\n-    }\n-\n-    /// List artifacts of a workflow run\n-    ///\n-    /// - `owner`: owner of the repo\n-    /// - `repo`: name of the repo\n-    /// - `run_id`: ID of the workflow run\n-    pub fn list_action_run_artifacts(\n-        &self,\n-        owner: &str,\n-        repo: &str,\n-        run_id: i64,\n-        query: ListActionRunArtifactsQuery,\n-    ) -> Request<'_, endpoints::ListActionRunArtifacts<'_>, Vec<ActionArtifact>> {\n-        endpoints::ListActionRunArtifacts {\n-            owner,\n-            repo,\n-            run_id,\n-            query,\n-        }\n-        .make_request()\n-        .wrap::<_, _>(self)\n-    }\n-\n-    /// Cancel a pending or running workflow run.\n-    ///\n-    /// - `owner`: owner of the repo\n-    /// - `repo`: name of the repo\n-    /// - `run_id`: ID of the workflow run\n-    pub fn cancel_action_run(\n-        &self,\n-        owner: &str,\n-        repo: &str,\n-        run_id: i64,\n-    ) -> Request<'_, endpoints::CancelActionRun<'_>, ()> {\n-        endpoints::CancelActionRun {\n-            owner,\n-            repo,\n-            run_id,\n-        }\n-        .make_request()\n-        .wrap::<_, _>(self)\n-    }\n-\n-    /// List jobs of a workflow run\n-    ///\n-    /// - `owner`: owner of the repo\n-    /// - `repo`: name of the repo\n-    /// - `run_id`: ID of the workflow run\n-    pub fn list_action_run_jobs(\n-        &self,\n-        owner: &str,\n-        repo: &str,\n-        run_id: i64,\n-    ) -> Request<'_, endpoints::ListActionRunJobs<'_>, Vec<ActionRunJob>> {\n-        endpoints::ListActionRunJobs {\n-            owner,\n-            repo,\n-            run_id,\n-        }\n-        .make_request()\n-        .wrap::<_, _>(self)\n-    }\n-\n-    /// Download a ZIP of plaintext logs for every job in an action run\n-    ///\n-    /// - `owner`: owner of the repo\n-    /// - `repo`: name of the repo\n-    /// - `run_id`: ID of the workflow run. The ZIP contains the latest attempt of each job in the run, with each entry named `{job-name}-{job-id}-attempt-{N}.log` (the job ID prevents collisions when two jobs share a name; the attempt number records which run the log came from). The run itself has no attempt number — jobs are re-run independently, so use the per-job logs endpoint with `?attempt` to fetch a specific historical attempt of one job.\n-\n-    pub fn repo_get_action_run_logs(\n-        &self,\n-        owner: &str,\n-        repo: &str,\n-        run_id: i64,\n-    ) -> Request<'_, endpoints::RepoGetActionRunLogs<'_>, Bytes> {\n-        endpoints::RepoGetActionRunLogs {\n-            owner,\n-            repo,\n-            run_id,\n-        }\n-        .make_request()\n-        .wrap::<_, _>(self)\n-    }\n-\n     /// List an repo's actions secrets\n     ///\n     /// - `owner`: owner of the repository\n@@ -7220,18 +6966,6 @@ impl crate::Forgejo {\n             .wrap::<_, _>(self)\n     }\n \n-    /// Follow a remote activitypub account\n-    ///\n-    /// - `body`: See [`APRemoteFollowOption`]\n-    pub fn user_current_activity_pub_follow(\n-        &self,\n-        body: APRemoteFollowOption,\n-    ) -> Request<'_, endpoints::UserCurrentActivityPubFollow, ()> {\n-        endpoints::UserCurrentActivityPubFollow { body: body }\n-            .make_request()\n-            .wrap::<_, _>(self)\n-    }\n-\n     /// List the authenticated user's oauth2 applications\n     ///\n     pub fn user_get_oauth2_applications(\ndiff --git a/src/generated/methods_sync.rs b/src/generated/methods_sync.rs\nindex a4c4211..4bb725b 100644\n--- a/src/generated/methods_sync.rs\n+++ b/src/generated/methods_sync.rs\n@@ -6,13 +6,6 @@ use bytes::Bytes;\n use std::collections::BTreeMap;\n \n impl crate::sync::Forgejo {\n-    /// Get a workflow run associated with a token\n-    pub fn get_actions_run(&self) -> crate::sync::Request<'_, endpoints::GetActionsRun, ActionRun> {\n-        endpoints::GetActionsRun {}\n-            .make_request()\n-            .wrap_sync::<_, _>(self)\n-    }\n-\n     /// Returns the instance's Actor\n     pub fn activitypub_instance_actor(\n         &self,\n@@ -789,53 +782,6 @@ impl crate::sync::Forgejo {\n         .wrap_sync::<_, _>(self)\n     }\n \n-    /// List the specified user's access tokens\n-    ///\n-    /// - `username`: username of user\n-    pub fn admin_list_user_access_tokens(\n-        &self,\n-        username: &str,\n-    ) -> crate::sync::Request<\n-        '_,\n-        endpoints::AdminListUserAccessTokens<'_>,\n-        (AccessTokenListHeaders, Vec<AccessToken>),\n-    > {\n-        endpoints::AdminListUserAccessTokens { username }\n-            .make_request()\n-            .wrap_sync::<_, _>(self)\n-    }\n-\n-    /// Create an access token for the specified user\n-    ///\n-    /// - `username`: username of user\n-    /// - `body`: See [`CreateAccessTokenOption`]\n-    pub fn admin_create_user_access_token(\n-        &self,\n-        username: &str,\n-        body: CreateAccessTokenOption,\n-    ) -> crate::sync::Request<'_, endpoints::AdminCreateUserAccessToken<'_>, AccessToken> {\n-        endpoints::AdminCreateUserAccessToken {\n-            username,\n-            body: body,\n-        }\n-        .make_request()\n-        .wrap_sync::<_, _>(self)\n-    }\n-\n-    /// Delete an access token for the specified user\n-    ///\n-    /// - `username`: username of user\n-    /// - `token`: token to be deleted, identified by ID and if not available by name\n-    pub fn admin_delete_user_access_token(\n-        &self,\n-        username: &str,\n-        token: &str,\n-    ) -> crate::sync::Request<'_, endpoints::AdminDeleteUserAccessToken<'_>, ()> {\n-        endpoints::AdminDeleteUserAccessToken { username, token }\n-            .make_request()\n-            .wrap_sync::<_, _>(self)\n-    }\n-\n     /// Returns a list of all gitignore templates\n     pub fn list_gitignores_templates(\n         &self,\n@@ -1996,103 +1942,6 @@ impl crate::sync::Forgejo {\n         .wrap_sync::<_, _>(self)\n     }\n \n-    /// List a repository's artifacts\n-    ///\n-    /// - `owner`: owner of the repo\n-    /// - `repo`: name of the repo\n-    pub fn list_action_artifacts(\n-        &self,\n-        owner: &str,\n-        repo: &str,\n-        query: ListActionArtifactsQuery,\n-    ) -> crate::sync::Request<'_, endpoints::ListActionArtifacts<'_>, Vec<ActionArtifact>> {\n-        endpoints::ListActionArtifacts { owner, repo, query }\n-            .make_request()\n-            .wrap_sync::<_, _>(self)\n-    }\n-\n-    /// Get an artifact by ID\n-    ///\n-    /// - `owner`: owner of the repo\n-    /// - `repo`: name of the repo\n-    /// - `artifact_id`: ID of the artifact\n-    pub fn get_action_artifact(\n-        &self,\n-        owner: &str,\n-        repo: &str,\n-        artifact_id: i64,\n-    ) -> crate::sync::Request<'_, endpoints::GetActionArtifact<'_>, ActionArtifact> {\n-        endpoints::GetActionArtifact {\n-            owner,\n-            repo,\n-            artifact_id,\n-        }\n-        .make_request()\n-        .wrap_sync::<_, _>(self)\n-    }\n-\n-    /// Mark an artifact for deletion\n-    ///\n-    /// - `owner`: owner of the repo\n-    /// - `repo`: name of the repo\n-    /// - `artifact_id`: ID of the artifact\n-    pub fn delete_action_artifact(\n-        &self,\n-        owner: &str,\n-        repo: &str,\n-        artifact_id: i64,\n-    ) -> crate::sync::Request<'_, endpoints::DeleteActionArtifact<'_>, ()> {\n-        endpoints::DeleteActionArtifact {\n-            owner,\n-            repo,\n-            artifact_id,\n-        }\n-        .make_request()\n-        .wrap_sync::<_, _>(self)\n-    }\n-\n-    /// Download an artifact\n-    ///\n-    /// - `owner`: owner of the repo\n-    /// - `repo`: name of the repo\n-    /// - `artifact_id`: ID of the artifact\n-    pub fn download_action_artifact(\n-        &self,\n-        owner: &str,\n-        repo: &str,\n-        artifact_id: i64,\n-    ) -> crate::sync::Request<'_, endpoints::DownloadActionArtifact<'_>, Bytes> {\n-        endpoints::DownloadActionArtifact {\n-            owner,\n-            repo,\n-            artifact_id,\n-        }\n-        .make_request()\n-        .wrap_sync::<_, _>(self)\n-    }\n-\n-    /// Download the plaintext logs of an action job\n-    ///\n-    /// - `owner`: owner of the repo\n-    /// - `repo`: name of the repo\n-    /// - `job_id`: ID of the workflow job\n-    pub fn repo_get_action_job_logs(\n-        &self,\n-        owner: &str,\n-        repo: &str,\n-        job_id: i64,\n-        query: RepoGetActionJobLogsQuery,\n-    ) -> crate::sync::Request<'_, endpoints::RepoGetActionJobLogs<'_>, String> {\n-        endpoints::RepoGetActionJobLogs {\n-            owner,\n-            repo,\n-            job_id,\n-            query,\n-        }\n-        .make_request()\n-        .wrap_sync::<_, _>(self)\n-    }\n-\n     /// Get runners belonging to the repository\n     ///\n     /// - `owner`: owner of the repo\n@@ -2237,109 +2086,6 @@ impl crate::sync::Forgejo {\n         .wrap_sync::<_, _>(self)\n     }\n \n-    /// Delete a completed workflow run.\n-    ///\n-    /// - `owner`: owner of the repo\n-    /// - `repo`: name of the repo\n-    /// - `run_id`: id of the action run\n-    pub fn delete_action_run(\n-        &self,\n-        owner: &str,\n-        repo: &str,\n-        run_id: i64,\n-    ) -> crate::sync::Request<'_, endpoints::DeleteActionRun<'_>, ()> {\n-        endpoints::DeleteActionRun {\n-            owner,\n-            repo,\n-            run_id,\n-        }\n-        .make_request()\n-        .wrap_sync::<_, _>(self)\n-    }\n-\n-    /// List artifacts of a workflow run\n-    ///\n-    /// - `owner`: owner of the repo\n-    /// - `repo`: name of the repo\n-    /// - `run_id`: ID of the workflow run\n-    pub fn list_action_run_artifacts(\n-        &self,\n-        owner: &str,\n-        repo: &str,\n-        run_id: i64,\n-        query: ListActionRunArtifactsQuery,\n-    ) -> crate::sync::Request<'_, endpoints::ListActionRunArtifacts<'_>, Vec<ActionArtifact>> {\n-        endpoints::ListActionRunArtifacts {\n-            owner,\n-            repo,\n-            run_id,\n-            query,\n-        }\n-        .make_request()\n-        .wrap_sync::<_, _>(self)\n-    }\n-\n-    /// Cancel a pending or running workflow run.\n-    ///\n-    /// - `owner`: owner of the repo\n-    /// - `repo`: name of the repo\n-    /// - `run_id`: ID of the workflow run\n-    pub fn cancel_action_run(\n-        &self,\n-        owner: &str,\n-        repo: &str,\n-        run_id: i64,\n-    ) -> crate::sync::Request<'_, endpoints::CancelActionRun<'_>, ()> {\n-        endpoints::CancelActionRun {\n-            owner,\n-            repo,\n-            run_id,\n-        }\n-        .make_request()\n-        .wrap_sync::<_, _>(self)\n-    }\n-\n-    /// List jobs of a workflow run\n-    ///\n-    /// - `owner`: owner of the repo\n-    /// - `repo`: name of the repo\n-    /// - `run_id`: ID of the workflow run\n-    pub fn list_action_run_jobs(\n-        &self,\n-        owner: &str,\n-        repo: &str,\n-        run_id: i64,\n-    ) -> crate::sync::Request<'_, endpoints::ListActionRunJobs<'_>, Vec<ActionRunJob>> {\n-        endpoints::ListActionRunJobs {\n-            owner,\n-            repo,\n-            run_id,\n-        }\n-        .make_request()\n-        .wrap_sync::<_, _>(self)\n-    }\n-\n-    /// Download a ZIP of plaintext logs for every job in an action run\n-    ///\n-    /// - `owner`: owner of the repo\n-    /// - `repo`: name of the repo\n-    /// - `run_id`: ID of the workflow run. The ZIP contains the latest attempt of each job in the run, with each entry named `{job-name}-{job-id}-attempt-{N}.log` (the job ID prevents collisions when two jobs share a name; the attempt number records which run the log came from). The run itself has no attempt number — jobs are re-run independently, so use the per-job logs endpoint with `?attempt` to fetch a specific historical attempt of one job.\n-\n-    pub fn repo_get_action_run_logs(\n-        &self,\n-        owner: &str,\n-        repo: &str,\n-        run_id: i64,\n-    ) -> crate::sync::Request<'_, endpoints::RepoGetActionRunLogs<'_>, Bytes> {\n-        endpoints::RepoGetActionRunLogs {\n-            owner,\n-            repo,\n-            run_id,\n-        }\n-        .make_request()\n-        .wrap_sync::<_, _>(self)\n-    }\n-\n     /// List an repo's actions secrets\n     ///\n     /// - `owner`: owner of the repository\n@@ -7398,18 +7144,6 @@ impl crate::sync::Forgejo {\n             .wrap_sync::<_, _>(self)\n     }\n \n-    /// Follow a remote activitypub account\n-    ///\n-    /// - `body`: See [`APRemoteFollowOption`]\n-    pub fn user_current_activity_pub_follow(\n-        &self,\n-        body: APRemoteFollowOption,\n-    ) -> crate::sync::Request<'_, endpoints::UserCurrentActivityPubFollow, ()> {\n-        endpoints::UserCurrentActivityPubFollow { body: body }\n-            .make_request()\n-            .wrap_sync::<_, _>(self)\n-    }\n-\n     /// List the authenticated user's oauth2 applications\n     ///\n     pub fn user_get_oauth2_applications(\ndiff --git a/src/generated/structs.rs b/src/generated/structs.rs\nindex 731ad45..28256ce 100644\n--- a/src/generated/structs.rs\n+++ b/src/generated/structs.rs\n@@ -4,7 +4,7 @@ use std::collections::BTreeMap;\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct APIError {\n     pub message: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n@@ -68,15 +68,8 @@ pub struct APIValidationError {\n \n impl_from_response!(APIValidationError);\n \n-#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n-pub struct APRemoteFollowOption {\n-    pub target: Option<String>,\n-}\n-\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct AccessToken {\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n-    pub created_at: Option<time::OffsetDateTime>,\n     pub id: Option<i64>,\n     pub name: Option<String>,\n     /// Indicates that an access token only has access to the specified repositories.  Will be null if the access token\n@@ -90,31 +83,6 @@ pub struct AccessToken {\n \n impl_from_response!(AccessToken);\n \n-/// ActionArtifact represents an artifact of a workflow run\n-#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n-pub struct ActionArtifact {\n-    /// the URL to download the artifact zip archive\n-    pub archive_download_url: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n-    pub created_at: Option<time::OffsetDateTime>,\n-    /// whether the artifact has expired\n-    pub expired: Option<bool>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n-    pub expires_at: Option<time::OffsetDateTime>,\n-    /// the artifact's ID\n-    pub id: Option<i64>,\n-    /// the artifact's name\n-    pub name: Option<String>,\n-    /// the ID of the workflow run that produced this artifact\n-    pub run_id: Option<i64>,\n-    /// the total size of the artifact in bytes\n-    pub size_in_bytes: Option<i64>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n-    pub updated_at: Option<time::OffsetDateTime>,\n-}\n-\n-impl_from_response!(ActionArtifact);\n-\n /// ActionRun represents an action run\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct ActionRun {\n@@ -125,7 +93,7 @@ pub struct ActionRun {\n     pub approved_by: Option<i64>,\n     /// the commit sha the action run ran on\n     pub commit_sha: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     /// when the action run was created\n     pub created: Option<time::OffsetDateTime>,\n     pub duration: Option<i64>,\n@@ -133,7 +101,7 @@ pub struct ActionRun {\n     pub event: Option<String>,\n     /// the payload of the webhook event that causes the workflow to run\n     pub event_payload: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     /// the url of this action run\n     pub html_url: Option<url::Url>,\n     /// the action run id\n@@ -149,12 +117,12 @@ pub struct ActionRun {\n     /// the commit/tag/… the action run ran on\n     pub prettyref: Option<String>,\n     pub repository: Option<Repository>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     /// when the action run was started\n     pub started: Option<time::OffsetDateTime>,\n     /// the current status of this run\n     pub status: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     /// when the action run was stopped\n     pub stopped: Option<time::OffsetDateTime>,\n     /// the action run's title\n@@ -162,7 +130,7 @@ pub struct ActionRun {\n     /// the trigger event defined in the `on` configuration of the triggered workflow\n     pub trigger_event: Option<String>,\n     pub trigger_user: Option<User>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     /// when the action run was last updated\n     pub updated: Option<time::OffsetDateTime>,\n     /// the name of workflow file\n@@ -188,8 +156,6 @@ pub struct ActionRunJob {\n     pub owner_id: Option<i64>,\n     /// the repository id\n     pub repo_id: Option<i64>,\n-    /// Identifier of the workflow run this job belongs to.\n-    pub run_id: Option<i64>,\n     /// the action run job labels to run on\n     pub runs_on: Option<Vec<String>>,\n     /// the action run job status\n@@ -245,7 +211,7 @@ pub enum ActionRunnerStatus {\n /// ActionTask represents a ActionTask\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct ActionTask {\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created_at: Option<time::OffsetDateTime>,\n     pub display_title: Option<String>,\n     pub event: Option<String>,\n@@ -254,12 +220,12 @@ pub struct ActionTask {\n     pub id: Option<i64>,\n     pub name: Option<String>,\n     pub run_number: Option<i64>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub run_started_at: Option<time::OffsetDateTime>,\n     pub status: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub updated_at: Option<time::OffsetDateTime>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n     pub workflow_id: Option<String>,\n }\n@@ -295,7 +261,7 @@ pub struct Activity {\n     pub comment: Option<Comment>,\n     pub comment_id: Option<i64>,\n     pub content: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created: Option<time::OffsetDateTime>,\n     pub id: Option<i64>,\n     pub is_private: Option<bool>,\n@@ -395,7 +361,7 @@ pub enum AddCollaboratorOptionPermission {\n /// AddTimeOption options for adding time to an issue\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct AddTimeOption {\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created: Option<time::OffsetDateTime>,\n     /// time in seconds\n     pub time: i64,\n@@ -412,7 +378,7 @@ pub struct AnnotatedTag {\n     pub sha: Option<String>,\n     pub tag: Option<String>,\n     pub tagger: Option<CommitUser>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n     pub verification: Option<PayloadCommitVerification>,\n }\n@@ -425,16 +391,16 @@ pub struct AnnotatedTagObject {\n     pub sha: Option<String>,\n     #[serde(rename = \"type\")]\n     pub r#type: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n /// Attachment a generic attachment\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct Attachment {\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub browser_download_url: Option<url::Url>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created_at: Option<time::OffsetDateTime>,\n     pub download_count: Option<i64>,\n     pub id: Option<i64>,\n@@ -457,7 +423,7 @@ pub enum AttachmentType {\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct BlockedUser {\n     pub block_id: Option<i64>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created_at: Option<time::OffsetDateTime>,\n }\n \n@@ -490,7 +456,7 @@ pub struct BranchProtection {\n     pub block_on_rejected_reviews: Option<bool>,\n     /// Deprecated: true\n     pub branch_name: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created_at: Option<time::OffsetDateTime>,\n     pub dismiss_stale_approvals: Option<bool>,\n     pub enable_approvals_whitelist: Option<bool>,\n@@ -510,7 +476,7 @@ pub struct BranchProtection {\n     pub rule_name: Option<String>,\n     pub status_check_contexts: Option<Vec<String>>,\n     pub unprotected_file_patterns: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub updated_at: Option<time::OffsetDateTime>,\n }\n \n@@ -554,8 +520,6 @@ pub struct ChangeFilesOptions {\n     pub dates: Option<CommitDateOptions>,\n     /// list of file operations\n     pub files: Vec<ChangeFileOperation>,\n-    /// (optional) will do a force-push if the new branch already exists\n-    pub force_overwrite_new_branch: Option<bool>,\n     /// message (optional) for the commit of this file. if not supplied, a default message will be used\n     pub message: Option<String>,\n     /// new_branch (optional) will make a new branch from `branch` before creating the file\n@@ -569,14 +533,14 @@ pub struct ChangeFilesOptions {\n pub struct ChangedFile {\n     pub additions: Option<i64>,\n     pub changes: Option<i64>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub contents_url: Option<url::Url>,\n     pub deletions: Option<i64>,\n     pub filename: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub html_url: Option<url::Url>,\n     pub previous_filename: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub raw_url: Option<url::Url>,\n     pub status: Option<String>,\n }\n@@ -586,14 +550,14 @@ impl_from_response!(ChangedFile);\n /// CombinedStatus holds the combined state of several statuses for a single commit\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct CombinedStatus {\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub commit_url: Option<url::Url>,\n     pub repository: Option<Repository>,\n     pub sha: Option<String>,\n     pub state: Option<CommitStatusState>,\n     pub statuses: Option<Vec<CommitStatus>>,\n     pub total_count: Option<i64>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n@@ -613,25 +577,25 @@ pub struct Comment {\n     pub assets: Option<Vec<Attachment>>,\n     /// The body of the comment\n     pub body: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     /// The time of the comment's creation\n     pub created_at: Option<time::OffsetDateTime>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     /// The HTML URL of the comment\n     pub html_url: Option<url::Url>,\n     /// The identifier of the comment\n     pub id: Option<i64>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     /// The HTML URL of the issue if the comment is posted on an issue, else empty string\n     pub issue_url: Option<url::Url>,\n     /// The original author that posted the comment if it was not posted locally, else empty string\n     pub original_author: Option<String>,\n     /// The ID of the original author that posted the comment if it was not posted locally, else 0\n     pub original_author_id: Option<i64>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     /// The HTML URL of the pull request if the comment is posted on a pull request, else empty string\n     pub pull_request_url: Option<url::Url>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     /// The time of the comment's update\n     pub updated_at: Option<time::OffsetDateTime>,\n     pub user: Option<User>,\n@@ -644,15 +608,15 @@ pub struct Commit {\n     pub author: Option<User>,\n     pub commit: Option<RepoCommit>,\n     pub committer: Option<User>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created: Option<time::OffsetDateTime>,\n     pub files: Option<Vec<CommitAffectedFiles>>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub html_url: Option<url::Url>,\n     pub parents: Option<Vec<CommitMeta>>,\n     pub sha: Option<String>,\n     pub stats: Option<CommitStats>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n@@ -668,18 +632,18 @@ pub struct CommitAffectedFiles {\n /// CommitDateOptions store dates for GIT_AUTHOR_DATE and GIT_COMMITTER_DATE\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct CommitDateOptions {\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub author: Option<time::OffsetDateTime>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub committer: Option<time::OffsetDateTime>,\n }\n \n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct CommitMeta {\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created: Option<time::OffsetDateTime>,\n     pub sha: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n@@ -695,16 +659,17 @@ pub struct CommitStats {\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct CommitStatus {\n     pub context: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created_at: Option<time::OffsetDateTime>,\n     pub creator: Option<User>,\n     pub description: Option<String>,\n     pub id: Option<i64>,\n     pub status: Option<CommitStatusState>,\n-    pub target_url: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n+    pub target_url: Option<url::Url>,\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub updated_at: Option<time::OffsetDateTime>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n@@ -712,7 +677,7 @@ impl_from_response!(CommitStatus);\n \n /// CommitStatusState holds the state of a CommitStatus\n ///\n-/// It can be \"pending\", \"success\", \"error\", \"failure\", \"warning\", or \"skipped\"\n+/// It can be \"pending\", \"success\", \"error\", \"failure\" and \"warning\"\n \n #[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]\n pub enum CommitStatusState {\n@@ -726,12 +691,10 @@ pub enum CommitStatusState {\n     Failure,\n     #[serde(rename = \"warning\")]\n     Warning,\n-    #[serde(rename = \"skipped\")]\n-    Skipped,\n }\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct CommitUser {\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub date: Option<time::OffsetDateTime>,\n     pub email: Option<String>,\n     pub name: Option<String>,\n@@ -753,22 +716,22 @@ pub struct ContentsResponse {\n     pub links: Option<FileLinksResponse>,\n     /// `content` is populated when `type` is `file`, otherwise null\n     pub content: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub download_url: Option<url::Url>,\n     /// `encoding` is populated when `type` is `file`, otherwise null\n     pub encoding: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub git_url: Option<url::Url>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub html_url: Option<url::Url>,\n     pub last_commit_sha: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub last_commit_when: Option<time::OffsetDateTime>,\n     pub name: Option<String>,\n     pub path: Option<String>,\n     pub sha: Option<String>,\n     pub size: Option<i64>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     /// `submodule_git_url` is populated when `type` is `submodule`, otherwise null\n     pub submodule_git_url: Option<url::Url>,\n     /// `target` is populated when `type` is `symlink`, otherwise null\n@@ -776,7 +739,7 @@ pub struct ContentsResponse {\n     /// `type` will be `file`, `dir`, `symlink`, or `submodule`\n     #[serde(rename = \"type\")]\n     pub r#type: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n@@ -854,8 +817,6 @@ pub struct CreateFileOptions {\n     /// content must be base64 encoded\n     pub content: String,\n     pub dates: Option<CommitDateOptions>,\n-    /// (optional) will do a force-push if the new branch already exists\n-    pub force_overwrite_new_branch: Option<bool>,\n     /// message (optional) for the commit of this file. if not supplied, a default message will be used\n     pub message: Option<String>,\n     /// new_branch (optional) will make a new branch from `branch` before creating the file\n@@ -934,7 +895,7 @@ pub struct CreateHookOptionConfig {\n pub struct CreateIssueCommentOption {\n     /// The body of the comment\n     pub body: String,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     /// The time of the comment's update, needs admin or repository owner permission\n     pub updated_at: Option<time::OffsetDateTime>,\n }\n@@ -947,7 +908,7 @@ pub struct CreateIssueOption {\n     pub assignees: Option<Vec<String>>,\n     pub body: Option<String>,\n     pub closed: Option<bool>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub due_date: Option<time::OffsetDateTime>,\n     /// list of label ids\n     pub labels: Option<Vec<i64>>,\n@@ -983,7 +944,7 @@ pub struct CreateLabelOption {\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct CreateMilestoneOption {\n     pub description: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub due_on: Option<time::OffsetDateTime>,\n     pub state: Option<CreateMilestoneOptionState>,\n     pub title: Option<String>,\n@@ -1044,7 +1005,7 @@ pub struct CreatePullRequestOption {\n     pub assignees: Option<Vec<String>>,\n     pub base: Option<String>,\n     pub body: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub due_date: Option<time::OffsetDateTime>,\n     pub head: Option<String>,\n     pub labels: Option<Vec<i64>>,\n@@ -1056,8 +1017,6 @@ pub struct CreatePullRequestOption {\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct CreatePullReviewComment {\n     pub body: Option<String>,\n-    /// number of additional lines after the commented line (0 = single line comment)\n-    pub extra_lines_count: Option<i64>,\n     /// if comment to new file line or 0\n     pub new_position: Option<i64>,\n     /// if comment to old file line or 0\n@@ -1160,7 +1119,7 @@ pub struct CreateRepoOption {\n     pub default_branch: Option<String>,\n     /// Description of the repository to create\n     pub description: Option<String>,\n-    /// Gitignores to use, separated by commas\n+    /// Gitignores to use\n     pub gitignores: Option<String>,\n     /// Label-Set to use\n     pub issue_labels: Option<String>,\n@@ -1198,7 +1157,8 @@ pub struct CreateStatusOption {\n     pub context: Option<String>,\n     pub description: Option<String>,\n     pub state: Option<CommitStatusState>,\n-    pub target_url: Option<String>,\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n+    pub target_url: Option<url::Url>,\n }\n \n /// CreateTagOption options when creating a tag\n@@ -1241,7 +1201,7 @@ pub enum CreateTeamOptionPermission {\n /// CreateUserOption create user options\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct CreateUserOption {\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     /// For explicitly setting the user creation timestamp. Useful when users are\n     ///\n     /// migrated from other systems. When omitted, the user's creation timestamp\n@@ -1284,9 +1244,9 @@ pub struct CreateWikiPageOptions {\n pub struct Cron {\n     pub exec_times: Option<i64>,\n     pub name: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub next: Option<time::OffsetDateTime>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub prev: Option<time::OffsetDateTime>,\n     pub schedule: Option<String>,\n }\n@@ -1323,8 +1283,6 @@ pub struct DeleteFileOptions {\n     pub branch: Option<String>,\n     pub committer: Option<Identity>,\n     pub dates: Option<CommitDateOptions>,\n-    /// (optional) will do a force-push if the new branch already exists\n-    pub force_overwrite_new_branch: Option<bool>,\n     /// message (optional) for the commit of this file. if not supplied, a default message will be used\n     pub message: Option<String>,\n     /// new_branch (optional) will make a new branch from `branch` before creating the file\n@@ -1338,14 +1296,14 @@ pub struct DeleteFileOptions {\n /// DeleteLabelOption options for deleting a label\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct DeleteLabelsOption {\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub updated_at: Option<time::OffsetDateTime>,\n }\n \n /// DeployKey a deploy key\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct DeployKey {\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created_at: Option<time::OffsetDateTime>,\n     pub fingerprint: Option<String>,\n     pub id: Option<i64>,\n@@ -1354,7 +1312,7 @@ pub struct DeployKey {\n     pub read_only: Option<bool>,\n     pub repository: Option<Repository>,\n     pub title: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n@@ -1395,7 +1353,7 @@ impl_from_response!(DispatchWorkflowRun);\n /// EditAttachmentOptions options for editing attachments\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct EditAttachmentOptions {\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     /// (Can only be set if existing attachment is of external type)\n     pub browser_download_url: Option<url::Url>,\n     pub name: Option<String>,\n@@ -1457,7 +1415,7 @@ pub struct EditHookOption {\n pub struct EditIssueCommentOption {\n     /// The body of the comment\n     pub body: String,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     /// The time of the comment's update, needs admin or repository owner permission\n     pub updated_at: Option<time::OffsetDateTime>,\n }\n@@ -1469,7 +1427,7 @@ pub struct EditIssueOption {\n     pub assignee: Option<String>,\n     pub assignees: Option<Vec<String>>,\n     pub body: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub due_date: Option<time::OffsetDateTime>,\n     pub milestone: Option<i64>,\n     #[serde(rename = \"ref\")]\n@@ -1477,7 +1435,7 @@ pub struct EditIssueOption {\n     pub state: Option<String>,\n     pub title: Option<String>,\n     pub unset_due_date: Option<bool>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub updated_at: Option<time::OffsetDateTime>,\n }\n \n@@ -1495,7 +1453,7 @@ pub struct EditLabelOption {\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct EditMilestoneOption {\n     pub description: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub due_on: Option<time::OffsetDateTime>,\n     pub state: Option<String>,\n     pub title: Option<String>,\n@@ -1533,7 +1491,7 @@ pub struct EditPullRequestOption {\n     pub assignees: Option<Vec<String>>,\n     pub base: Option<String>,\n     pub body: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub due_date: Option<time::OffsetDateTime>,\n     pub labels: Option<Vec<i64>>,\n     pub milestone: Option<i64>,\n@@ -1717,7 +1675,7 @@ pub struct ExternalTracker {\n     pub external_tracker_regexp_pattern: Option<String>,\n     /// External Issue Tracker Number Format, either `numeric`, `alphanumeric`, or `regexp`\n     pub external_tracker_style: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     /// URL of external issue tracker.\n     pub external_tracker_url: Option<url::Url>,\n }\n@@ -1725,7 +1683,7 @@ pub struct ExternalTracker {\n /// ExternalWiki represents setting for external wiki\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct ExternalWiki {\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     /// URL of external wiki.\n     pub external_wiki_url: Option<url::Url>,\n }\n@@ -1734,15 +1692,15 @@ pub struct ExternalWiki {\n pub struct FileCommitResponse {\n     pub author: Option<CommitUser>,\n     pub committer: Option<CommitUser>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created: Option<time::OffsetDateTime>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub html_url: Option<url::Url>,\n     pub message: Option<String>,\n     pub parents: Option<Vec<CommitMeta>>,\n     pub sha: Option<String>,\n     pub tree: Option<CommitMeta>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n@@ -1802,10 +1760,10 @@ pub struct GPGKey {\n     pub can_encrypt_comms: Option<bool>,\n     pub can_encrypt_storage: Option<bool>,\n     pub can_sign: Option<bool>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created_at: Option<time::OffsetDateTime>,\n     pub emails: Option<Vec<GPGKeyEmail>>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub expires_at: Option<time::OffsetDateTime>,\n     pub id: Option<i64>,\n     pub key_id: Option<String>,\n@@ -1906,7 +1864,7 @@ pub struct GitBlob {\n     pub encoding: Option<String>,\n     pub sha: Option<String>,\n     pub size: Option<i64>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n@@ -1921,7 +1879,7 @@ pub struct GitEntry {\n     pub size: Option<i64>,\n     #[serde(rename = \"type\")]\n     pub r#type: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n@@ -1940,7 +1898,7 @@ pub struct GitObject {\n     pub sha: Option<String>,\n     #[serde(rename = \"type\")]\n     pub r#type: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n@@ -1952,7 +1910,7 @@ pub struct GitTreeResponse {\n     pub total_count: Option<i64>,\n     pub tree: Option<Vec<GitEntry>>,\n     pub truncated: Option<bool>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n@@ -1976,16 +1934,16 @@ pub struct Hook {\n     /// Deprecated: use Metadata instead\n     pub config: Option<BTreeMap<String, String>>,\n     pub content_type: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created_at: Option<time::OffsetDateTime>,\n     pub events: Option<Vec<String>>,\n     pub id: Option<i64>,\n     pub metadata: Option<serde_json::Value>,\n     #[serde(rename = \"type\")]\n     pub r#type: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub updated_at: Option<time::OffsetDateTime>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n@@ -2016,14 +1974,14 @@ pub struct Issue {\n     pub assignee: Option<User>,\n     pub assignees: Option<Vec<User>>,\n     pub body: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub closed_at: Option<time::OffsetDateTime>,\n     pub comments: Option<i64>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created_at: Option<time::OffsetDateTime>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub due_date: Option<time::OffsetDateTime>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub html_url: Option<url::Url>,\n     pub id: Option<i64>,\n     pub is_locked: Option<bool>,\n@@ -2039,9 +1997,9 @@ pub struct Issue {\n     pub repository: Option<RepositoryMeta>,\n     pub state: Option<StateType>,\n     pub title: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub updated_at: Option<time::OffsetDateTime>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n     pub user: Option<User>,\n }\n@@ -2060,7 +2018,7 @@ impl_from_response!(IssueConfig);\n pub struct IssueConfigContactLink {\n     pub about: Option<String>,\n     pub name: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n@@ -2075,7 +2033,7 @@ impl_from_response!(IssueConfigValidation);\n /// IssueDeadline represents an issue deadline\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct IssueDeadline {\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub due_date: Option<time::OffsetDateTime>,\n }\n \n@@ -2112,7 +2070,7 @@ pub struct IssueLabelsOption {\n     ///\n     /// or a list of strings representing label names\n     pub labels: Option<Vec<serde_json::Value>>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub updated_at: Option<time::OffsetDateTime>,\n }\n \n@@ -2149,7 +2107,7 @@ pub struct Label {\n     pub id: Option<i64>,\n     pub is_archived: Option<bool>,\n     pub name: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n@@ -2173,7 +2131,7 @@ pub struct LicenseTemplateInfo {\n     pub implementation: Option<String>,\n     pub key: Option<String>,\n     pub name: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n@@ -2184,7 +2142,7 @@ impl_from_response!(LicenseTemplateInfo);\n pub struct LicensesTemplateListEntry {\n     pub key: Option<String>,\n     pub name: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n@@ -2203,15 +2161,31 @@ impl_from_response!(ListActionRunResponse);\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct MarkdownOption {\n     /// Context to render\n+    ///\n+    ///\n+    ///\n+    /// in: body\n     #[serde(rename = \"Context\")]\n     pub context: Option<String>,\n     /// Mode to render (comment, gfm, markdown)\n+    ///\n+    ///\n+    ///\n+    /// in: body\n     #[serde(rename = \"Mode\")]\n     pub mode: Option<String>,\n     /// Text markdown to render\n+    ///\n+    ///\n+    ///\n+    /// in: body\n     #[serde(rename = \"Text\")]\n     pub text: Option<String>,\n     /// Is it a wiki page ?\n+    ///\n+    ///\n+    ///\n+    /// in: body\n     #[serde(rename = \"Wiki\")]\n     pub wiki: Option<bool>,\n }\n@@ -2220,21 +2194,45 @@ pub struct MarkdownOption {\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct MarkupOption {\n     /// The current branch path where the form gets posted\n+    ///\n+    ///\n+    ///\n+    /// in: body\n     #[serde(rename = \"BranchPath\")]\n     pub branch_path: Option<String>,\n     /// Context to render\n+    ///\n+    ///\n+    ///\n+    /// in: body\n     #[serde(rename = \"Context\")]\n     pub context: Option<String>,\n     /// File path for detecting extension in file mode\n+    ///\n+    ///\n+    ///\n+    /// in: body\n     #[serde(rename = \"FilePath\")]\n     pub file_path: Option<String>,\n     /// Mode to render (comment, gfm, markdown, file)\n+    ///\n+    ///\n+    ///\n+    /// in: body\n     #[serde(rename = \"Mode\")]\n     pub mode: Option<String>,\n     /// Text markup to render\n+    ///\n+    ///\n+    ///\n+    /// in: body\n     #[serde(rename = \"Text\")]\n     pub text: Option<String>,\n     /// Is it a wiki page ?\n+    ///\n+    ///\n+    ///\n+    /// in: body\n     #[serde(rename = \"Wiki\")]\n     pub wiki: Option<bool>,\n }\n@@ -2322,19 +2320,19 @@ pub enum MigrateRepoOptionsService {\n /// Milestone milestone is a collection of issues on one repository\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct Milestone {\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub closed_at: Option<time::OffsetDateTime>,\n     pub closed_issues: Option<i64>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created_at: Option<time::OffsetDateTime>,\n     pub description: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub due_on: Option<time::OffsetDateTime>,\n     pub id: Option<i64>,\n     pub open_issues: Option<i64>,\n     pub state: Option<StateType>,\n     pub title: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub updated_at: Option<time::OffsetDateTime>,\n }\n \n@@ -2425,17 +2423,17 @@ impl_from_response!(NotificationCount);\n /// NotificationSubject contains the notification subject (Issue/Pull/Commit)\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct NotificationSubject {\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub html_url: Option<url::Url>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub latest_comment_html_url: Option<url::Url>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub latest_comment_url: Option<url::Url>,\n     pub state: Option<StateType>,\n     pub title: Option<String>,\n     #[serde(rename = \"type\")]\n     pub r#type: Option<NotifySubjectType>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n@@ -2447,9 +2445,9 @@ pub struct NotificationThread {\n     pub repository: Option<Repository>,\n     pub subject: Option<NotificationSubject>,\n     pub unread: Option<bool>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub updated_at: Option<time::OffsetDateTime>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n@@ -2473,7 +2471,7 @@ pub struct OAuth2Application {\n     pub client_id: Option<String>,\n     pub client_secret: Option<String>,\n     pub confidential_client: Option<bool>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created: Option<time::OffsetDateTime>,\n     pub id: Option<i64>,\n     pub name: Option<String>,\n@@ -2494,10 +2492,8 @@ pub enum ObjectFormatName {\n /// Organization represents an organization\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct Organization {\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub avatar_url: Option<url::Url>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n-    pub created: Option<time::OffsetDateTime>,\n     pub description: Option<String>,\n     pub email: Option<String>,\n     pub full_name: Option<String>,\n@@ -2539,10 +2535,10 @@ pub struct PRBranchInfo {\n /// Package represents a package\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct Package {\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created_at: Option<time::OffsetDateTime>,\n     pub creator: Option<User>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub html_url: Option<url::Url>,\n     pub id: Option<i64>,\n     pub name: Option<String>,\n@@ -2581,9 +2577,9 @@ pub struct PayloadCommit {\n     pub message: Option<String>,\n     pub modified: Option<Vec<String>>,\n     pub removed: Option<Vec<String>>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub timestamp: Option<time::OffsetDateTime>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n     pub verification: Option<PayloadCommitVerification>,\n }\n@@ -2618,7 +2614,7 @@ pub struct Permission {\n /// PublicKey publickey is a user key to push code to repository\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct PublicKey {\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created_at: Option<time::OffsetDateTime>,\n     pub fingerprint: Option<String>,\n     pub id: Option<i64>,\n@@ -2626,12 +2622,9 @@ pub struct PublicKey {\n     pub key_type: Option<String>,\n     pub read_only: Option<bool>,\n     pub title: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n-    pub updated_at: Option<time::OffsetDateTime>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n     pub user: Option<User>,\n-    pub verified: Option<bool>,\n }\n \n impl_from_response!(PublicKey);\n@@ -2646,20 +2639,20 @@ pub struct PullRequest {\n     pub base: Option<PRBranchInfo>,\n     pub body: Option<String>,\n     pub changed_files: Option<i64>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub closed_at: Option<time::OffsetDateTime>,\n     pub comments: Option<i64>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created_at: Option<time::OffsetDateTime>,\n     pub deletions: Option<i64>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub diff_url: Option<url::Url>,\n     pub draft: Option<bool>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub due_date: Option<time::OffsetDateTime>,\n     pub flow: Option<i64>,\n     pub head: Option<PRBranchInfo>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub html_url: Option<url::Url>,\n     pub id: Option<i64>,\n     pub is_locked: Option<bool>,\n@@ -2668,12 +2661,12 @@ pub struct PullRequest {\n     pub merge_commit_sha: Option<String>,\n     pub mergeable: Option<bool>,\n     pub merged: Option<bool>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub merged_at: Option<time::OffsetDateTime>,\n     pub merged_by: Option<User>,\n     pub milestone: Option<Milestone>,\n     pub number: Option<i64>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub patch_url: Option<url::Url>,\n     pub pin_order: Option<i64>,\n     #[serde(deserialize_with = \"crate::requested_reviewers_ignore_null\")]\n@@ -2683,9 +2676,9 @@ pub struct PullRequest {\n     pub review_comments: Option<i64>,\n     pub state: Option<StateType>,\n     pub title: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub updated_at: Option<time::OffsetDateTime>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n     pub user: Option<User>,\n }\n@@ -2696,10 +2689,10 @@ impl_from_response!(PullRequest);\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct PullRequestMeta {\n     pub draft: Option<bool>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub html_url: Option<url::Url>,\n     pub merged: Option<bool>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub merged_at: Option<time::OffsetDateTime>,\n }\n \n@@ -2710,18 +2703,18 @@ pub struct PullReview {\n     pub comments_count: Option<i64>,\n     pub commit_id: Option<String>,\n     pub dismissed: Option<bool>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub html_url: Option<url::Url>,\n     pub id: Option<i64>,\n     pub official: Option<bool>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub pull_request_url: Option<url::Url>,\n     pub stale: Option<bool>,\n     pub state: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub submitted_at: Option<time::OffsetDateTime>,\n     pub team: Option<Team>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub updated_at: Option<time::OffsetDateTime>,\n     pub user: Option<User>,\n }\n@@ -2733,12 +2726,10 @@ impl_from_response!(PullReview);\n pub struct PullReviewComment {\n     pub body: Option<String>,\n     pub commit_id: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created_at: Option<time::OffsetDateTime>,\n     pub diff_hunk: Option<String>,\n-    /// number of additional lines after the commented line (0 = single line comment)\n-    pub extra_lines_count: Option<i64>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub html_url: Option<url::Url>,\n     pub id: Option<i64>,\n     pub original_commit_id: Option<String>,\n@@ -2746,10 +2737,10 @@ pub struct PullReviewComment {\n     pub path: Option<String>,\n     pub position: Option<u64>,\n     pub pull_request_review_id: Option<i64>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub pull_request_url: Option<url::Url>,\n     pub resolver: Option<User>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub updated_at: Option<time::OffsetDateTime>,\n     pub user: Option<User>,\n }\n@@ -2767,11 +2758,11 @@ pub struct PullReviewRequestOptions {\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct PushMirror {\n     pub branch_filter: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created: Option<time::OffsetDateTime>,\n     pub interval: Option<String>,\n     pub last_error: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub last_update: Option<time::OffsetDateTime>,\n     pub public_key: Option<String>,\n     pub remote_address: Option<String>,\n@@ -2824,7 +2815,7 @@ pub struct QuotaUsed {\n /// QuotaUsedArtifact represents an artifact counting towards a user's quota\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct QuotaUsedArtifact {\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     /// HTML URL to the action run containing the artifact\n     pub html_url: Option<url::Url>,\n     /// Name of the artifact\n@@ -2838,7 +2829,7 @@ impl_from_response!(QuotaUsedArtifact);\n /// QuotaUsedAttachment represents an attachment counting towards a user's quota\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct QuotaUsedAttachment {\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     /// API URL for the attachment\n     pub api_url: Option<url::Url>,\n     /// Context for the attachment: URLs to the containing object\n@@ -2854,10 +2845,10 @@ impl_from_response!(QuotaUsedAttachment);\n /// Context for the attachment: URLs to the containing object\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct QuotaUsedAttachmentContainedIn {\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     /// API URL for the object that contains this attachment\n     pub api_url: Option<url::Url>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     /// HTML URL for the object that contains this attachment\n     pub html_url: Option<url::Url>,\n }\n@@ -2865,7 +2856,7 @@ pub struct QuotaUsedAttachmentContainedIn {\n /// QuotaUsedPackage represents a package counting towards a user's quota\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct QuotaUsedPackage {\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     /// HTML URL to the package version\n     pub html_url: Option<url::Url>,\n     /// Name of the package\n@@ -2935,7 +2926,7 @@ pub struct QuotaUsedSizeRepos {\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct Reaction {\n     pub content: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created_at: Option<time::OffsetDateTime>,\n     pub user: Option<User>,\n }\n@@ -2947,7 +2938,7 @@ pub struct Reference {\n     pub object: Option<GitObject>,\n     #[serde(rename = \"ref\")]\n     pub r#ref: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n@@ -2987,26 +2978,26 @@ pub struct Release {\n     pub assets: Option<Vec<Attachment>>,\n     pub author: Option<User>,\n     pub body: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created_at: Option<time::OffsetDateTime>,\n     pub draft: Option<bool>,\n     pub hide_archive_links: Option<bool>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub html_url: Option<url::Url>,\n     pub id: Option<i64>,\n     pub name: Option<String>,\n     pub prerelease: Option<bool>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub published_at: Option<time::OffsetDateTime>,\n     pub tag_name: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub tarball_url: Option<url::Url>,\n     pub target_commitish: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub upload_url: Option<url::Url>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub zipball_url: Option<url::Url>,\n }\n \n@@ -3048,7 +3039,7 @@ pub struct RepoCommit {\n     pub committer: Option<CommitUser>,\n     pub message: Option<String>,\n     pub tree: Option<CommitMeta>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n     pub verification: Option<PayloadCommitVerification>,\n }\n@@ -3086,13 +3077,13 @@ pub struct Repository {\n     pub allow_rebase_update: Option<bool>,\n     pub allow_squash_merge: Option<bool>,\n     pub archived: Option<bool>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub archived_at: Option<time::OffsetDateTime>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub avatar_url: Option<url::Url>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub clone_url: Option<url::Url>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created_at: Option<time::OffsetDateTime>,\n     pub default_allow_maintainer_edit: Option<bool>,\n     pub default_branch: Option<String>,\n@@ -3117,25 +3108,25 @@ pub struct Repository {\n     pub has_wiki: Option<bool>,\n     /// have wiki pages ever been created\n     pub has_wiki_contents: Option<bool>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub html_url: Option<url::Url>,\n     pub id: Option<i64>,\n     pub ignore_whitespace_conflicts: Option<bool>,\n     pub internal: Option<bool>,\n     pub internal_tracker: Option<InternalTracker>,\n     pub language: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub languages_url: Option<url::Url>,\n     pub link: Option<String>,\n     pub mirror: Option<bool>,\n     pub mirror_interval: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub mirror_updated: Option<time::OffsetDateTime>,\n     pub name: Option<String>,\n     pub object_format_name: Option<ObjectFormatName>,\n     pub open_issues_count: Option<i64>,\n     pub open_pr_counter: Option<i64>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub original_url: Option<url::Url>,\n     pub owner: Option<User>,\n     pub parent: Option<Box<Repository>>,\n@@ -3144,14 +3135,14 @@ pub struct Repository {\n     pub release_counter: Option<i64>,\n     pub repo_transfer: Option<RepoTransfer>,\n     pub size: Option<i64>,\n-    #[serde(deserialize_with = \"crate::deserialize_optional_ssh_url\", default)]\n+    #[serde(deserialize_with = \"crate::deserialize_optional_ssh_url\")]\n     pub ssh_url: Option<url::Url>,\n     pub stars_count: Option<i64>,\n     pub template: Option<bool>,\n     pub topics: Option<Vec<String>>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub updated_at: Option<time::OffsetDateTime>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n     pub watchers_count: Option<i64>,\n     pub website: Option<String>,\n@@ -3183,7 +3174,7 @@ impl_from_response!(SearchResults);\n /// Secret represents a secret\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct Secret {\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created_at: Option<time::OffsetDateTime>,\n     /// the secret's name\n     pub name: Option<String>,\n@@ -3218,7 +3209,7 @@ pub enum StateType {\n /// StopWatch represent a running stopwatch\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct StopWatch {\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created: Option<time::OffsetDateTime>,\n     pub duration: Option<String>,\n     pub issue_index: Option<i64>,\n@@ -3256,9 +3247,9 @@ pub struct Tag {\n     pub id: Option<String>,\n     pub message: Option<String>,\n     pub name: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub tarball_url: Option<url::Url>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub zipball_url: Option<url::Url>,\n }\n \n@@ -3274,11 +3265,11 @@ pub struct TagArchiveDownloadCount {\n /// TagProtection represents a tag protection\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct TagProtection {\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created_at: Option<time::OffsetDateTime>,\n     pub id: Option<i64>,\n     pub name_pattern: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub updated_at: Option<time::OffsetDateTime>,\n     pub whitelist_teams: Option<Vec<String>>,\n     pub whitelist_usernames: Option<Vec<String>>,\n@@ -3321,13 +3312,13 @@ pub struct TimelineComment {\n     pub assignee: Option<User>,\n     pub assignee_team: Option<Team>,\n     pub body: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created_at: Option<time::OffsetDateTime>,\n     pub dependent_issue: Option<Issue>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub html_url: Option<url::Url>,\n     pub id: Option<i64>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub issue_url: Option<url::Url>,\n     pub label: Option<Label>,\n     pub milestone: Option<Milestone>,\n@@ -3338,7 +3329,7 @@ pub struct TimelineComment {\n     pub old_ref: Option<String>,\n     pub old_title: Option<String>,\n     pub project_id: Option<i64>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub pull_request_url: Option<url::Url>,\n     pub ref_action: Option<String>,\n     pub ref_comment: Option<Comment>,\n@@ -3352,7 +3343,7 @@ pub struct TimelineComment {\n     pub tracked_time: Option<TrackedTime>,\n     #[serde(rename = \"type\")]\n     pub r#type: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub updated_at: Option<time::OffsetDateTime>,\n     pub user: Option<User>,\n }\n@@ -3370,19 +3361,19 @@ impl_from_response!(TopicName);\n /// TopicResponse for returning topics\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct TopicResponse {\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created: Option<time::OffsetDateTime>,\n     pub id: Option<i64>,\n     pub repo_count: Option<i64>,\n     pub topic_name: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub updated: Option<time::OffsetDateTime>,\n }\n \n /// TrackedTime worked time for an issue / pr\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct TrackedTime {\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created: Option<time::OffsetDateTime>,\n     pub id: Option<i64>,\n     pub issue: Option<Issue>,\n@@ -3424,8 +3415,6 @@ pub struct UpdateFileOptions {\n     /// content must be base64 encoded\n     pub content: String,\n     pub dates: Option<CommitDateOptions>,\n-    /// (optional) will do a force-push if the new branch already exists\n-    pub force_overwrite_new_branch: Option<bool>,\n     /// from_path (optional) is the path of the original file which will be moved/renamed to the path in the URL\n     pub from_path: Option<String>,\n     /// message (optional) for the commit of this file. if not supplied, a default message will be used\n@@ -3469,10 +3458,10 @@ pub struct UpdateVariableOption {\n pub struct User {\n     /// Is user active\n     pub active: Option<bool>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     /// URL to the user's avatar\n     pub avatar_url: Option<url::Url>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created: Option<time::OffsetDateTime>,\n     /// the user's description\n     pub description: Option<String>,\n@@ -3482,7 +3471,7 @@ pub struct User {\n     pub following_count: Option<i64>,\n     /// the user's full name\n     pub full_name: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     /// URL to the user's profile page\n     pub html_url: Option<url::Url>,\n     /// the user's id\n@@ -3491,7 +3480,7 @@ pub struct User {\n     pub is_admin: Option<bool>,\n     /// User locale\n     pub language: Option<String>,\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub last_login: Option<time::OffsetDateTime>,\n     /// the user's location\n     pub location: Option<String>,\n@@ -3574,14 +3563,14 @@ pub struct VerifyGPGKeyOption {\n /// WatchInfo represents an API watch status of one repository\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct WatchInfo {\n-    #[serde(with = \"time::serde::rfc3339::option\", default)]\n+    #[serde(with = \"time::serde::rfc3339::option\")]\n     pub created_at: Option<time::OffsetDateTime>,\n     pub ignored: Option<bool>,\n     pub reason: Option<serde_json::Value>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub repository_url: Option<url::Url>,\n     pub subscribed: Option<bool>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub url: Option<url::Url>,\n }\n \n@@ -3612,7 +3601,7 @@ pub struct WikiPage {\n     /// Page content, base64 encoded\n     pub content_base64: Option<String>,\n     pub footer: Option<String>,\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub html_url: Option<url::Url>,\n     pub last_commit: Option<WikiCommit>,\n     pub sidebar: Option<String>,\n@@ -3625,7 +3614,7 @@ impl_from_response!(WikiPage);\n /// WikiPageMetaData wiki page meta information\n #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]\n pub struct WikiPageMetaData {\n-    #[serde(deserialize_with = \"crate::none_if_blank_url\", default)]\n+    #[serde(deserialize_with = \"crate::none_if_blank_url\")]\n     pub html_url: Option<url::Url>,\n     pub last_commit: Option<WikiCommit>,\n     pub sub_url: Option<String>,\n@@ -4964,8 +4953,6 @@ pub struct AdminSearchUsersQuery {\n     pub source_id: Option<i64>,\n     /// user's login name to search for\n     pub login_name: Option<String>,\n-    /// whether or not to filter users with the 2fa enabled\n-    pub is_2fa_enabled: Option<bool>,\n     /// sort order of results\n     pub sort: Option<AdminSearchUsersQuerySort>,\n }\n@@ -4979,9 +4966,6 @@ impl AdminSearchUsersQuery {\n         if let Some(login_name) = self.login_name {\n             list.push((\"login_name\", login_name));\n         }\n-        if let Some(is_2fa_enabled) = self.is_2fa_enabled {\n-            list.push((\"is_2fa_enabled\", is_2fa_enabled.to_string()));\n-        }\n         if let Some(sort) = self.sort {\n             list.push((\"sort\", sort.as_str().to_string()));\n         }\n@@ -5590,7 +5574,7 @@ pub struct RepoSearchQuery {\n     pub private: Option<bool>,\n     /// show only public, private or all repositories (defaults to all)\n     pub is_private: Option<bool>,\n-    /// show only template, non-template or all repositories (defaults to all)\n+    /// include template repositories this user has access to (defaults to true)\n     pub template: Option<bool>,\n     /// show only archived, non-archived or all repositories (defaults to all)\n     pub archived: Option<bool>,\n@@ -5711,40 +5695,6 @@ impl RepoSearchQueryOrder {\n         }\n     }\n }\n-#[derive(Debug, Clone, PartialEq, Default)]\n-pub struct ListActionArtifactsQuery {\n-    /// filter by artifact name\n-    pub name: Option<String>,\n-}\n-\n-impl ListActionArtifactsQuery {\n-    pub(crate) fn into_list(self) -> Vec<(&'static str, String)> {\n-        let mut list = Vec::new();\n-        if let Some(name) = self.name {\n-            list.push((\"name\", name));\n-        }\n-\n-        list\n-    }\n-}\n-\n-#[derive(Debug, Clone, PartialEq, Default)]\n-pub struct RepoGetActionJobLogsQuery {\n-    /// 1-based attempt number matching the value of `attempt` in the job listing; omit to fetch the latest attempt of the job\n-    pub attempt: Option<i64>,\n-}\n-\n-impl RepoGetActionJobLogsQuery {\n-    pub(crate) fn into_list(self) -> Vec<(&'static str, String)> {\n-        let mut list = Vec::new();\n-        if let Some(attempt) = self.attempt {\n-            list.push((\"attempt\", attempt.to_string()));\n-        }\n-\n-        list\n-    }\n-}\n-\n #[derive(Debug, Clone, PartialEq, Default)]\n pub struct GetRepoRunnersQuery {\n     /// whether to include all visible runners (true) or only those that are directly owned by the repository (false)\n@@ -5873,23 +5823,6 @@ impl ListActionRunsQueryStatus {\n         }\n     }\n }\n-#[derive(Debug, Clone, PartialEq, Default)]\n-pub struct ListActionRunArtifactsQuery {\n-    /// filter by artifact name\n-    pub name: Option<String>,\n-}\n-\n-impl ListActionRunArtifactsQuery {\n-    pub(crate) fn into_list(self) -> Vec<(&'static str, String)> {\n-        let mut list = Vec::new();\n-        if let Some(name) = self.name {\n-            list.push((\"name\", name));\n-        }\n-\n-        list\n-    }\n-}\n-\n #[derive(Debug, Clone, PartialEq, Default)]\n pub struct ListActionTasksQuery {\n     /// Returns workflow tasks with the check run status or conclusion that is specified.\n@@ -6801,10 +6734,6 @@ pub struct RepoListPullRequestsQuery {\n     pub labels: Option<Vec<i64>>,\n     /// Filter by pull request author\n     pub poster: Option<String>,\n-    /// Filter by base branch name\n-    pub base: Option<String>,\n-    /// Filter by head branch name\n-    pub head: Option<String>,\n }\n \n impl RepoListPullRequestsQuery {\n@@ -6829,12 +6758,6 @@ impl RepoListPullRequestsQuery {\n         if let Some(poster) = self.poster {\n             list.push((\"poster\", poster));\n         }\n-        if let Some(base) = self.base {\n-            list.push((\"base\", base));\n-        }\n-        if let Some(head) = self.head {\n-            list.push((\"head\", head));\n-        }\n \n         list\n     }\ndiff --git a/src/lib.rs b/src/lib.rs\nindex 899c22b..e2a8a84 100644\n--- a/src/lib.rs\n+++ b/src/lib.rs\n@@ -869,44 +869,6 @@ fn ssh_url_deserialization() {\n     assert!(null_url_de.url.is_none());\n }\n \n-// Regression: Forgejo in-house Actions emit server-relative target_url\n-// like \"/owner/repo/actions/runs/N/jobs/M\". CommitStatus.target_url is\n-// kept as a plain String (no \"format\": \"url\" in the spec) so callers can\n-// access either an absolute or relative value.\n-#[test]\n-fn commit_status_relative_target_url_deserializes() {\n-    let payload = r#\"{\n-        \"context\": \"ci/build\",\n-        \"created_at\": null,\n-        \"creator\": null,\n-        \"description\": \"\",\n-        \"id\": 1,\n-        \"status\": \"pending\",\n-        \"target_url\": \"/owner/repo/actions/runs/187/jobs/0\",\n-        \"updated_at\": null,\n-        \"url\": \"https://example.com/api/v1/repos/owner/repo/statuses/abc\"\n-    }\"#;\n-    let cs: structs::CommitStatus = serde_json::from_str(payload).unwrap();\n-    assert_eq!(\n-        cs.target_url.as_deref(),\n-        Some(\"/owner/repo/actions/runs/187/jobs/0\")\n-    );\n-}\n-\n-#[test]\n-fn missing_optional_fields() {\n-    let raw_json = r#\"\n-        {}\n-    \"#;\n-    serde_json::from_str::<structs::Repository>(raw_json).unwrap();\n-    let raw_json = r#\"\n-        {\n-            \"avatar_url\": \"http://example.com\"\n-        }\n-    \"#;\n-    serde_json::from_str::<structs::Repository>(raw_json).unwrap();\n-}\n-\n impl From<structs::DefaultMergeStyle> for structs::MergePullRequestOptionDo {\n     fn from(value: structs::DefaultMergeStyle) -> Self {\n         match value {\ndiff --git a/swagger.v1.json b/swagger.v1.json\nindex e95bb7b..57bc3b7 100644\n--- a/swagger.v1.json\n+++ b/swagger.v1.json\n@@ -10,24 +10,10 @@\n       \"name\": \"This file is distributed under the MIT license for the purpose of interoperability\",\n       \"url\": \"http://opensource.org/licenses/MIT\"\n     },\n-    \"version\": \"16.0.0-dev-505-6d5f904cb0+gitea-1.22.0\"\n+    \"version\": \"15.0.0+gitea-1.22.0\"\n   },\n   \"basePath\": \"/api/v1\",\n   \"paths\": {\n-    \"/actions/run\": {\n-      \"get\": {\n-        \"description\": \"The automatic actions token must be used as the authentication mechanism (<code>Authorization: Bearer $&#x7b;&#x7b; forgejo.token &#x7d;&#x7d;</code>); other types of tokens cannot be used. The token is associated with the job, which must be still running for the request to this endpoint to succeed.\\n\",\n-        \"produces\": [\"application/json\"],\n-        \"tags\": [\"miscellaneous\"],\n-        \"summary\": \"Get a workflow run associated with a token\",\n-        \"operationId\": \"getActionsRun\",\n-        \"responses\": {\n-          \"200\": {\n-            \"$ref\": \"#/responses/ActionRun\"\n-          }\n-        }\n-      }\n-    },\n     \"/activitypub/actor\": {\n       \"get\": {\n         \"produces\": [\"application/json\"],\n@@ -1320,12 +1306,6 @@\n             \"name\": \"login_name\",\n             \"in\": \"query\"\n           },\n-          {\n-            \"type\": \"boolean\",\n-            \"description\": \"whether or not to filter users with the 2fa enabled\",\n-            \"name\": \"is_2fa_enabled\",\n-            \"in\": \"query\"\n-          },\n           {\n             \"enum\": [\n               \"oldest\",\n@@ -1796,121 +1776,6 @@\n         }\n       }\n     },\n-    \"/admin/users/{username}/tokens\": {\n-      \"get\": {\n-        \"produces\": [\"application/json\"],\n-        \"tags\": [\"admin\"],\n-        \"summary\": \"List the specified user's access tokens\",\n-        \"operationId\": \"adminListUserAccessTokens\",\n-        \"parameters\": [\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"username of user\",\n-            \"name\": \"username\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"integer\",\n-            \"description\": \"page number of results to return (1-based)\",\n-            \"name\": \"page\",\n-            \"in\": \"query\"\n-          },\n-          {\n-            \"type\": \"integer\",\n-            \"description\": \"page size of results\",\n-            \"name\": \"limit\",\n-            \"in\": \"query\"\n-          }\n-        ],\n-        \"responses\": {\n-          \"200\": {\n-            \"$ref\": \"#/responses/AccessTokenList\"\n-          },\n-          \"403\": {\n-            \"$ref\": \"#/responses/forbidden\"\n-          },\n-          \"404\": {\n-            \"$ref\": \"#/responses/notFound\"\n-          }\n-        }\n-      },\n-      \"post\": {\n-        \"consumes\": [\"application/json\"],\n-        \"produces\": [\"application/json\"],\n-        \"tags\": [\"admin\"],\n-        \"summary\": \"Create an access token for the specified user\",\n-        \"operationId\": \"adminCreateUserAccessToken\",\n-        \"parameters\": [\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"username of user\",\n-            \"name\": \"username\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"name\": \"body\",\n-            \"in\": \"body\",\n-            \"schema\": {\n-              \"$ref\": \"#/definitions/CreateAccessTokenOption\"\n-            }\n-          }\n-        ],\n-        \"responses\": {\n-          \"201\": {\n-            \"$ref\": \"#/responses/AccessToken\"\n-          },\n-          \"400\": {\n-            \"$ref\": \"#/responses/error\"\n-          },\n-          \"403\": {\n-            \"$ref\": \"#/responses/forbidden\"\n-          },\n-          \"404\": {\n-            \"$ref\": \"#/responses/notFound\"\n-          }\n-        }\n-      }\n-    },\n-    \"/admin/users/{username}/tokens/{token}\": {\n-      \"delete\": {\n-        \"produces\": [\"application/json\"],\n-        \"tags\": [\"admin\"],\n-        \"summary\": \"Delete an access token for the specified user\",\n-        \"operationId\": \"adminDeleteUserAccessToken\",\n-        \"parameters\": [\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"username of user\",\n-            \"name\": \"username\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"token to be deleted, identified by ID and if not available by name\",\n-            \"name\": \"token\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          }\n-        ],\n-        \"responses\": {\n-          \"204\": {\n-            \"$ref\": \"#/responses/empty\"\n-          },\n-          \"403\": {\n-            \"$ref\": \"#/responses/forbidden\"\n-          },\n-          \"404\": {\n-            \"$ref\": \"#/responses/notFound\"\n-          },\n-          \"422\": {\n-            \"$ref\": \"#/responses/error\"\n-          }\n-        }\n-      }\n-    },\n     \"/gitignore/templates\": {\n       \"get\": {\n         \"produces\": [\"application/json\"],\n@@ -2138,7 +2003,7 @@\n               \"type\": \"string\"\n             },\n             \"collectionFormat\": \"multi\",\n-            \"description\": \"Show notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread & pinned.\",\n+            \"description\": \"Show notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread \\u0026 pinned.\",\n             \"name\": \"status-types\",\n             \"in\": \"query\"\n           },\n@@ -4778,7 +4643,7 @@\n           },\n           {\n             \"type\": \"boolean\",\n-            \"description\": \"show only template, non-template or all repositories (defaults to all)\",\n+            \"description\": \"include template repositories this user has access to (defaults to true)\",\n             \"name\": \"template\",\n             \"in\": \"query\"\n           },\n@@ -4956,12 +4821,12 @@\n         }\n       }\n     },\n-    \"/repos/{owner}/{repo}/actions/artifacts\": {\n+    \"/repos/{owner}/{repo}/actions/runners\": {\n       \"get\": {\n         \"produces\": [\"application/json\"],\n         \"tags\": [\"repository\"],\n-        \"summary\": \"List a repository's artifacts\",\n-        \"operationId\": \"ListActionArtifacts\",\n+        \"summary\": \"Get runners belonging to the repository\",\n+        \"operationId\": \"getRepoRunners\",\n         \"parameters\": [\n           {\n             \"type\": \"string\",\n@@ -4978,9 +4843,9 @@\n             \"required\": true\n           },\n           {\n-            \"type\": \"string\",\n-            \"description\": \"filter by artifact name\",\n-            \"name\": \"name\",\n+            \"type\": \"boolean\",\n+            \"description\": \"whether to include all visible runners (true) or only those that are directly owned by the repository (false)\",\n+            \"name\": \"visible\",\n             \"in\": \"query\"\n           },\n           {\n@@ -4991,74 +4856,29 @@\n           },\n           {\n             \"type\": \"integer\",\n-            \"description\": \"page size of results, default maximum page size is 50\",\n+            \"description\": \"page size of results\",\n             \"name\": \"limit\",\n             \"in\": \"query\"\n           }\n         ],\n         \"responses\": {\n           \"200\": {\n-            \"$ref\": \"#/responses/ActionArtifactList\"\n-          },\n-          \"400\": {\n-            \"$ref\": \"#/responses/error\"\n-          },\n-          \"403\": {\n-            \"$ref\": \"#/responses/forbidden\"\n-          }\n-        }\n-      }\n-    },\n-    \"/repos/{owner}/{repo}/actions/artifacts/{artifact_id}\": {\n-      \"get\": {\n-        \"produces\": [\"application/json\"],\n-        \"tags\": [\"repository\"],\n-        \"summary\": \"Get an artifact by ID\",\n-        \"operationId\": \"GetActionArtifact\",\n-        \"parameters\": [\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"owner of the repo\",\n-            \"name\": \"owner\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"name of the repo\",\n-            \"name\": \"repo\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"integer\",\n-            \"format\": \"int64\",\n-            \"description\": \"ID of the artifact\",\n-            \"name\": \"artifact_id\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          }\n-        ],\n-        \"responses\": {\n-          \"200\": {\n-            \"$ref\": \"#/responses/ActionArtifact\"\n+            \"$ref\": \"#/responses/ActionRunnerList\"\n           },\n           \"400\": {\n             \"$ref\": \"#/responses/error\"\n           },\n-          \"403\": {\n-            \"$ref\": \"#/responses/forbidden\"\n-          },\n           \"404\": {\n             \"$ref\": \"#/responses/notFound\"\n           }\n         }\n       },\n-      \"delete\": {\n-        \"description\": \"Marks the artifact for deletion. Storage space will be reclaimed\\nasynchronously by a background job.\\n\",\n+      \"post\": {\n+        \"consumes\": [\"application/json\"],\n+        \"produces\": [\"application/json\"],\n         \"tags\": [\"repository\"],\n-        \"summary\": \"Mark an artifact for deletion\",\n-        \"operationId\": \"DeleteActionArtifact\",\n+        \"summary\": \"Register a new repository-level runner\",\n+        \"operationId\": \"registerRepoRunner\",\n         \"parameters\": [\n           {\n             \"type\": \"string\",\n@@ -5075,23 +4895,22 @@\n             \"required\": true\n           },\n           {\n-            \"type\": \"integer\",\n-            \"format\": \"int64\",\n-            \"description\": \"ID of the artifact\",\n-            \"name\": \"artifact_id\",\n-            \"in\": \"path\",\n-            \"required\": true\n+            \"name\": \"body\",\n+            \"in\": \"body\",\n+            \"schema\": {\n+              \"$ref\": \"#/definitions/RegisterRunnerOptions\"\n+            }\n           }\n         ],\n         \"responses\": {\n-          \"204\": {\n-            \"description\": \"artifact marked for deletion\"\n+          \"201\": {\n+            \"$ref\": \"#/responses/RegisterRunnerResponse\"\n           },\n           \"400\": {\n             \"$ref\": \"#/responses/error\"\n           },\n-          \"403\": {\n-            \"$ref\": \"#/responses/forbidden\"\n+          \"401\": {\n+            \"$ref\": \"#/responses/unauthorized\"\n           },\n           \"404\": {\n             \"$ref\": \"#/responses/notFound\"\n@@ -5099,12 +4918,12 @@\n         }\n       }\n     },\n-    \"/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/zip\": {\n+    \"/repos/{owner}/{repo}/actions/runners/jobs\": {\n       \"get\": {\n-        \"produces\": [\"application/zip\"],\n+        \"produces\": [\"application/json\"],\n         \"tags\": [\"repository\"],\n-        \"summary\": \"Download an artifact\",\n-        \"operationId\": \"DownloadActionArtifact\",\n+        \"summary\": \"Search for repository's action jobs according filter conditions\",\n+        \"operationId\": \"repoSearchRunJobs\",\n         \"parameters\": [\n           {\n             \"type\": \"string\",\n@@ -5121,37 +4940,30 @@\n             \"required\": true\n           },\n           {\n-            \"type\": \"integer\",\n-            \"format\": \"int64\",\n-            \"description\": \"ID of the artifact\",\n-            \"name\": \"artifact_id\",\n-            \"in\": \"path\",\n-            \"required\": true\n+            \"type\": \"string\",\n+            \"description\": \"a comma separated list of run job labels to search for\",\n+            \"name\": \"labels\",\n+            \"in\": \"query\"\n           }\n         ],\n         \"responses\": {\n           \"200\": {\n-            \"description\": \"the artifact archive\"\n-          },\n-          \"400\": {\n-            \"$ref\": \"#/responses/error\"\n+            \"$ref\": \"#/responses/RunJobList\"\n           },\n           \"403\": {\n             \"$ref\": \"#/responses/forbidden\"\n-          },\n-          \"404\": {\n-            \"$ref\": \"#/responses/notFound\"\n           }\n         }\n       }\n     },\n-    \"/repos/{owner}/{repo}/actions/jobs/{job_id}/logs\": {\n+    \"/repos/{owner}/{repo}/actions/runners/registration-token\": {\n       \"get\": {\n-        \"description\": \"Returns the plaintext log for the job. By default the log for the most recent attempt is returned (ActionRunJob.TaskID tracks the latest task). Pass `?attempt=N` to fetch the log for a specific historical attempt; the value matches the `attempt` field returned by the job listing endpoints.\\n\",\n-        \"produces\": [\"text/plain\"],\n+        \"description\": \"This operation has been deprecated in Forgejo 15. Use the web UI or [`/repos/{owner}/{repo}/actions/runners`](#/repository/registerRepoRunner) instead.\\n\",\n+        \"produces\": [\"application/json\"],\n         \"tags\": [\"repository\"],\n-        \"summary\": \"Download the plaintext logs of an action job\",\n-        \"operationId\": \"repoGetActionJobLogs\",\n+        \"summary\": \"Get a repository's runner registration token\",\n+        \"operationId\": \"repoGetRunnerRegistrationToken\",\n+        \"deprecated\": true,\n         \"parameters\": [\n           {\n             \"type\": \"string\",\n@@ -5166,54 +4978,21 @@\n             \"name\": \"repo\",\n             \"in\": \"path\",\n             \"required\": true\n-          },\n-          {\n-            \"type\": \"integer\",\n-            \"format\": \"int64\",\n-            \"description\": \"ID of the workflow job\",\n-            \"name\": \"job_id\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"integer\",\n-            \"format\": \"int64\",\n-            \"description\": \"1-based attempt number matching the value of `attempt` in the job listing; omit to fetch the latest attempt of the job\",\n-            \"name\": \"attempt\",\n-            \"in\": \"query\"\n           }\n         ],\n         \"responses\": {\n           \"200\": {\n-            \"description\": \"Plaintext log content\",\n-            \"schema\": {\n-              \"type\": \"string\"\n-            }\n-          },\n-          \"206\": {\n-            \"description\": \"Partial log content (Range request)\",\n-            \"schema\": {\n-              \"type\": \"string\"\n-            }\n-          },\n-          \"401\": {\n-            \"$ref\": \"#/responses/unauthorized\"\n-          },\n-          \"403\": {\n-            \"$ref\": \"#/responses/forbidden\"\n-          },\n-          \"404\": {\n-            \"$ref\": \"#/responses/notFound\"\n+            \"$ref\": \"#/responses/RegistrationToken\"\n           }\n         }\n       }\n     },\n-    \"/repos/{owner}/{repo}/actions/runners\": {\n+    \"/repos/{owner}/{repo}/actions/runners/{runner_id}\": {\n       \"get\": {\n         \"produces\": [\"application/json\"],\n         \"tags\": [\"repository\"],\n-        \"summary\": \"Get runners belonging to the repository\",\n-        \"operationId\": \"getRepoRunners\",\n+        \"summary\": \"Get a particular runner that belongs to the repository\",\n+        \"operationId\": \"getRepoRunner\",\n         \"parameters\": [\n           {\n             \"type\": \"string\",\n@@ -5225,499 +5004,35 @@\n           {\n             \"type\": \"string\",\n             \"description\": \"name of the repo\",\n-            \"name\": \"repo\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"boolean\",\n-            \"description\": \"whether to include all visible runners (true) or only those that are directly owned by the repository (false)\",\n-            \"name\": \"visible\",\n-            \"in\": \"query\"\n-          },\n-          {\n-            \"type\": \"integer\",\n-            \"description\": \"page number of results to return (1-based)\",\n-            \"name\": \"page\",\n-            \"in\": \"query\"\n-          },\n-          {\n-            \"type\": \"integer\",\n-            \"description\": \"page size of results\",\n-            \"name\": \"limit\",\n-            \"in\": \"query\"\n-          }\n-        ],\n-        \"responses\": {\n-          \"200\": {\n-            \"$ref\": \"#/responses/ActionRunnerList\"\n-          },\n-          \"400\": {\n-            \"$ref\": \"#/responses/error\"\n-          },\n-          \"404\": {\n-            \"$ref\": \"#/responses/notFound\"\n-          }\n-        }\n-      },\n-      \"post\": {\n-        \"consumes\": [\"application/json\"],\n-        \"produces\": [\"application/json\"],\n-        \"tags\": [\"repository\"],\n-        \"summary\": \"Register a new repository-level runner\",\n-        \"operationId\": \"registerRepoRunner\",\n-        \"parameters\": [\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"owner of the repo\",\n-            \"name\": \"owner\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"name of the repo\",\n-            \"name\": \"repo\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"name\": \"body\",\n-            \"in\": \"body\",\n-            \"schema\": {\n-              \"$ref\": \"#/definitions/RegisterRunnerOptions\"\n-            }\n-          }\n-        ],\n-        \"responses\": {\n-          \"201\": {\n-            \"$ref\": \"#/responses/RegisterRunnerResponse\"\n-          },\n-          \"400\": {\n-            \"$ref\": \"#/responses/error\"\n-          },\n-          \"401\": {\n-            \"$ref\": \"#/responses/unauthorized\"\n-          },\n-          \"404\": {\n-            \"$ref\": \"#/responses/notFound\"\n-          }\n-        }\n-      }\n-    },\n-    \"/repos/{owner}/{repo}/actions/runners/jobs\": {\n-      \"get\": {\n-        \"produces\": [\"application/json\"],\n-        \"tags\": [\"repository\"],\n-        \"summary\": \"Search for repository's action jobs according filter conditions\",\n-        \"operationId\": \"repoSearchRunJobs\",\n-        \"parameters\": [\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"owner of the repo\",\n-            \"name\": \"owner\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"name of the repo\",\n-            \"name\": \"repo\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"a comma separated list of run job labels to search for\",\n-            \"name\": \"labels\",\n-            \"in\": \"query\"\n-          }\n-        ],\n-        \"responses\": {\n-          \"200\": {\n-            \"$ref\": \"#/responses/RunJobList\"\n-          },\n-          \"403\": {\n-            \"$ref\": \"#/responses/forbidden\"\n-          }\n-        }\n-      }\n-    },\n-    \"/repos/{owner}/{repo}/actions/runners/registration-token\": {\n-      \"get\": {\n-        \"description\": \"This operation has been deprecated in Forgejo 15. Use the web UI or [`/repos/{owner}/{repo}/actions/runners`](#/repository/registerRepoRunner) instead.\\n\",\n-        \"produces\": [\"application/json\"],\n-        \"tags\": [\"repository\"],\n-        \"summary\": \"Get a repository's runner registration token\",\n-        \"operationId\": \"repoGetRunnerRegistrationToken\",\n-        \"deprecated\": true,\n-        \"parameters\": [\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"owner of the repo\",\n-            \"name\": \"owner\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"name of the repo\",\n-            \"name\": \"repo\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          }\n-        ],\n-        \"responses\": {\n-          \"200\": {\n-            \"$ref\": \"#/responses/RegistrationToken\"\n-          }\n-        }\n-      }\n-    },\n-    \"/repos/{owner}/{repo}/actions/runners/{runner_id}\": {\n-      \"get\": {\n-        \"produces\": [\"application/json\"],\n-        \"tags\": [\"repository\"],\n-        \"summary\": \"Get a particular runner that belongs to the repository\",\n-        \"operationId\": \"getRepoRunner\",\n-        \"parameters\": [\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"owner of the repo\",\n-            \"name\": \"owner\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"name of the repo\",\n-            \"name\": \"repo\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"ID of the runner\",\n-            \"name\": \"runner_id\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          }\n-        ],\n-        \"responses\": {\n-          \"200\": {\n-            \"$ref\": \"#/responses/ActionRunner\"\n-          },\n-          \"400\": {\n-            \"$ref\": \"#/responses/error\"\n-          },\n-          \"404\": {\n-            \"$ref\": \"#/responses/notFound\"\n-          }\n-        }\n-      },\n-      \"delete\": {\n-        \"produces\": [\"application/json\"],\n-        \"tags\": [\"repository\"],\n-        \"summary\": \"Delete a particular runner that belongs to a repository\",\n-        \"operationId\": \"deleteRepoRunner\",\n-        \"parameters\": [\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"owner of the repo\",\n-            \"name\": \"owner\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"name of the repo\",\n-            \"name\": \"repo\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"ID of the runner\",\n-            \"name\": \"runner_id\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          }\n-        ],\n-        \"responses\": {\n-          \"204\": {\n-            \"description\": \"runner has been deleted\"\n-          },\n-          \"400\": {\n-            \"$ref\": \"#/responses/error\"\n-          },\n-          \"404\": {\n-            \"$ref\": \"#/responses/notFound\"\n-          }\n-        }\n-      }\n-    },\n-    \"/repos/{owner}/{repo}/actions/runs\": {\n-      \"get\": {\n-        \"produces\": [\"application/json\"],\n-        \"tags\": [\"repository\"],\n-        \"summary\": \"List a repository's action runs\",\n-        \"operationId\": \"ListActionRuns\",\n-        \"parameters\": [\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"owner of the repo\",\n-            \"name\": \"owner\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"name of the repo\",\n-            \"name\": \"repo\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"integer\",\n-            \"description\": \"page number of results to return (1-based)\",\n-            \"name\": \"page\",\n-            \"in\": \"query\"\n-          },\n-          {\n-            \"type\": \"integer\",\n-            \"description\": \"page size of results, default maximum page size is 50\",\n-            \"name\": \"limit\",\n-            \"in\": \"query\"\n-          },\n-          {\n-            \"type\": \"array\",\n-            \"items\": {\n-              \"type\": \"string\"\n-            },\n-            \"description\": \"Returns workflow run triggered by the specified events. For example, `push`, `pull_request` or `workflow_dispatch`.\",\n-            \"name\": \"event\",\n-            \"in\": \"query\"\n-          },\n-          {\n-            \"type\": \"array\",\n-            \"items\": {\n-              \"enum\": [\n-                \"unknown\",\n-                \"waiting\",\n-                \"running\",\n-                \"success\",\n-                \"failure\",\n-                \"cancelled\",\n-                \"skipped\",\n-                \"blocked\"\n-              ],\n-              \"type\": \"string\"\n-            },\n-            \"description\": \"Returns workflow runs with the check run status or conclusion that is specified. For example, a conclusion can be success or a status can be in_progress. Only Forgejo Actions can set a status of waiting, pending, or requested.\\n\",\n-            \"name\": \"status\",\n-            \"in\": \"query\"\n-          },\n-          {\n-            \"type\": \"integer\",\n-            \"format\": \"int64\",\n-            \"description\": \"Returns the workflow run associated with the run number.\\n\",\n-            \"name\": \"run_number\",\n-            \"in\": \"query\"\n-          },\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"Only returns workflow runs that are associated with the specified head_sha.\",\n-            \"name\": \"head_sha\",\n-            \"in\": \"query\"\n-          },\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"Only return workflow runs that involve the given Git reference, for example, `refs/heads/main`.\",\n-            \"name\": \"ref\",\n-            \"in\": \"query\"\n-          },\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"Only return workflow runs that involve the given workflow ID.\",\n-            \"name\": \"workflow_id\",\n-            \"in\": \"query\"\n-          }\n-        ],\n-        \"responses\": {\n-          \"200\": {\n-            \"$ref\": \"#/responses/ActionRunList\"\n-          },\n-          \"400\": {\n-            \"$ref\": \"#/responses/error\"\n-          },\n-          \"403\": {\n-            \"$ref\": \"#/responses/forbidden\"\n-          }\n-        }\n-      }\n-    },\n-    \"/repos/{owner}/{repo}/actions/runs/{run_id}\": {\n-      \"get\": {\n-        \"produces\": [\"application/json\"],\n-        \"tags\": [\"repository\"],\n-        \"summary\": \"Get an action run\",\n-        \"operationId\": \"GetActionRun\",\n-        \"parameters\": [\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"owner of the repo\",\n-            \"name\": \"owner\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"name of the repo\",\n-            \"name\": \"repo\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"integer\",\n-            \"format\": \"int64\",\n-            \"description\": \"id of the action run\",\n-            \"name\": \"run_id\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          }\n-        ],\n-        \"responses\": {\n-          \"200\": {\n-            \"$ref\": \"#/responses/ActionRun\"\n-          },\n-          \"400\": {\n-            \"$ref\": \"#/responses/error\"\n-          },\n-          \"403\": {\n-            \"$ref\": \"#/responses/forbidden\"\n-          },\n-          \"404\": {\n-            \"$ref\": \"#/responses/notFound\"\n-          }\n-        }\n-      },\n-      \"delete\": {\n-        \"description\": \"Remove a particular workflow run. The workflow run must have completed (succeeded, failed, cancelled) for the operation to succeed. Otherwise, an error is returned.\\n\",\n-        \"produces\": [\"application/json\"],\n-        \"tags\": [\"repository\"],\n-        \"summary\": \"Delete a completed workflow run.\",\n-        \"operationId\": \"DeleteActionRun\",\n-        \"parameters\": [\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"owner of the repo\",\n-            \"name\": \"owner\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"name of the repo\",\n-            \"name\": \"repo\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"integer\",\n-            \"format\": \"int64\",\n-            \"description\": \"id of the action run\",\n-            \"name\": \"run_id\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          }\n-        ],\n-        \"responses\": {\n-          \"204\": {\n-            \"description\": \"Workflow run has been removed\"\n-          },\n-          \"400\": {\n-            \"$ref\": \"#/responses/error\"\n-          },\n-          \"403\": {\n-            \"$ref\": \"#/responses/forbidden\"\n-          },\n-          \"404\": {\n-            \"$ref\": \"#/responses/notFound\"\n-          }\n-        }\n-      }\n-    },\n-    \"/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\": {\n-      \"get\": {\n-        \"produces\": [\"application/json\"],\n-        \"tags\": [\"repository\"],\n-        \"summary\": \"List artifacts of a workflow run\",\n-        \"operationId\": \"ListActionRunArtifacts\",\n-        \"parameters\": [\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"owner of the repo\",\n-            \"name\": \"owner\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"name of the repo\",\n-            \"name\": \"repo\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"integer\",\n-            \"format\": \"int64\",\n-            \"description\": \"ID of the workflow run\",\n-            \"name\": \"run_id\",\n-            \"in\": \"path\",\n-            \"required\": true\n-          },\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"filter by artifact name\",\n-            \"name\": \"name\",\n-            \"in\": \"query\"\n-          },\n-          {\n-            \"type\": \"integer\",\n-            \"description\": \"page number of results to return (1-based)\",\n-            \"name\": \"page\",\n-            \"in\": \"query\"\n+            \"name\": \"repo\",\n+            \"in\": \"path\",\n+            \"required\": true\n           },\n           {\n-            \"type\": \"integer\",\n-            \"description\": \"page size of results, default maximum page size is 50\",\n-            \"name\": \"limit\",\n-            \"in\": \"query\"\n+            \"type\": \"string\",\n+            \"description\": \"ID of the runner\",\n+            \"name\": \"runner_id\",\n+            \"in\": \"path\",\n+            \"required\": true\n           }\n         ],\n         \"responses\": {\n           \"200\": {\n-            \"$ref\": \"#/responses/ActionArtifactList\"\n+            \"$ref\": \"#/responses/ActionRunner\"\n           },\n           \"400\": {\n             \"$ref\": \"#/responses/error\"\n           },\n-          \"403\": {\n-            \"$ref\": \"#/responses/forbidden\"\n-          },\n           \"404\": {\n             \"$ref\": \"#/responses/notFound\"\n           }\n         }\n-      }\n-    },\n-    \"/repos/{owner}/{repo}/actions/runs/{run_id}/cancel\": {\n-      \"post\": {\n-        \"description\": \"Cancel a particular workflow run. Pending or running jobs of the run are cancelled. A run that has already finished, whether cancelled, failed, skipped or succeeded, is left unchanged. In both cases the endpoint responds with HTTP 204.\\n\",\n+      },\n+      \"delete\": {\n         \"produces\": [\"application/json\"],\n         \"tags\": [\"repository\"],\n-        \"summary\": \"Cancel a pending or running workflow run.\",\n-        \"operationId\": \"CancelActionRun\",\n+        \"summary\": \"Delete a particular runner that belongs to a repository\",\n+        \"operationId\": \"deleteRepoRunner\",\n         \"parameters\": [\n           {\n             \"type\": \"string\",\n@@ -5734,20 +5049,19 @@\n             \"required\": true\n           },\n           {\n-            \"type\": \"integer\",\n-            \"format\": \"int64\",\n-            \"description\": \"ID of the workflow run\",\n-            \"name\": \"run_id\",\n+            \"type\": \"string\",\n+            \"description\": \"ID of the runner\",\n+            \"name\": \"runner_id\",\n             \"in\": \"path\",\n             \"required\": true\n           }\n         ],\n         \"responses\": {\n           \"204\": {\n-            \"description\": \"Workflow run has been cancelled\"\n+            \"description\": \"runner has been deleted\"\n           },\n-          \"403\": {\n-            \"$ref\": \"#/responses/forbidden\"\n+          \"400\": {\n+            \"$ref\": \"#/responses/error\"\n           },\n           \"404\": {\n             \"$ref\": \"#/responses/notFound\"\n@@ -5755,12 +5069,12 @@\n         }\n       }\n     },\n-    \"/repos/{owner}/{repo}/actions/runs/{run_id}/jobs\": {\n+    \"/repos/{owner}/{repo}/actions/runs\": {\n       \"get\": {\n         \"produces\": [\"application/json\"],\n         \"tags\": [\"repository\"],\n-        \"summary\": \"List jobs of a workflow run\",\n-        \"operationId\": \"ListActionRunJobs\",\n+        \"summary\": \"List a repository's action runs\",\n+        \"operationId\": \"ListActionRuns\",\n         \"parameters\": [\n           {\n             \"type\": \"string\",\n@@ -5776,37 +5090,91 @@\n             \"in\": \"path\",\n             \"required\": true\n           },\n+          {\n+            \"type\": \"integer\",\n+            \"description\": \"page number of results to return (1-based)\",\n+            \"name\": \"page\",\n+            \"in\": \"query\"\n+          },\n+          {\n+            \"type\": \"integer\",\n+            \"description\": \"page size of results, default maximum page size is 50\",\n+            \"name\": \"limit\",\n+            \"in\": \"query\"\n+          },\n+          {\n+            \"type\": \"array\",\n+            \"items\": {\n+              \"type\": \"string\"\n+            },\n+            \"description\": \"Returns workflow run triggered by the specified events. For example, `push`, `pull_request` or `workflow_dispatch`.\",\n+            \"name\": \"event\",\n+            \"in\": \"query\"\n+          },\n+          {\n+            \"type\": \"array\",\n+            \"items\": {\n+              \"enum\": [\n+                \"unknown\",\n+                \"waiting\",\n+                \"running\",\n+                \"success\",\n+                \"failure\",\n+                \"cancelled\",\n+                \"skipped\",\n+                \"blocked\"\n+              ],\n+              \"type\": \"string\"\n+            },\n+            \"description\": \"Returns workflow runs with the check run status or conclusion that is specified. For example, a conclusion can be success or a status can be in_progress. Only Forgejo Actions can set a status of waiting, pending, or requested.\\n\",\n+            \"name\": \"status\",\n+            \"in\": \"query\"\n+          },\n           {\n             \"type\": \"integer\",\n             \"format\": \"int64\",\n-            \"description\": \"ID of the workflow run\",\n-            \"name\": \"run_id\",\n-            \"in\": \"path\",\n-            \"required\": true\n+            \"description\": \"Returns the workflow run associated with the run number.\\n\",\n+            \"name\": \"run_number\",\n+            \"in\": \"query\"\n+          },\n+          {\n+            \"type\": \"string\",\n+            \"description\": \"Only returns workflow runs that are associated with the specified head_sha.\",\n+            \"name\": \"head_sha\",\n+            \"in\": \"query\"\n+          },\n+          {\n+            \"type\": \"string\",\n+            \"description\": \"Only return workflow runs that involve the given Git reference, for example, `refs/heads/main`.\",\n+            \"name\": \"ref\",\n+            \"in\": \"query\"\n+          },\n+          {\n+            \"type\": \"string\",\n+            \"description\": \"Only return workflow runs that involve the given workflow ID.\",\n+            \"name\": \"workflow_id\",\n+            \"in\": \"query\"\n           }\n         ],\n         \"responses\": {\n           \"200\": {\n-            \"$ref\": \"#/responses/ActionRunJobList\"\n+            \"$ref\": \"#/responses/ActionRunList\"\n           },\n           \"400\": {\n             \"$ref\": \"#/responses/error\"\n           },\n           \"403\": {\n             \"$ref\": \"#/responses/forbidden\"\n-          },\n-          \"404\": {\n-            \"$ref\": \"#/responses/notFound\"\n           }\n         }\n       }\n     },\n-    \"/repos/{owner}/{repo}/actions/runs/{run_id}/logs\": {\n+    \"/repos/{owner}/{repo}/actions/runs/{run_id}\": {\n       \"get\": {\n-        \"produces\": [\"application/zip\"],\n+        \"produces\": [\"application/json\"],\n         \"tags\": [\"repository\"],\n-        \"summary\": \"Download a ZIP of plaintext logs for every job in an action run\",\n-        \"operationId\": \"repoGetActionRunLogs\",\n+        \"summary\": \"Get an action run\",\n+        \"operationId\": \"GetActionRun\",\n         \"parameters\": [\n           {\n             \"type\": \"string\",\n@@ -5825,7 +5193,7 @@\n           {\n             \"type\": \"integer\",\n             \"format\": \"int64\",\n-            \"description\": \"ID of the workflow run. The ZIP contains the latest attempt of each job in the run, with each entry named `{job-name}-{job-id}-attempt-{N}.log` (the job ID prevents collisions when two jobs share a name; the attempt number records which run the log came from). The run itself has no attempt number — jobs are re-run independently, so use the per-job logs endpoint with `?attempt` to fetch a specific historical attempt of one job.\\n\",\n+            \"description\": \"id of the action run\",\n             \"name\": \"run_id\",\n             \"in\": \"path\",\n             \"required\": true\n@@ -5833,14 +5201,10 @@\n         ],\n         \"responses\": {\n           \"200\": {\n-            \"description\": \"ZIP archive of per-job log files\",\n-            \"schema\": {\n-              \"type\": \"string\",\n-              \"format\": \"binary\"\n-            }\n+            \"$ref\": \"#/responses/ActionRun\"\n           },\n-          \"401\": {\n-            \"$ref\": \"#/responses/unauthorized\"\n+          \"400\": {\n+            \"$ref\": \"#/responses/error\"\n           },\n           \"403\": {\n             \"$ref\": \"#/responses/forbidden\"\n@@ -7242,7 +6606,7 @@\n           },\n           {\n             \"type\": \"integer\",\n-            \"description\": \"page size of results\",\n+            \"description\": \"page size of results (ignored if used with 'path')\",\n             \"name\": \"limit\",\n             \"in\": \"query\"\n           },\n@@ -13028,7 +12392,7 @@\n               \"type\": \"string\"\n             },\n             \"collectionFormat\": \"multi\",\n-            \"description\": \"Show notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread & pinned\",\n+            \"description\": \"Show notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread \\u0026 pinned\",\n             \"name\": \"status-types\",\n             \"in\": \"query\"\n           },\n@@ -13202,18 +12566,6 @@\n             \"name\": \"poster\",\n             \"in\": \"query\"\n           },\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"Filter by base branch name\",\n-            \"name\": \"base\",\n-            \"in\": \"query\"\n-          },\n-          {\n-            \"type\": \"string\",\n-            \"description\": \"Filter by head branch name\",\n-            \"name\": \"head\",\n-            \"in\": \"query\"\n-          },\n           {\n             \"minimum\": 1,\n             \"type\": \"integer\",\n@@ -18281,36 +17633,6 @@\n         }\n       }\n     },\n-    \"/user/activitypub/follow\": {\n-      \"post\": {\n-        \"tags\": [\"user\"],\n-        \"summary\": \"Follow a remote activitypub account\",\n-        \"operationId\": \"userCurrentActivityPubFollow\",\n-        \"parameters\": [\n-          {\n-            \"name\": \"body\",\n-            \"in\": \"body\",\n-            \"schema\": {\n-              \"$ref\": \"#/definitions/APRemoteFollowOption\"\n-            }\n-          }\n-        ],\n-        \"responses\": {\n-          \"204\": {\n-            \"$ref\": \"#/responses/empty\"\n-          },\n-          \"401\": {\n-            \"$ref\": \"#/responses/unauthorized\"\n-          },\n-          \"403\": {\n-            \"$ref\": \"#/responses/forbidden\"\n-          },\n-          \"404\": {\n-            \"$ref\": \"#/responses/notFound\"\n-          }\n-        }\n-      }\n-    },\n     \"/user/applications/oauth2\": {\n       \"get\": {\n         \"produces\": [\"application/json\"],\n@@ -20729,25 +20051,10 @@\n       },\n       \"x-go-package\": \"forgejo.org/services/context\"\n     },\n-    \"APRemoteFollowOption\": {\n-      \"type\": \"object\",\n-      \"properties\": {\n-        \"target\": {\n-          \"type\": \"string\",\n-          \"x-go-name\": \"Target\"\n-        }\n-      },\n-      \"x-go-package\": \"forgejo.org/modules/structs\"\n-    },\n     \"AccessToken\": {\n       \"type\": \"object\",\n       \"title\": \"AccessToken represents an API access token.\",\n       \"properties\": {\n-        \"created_at\": {\n-          \"type\": \"string\",\n-          \"format\": \"date-time\",\n-          \"x-go-name\": \"Created\"\n-        },\n         \"id\": {\n           \"type\": \"integer\",\n           \"format\": \"int64\",\n@@ -20783,61 +20090,6 @@\n       },\n       \"x-go-package\": \"forgejo.org/modules/structs\"\n     },\n-    \"ActionArtifact\": {\n-      \"description\": \"ActionArtifact represents an artifact of a workflow run\",\n-      \"type\": \"object\",\n-      \"properties\": {\n-        \"archive_download_url\": {\n-          \"description\": \"the URL to download the artifact zip archive\",\n-          \"type\": \"string\",\n-          \"x-go-name\": \"ArchiveDownloadURL\"\n-        },\n-        \"created_at\": {\n-          \"type\": \"string\",\n-          \"format\": \"date-time\",\n-          \"x-go-name\": \"CreatedAt\"\n-        },\n-        \"expired\": {\n-          \"description\": \"whether the artifact has expired\",\n-          \"type\": \"boolean\",\n-          \"x-go-name\": \"Expired\"\n-        },\n-        \"expires_at\": {\n-          \"type\": \"string\",\n-          \"format\": \"date-time\",\n-          \"x-go-name\": \"ExpiresAt\"\n-        },\n-        \"id\": {\n-          \"description\": \"the artifact's ID\",\n-          \"type\": \"integer\",\n-          \"format\": \"int64\",\n-          \"x-go-name\": \"ID\"\n-        },\n-        \"name\": {\n-          \"description\": \"the artifact's name\",\n-          \"type\": \"string\",\n-          \"x-go-name\": \"Name\"\n-        },\n-        \"run_id\": {\n-          \"description\": \"the ID of the workflow run that produced this artifact\",\n-          \"type\": \"integer\",\n-          \"format\": \"int64\",\n-          \"x-go-name\": \"RunID\"\n-        },\n-        \"size_in_bytes\": {\n-          \"description\": \"the total size of the artifact in bytes\",\n-          \"type\": \"integer\",\n-          \"format\": \"int64\",\n-          \"x-go-name\": \"SizeInBytes\"\n-        },\n-        \"updated_at\": {\n-          \"type\": \"string\",\n-          \"format\": \"date-time\",\n-          \"x-go-name\": \"UpdatedAt\"\n-        }\n-      },\n-      \"x-go-package\": \"forgejo.org/modules/structs\"\n-    },\n     \"ActionRun\": {\n       \"description\": \"ActionRun represents an action run\",\n       \"type\": \"object\",\n@@ -21008,12 +20260,6 @@\n           \"format\": \"int64\",\n           \"x-go-name\": \"RepoID\"\n         },\n-        \"run_id\": {\n-          \"description\": \"Identifier of the workflow run this job belongs to.\",\n-          \"type\": \"integer\",\n-          \"format\": \"int64\",\n-          \"x-go-name\": \"RunID\"\n-        },\n         \"runs_on\": {\n           \"description\": \"the action run job labels to run on\",\n           \"type\": \"array\",\n@@ -21716,11 +20962,6 @@\n           },\n           \"x-go-name\": \"Files\"\n         },\n-        \"force_overwrite_new_branch\": {\n-          \"description\": \"(optional) will do a force-push if the new branch already exists\",\n-          \"type\": \"boolean\",\n-          \"x-go-name\": \"ForceOverwriteNewBranch\"\n-        },\n         \"message\": {\n           \"description\": \"message (optional) for the commit of this file. if not supplied, a default message will be used\",\n           \"type\": \"string\",\n@@ -22055,6 +21296,7 @@\n         },\n         \"target_url\": {\n           \"type\": \"string\",\n+          \"format\": \"url\",\n           \"x-go-name\": \"TargetURL\"\n         },\n         \"updated_at\": {\n@@ -22071,9 +21313,9 @@\n       \"x-go-package\": \"forgejo.org/modules/structs\"\n     },\n     \"CommitStatusState\": {\n-      \"description\": \"CommitStatusState holds the state of a CommitStatus\\nIt can be \\\"pending\\\", \\\"success\\\", \\\"error\\\", \\\"failure\\\", \\\"warning\\\", or \\\"skipped\\\"\",\n+      \"description\": \"CommitStatusState holds the state of a CommitStatus\\nIt can be \\\"pending\\\", \\\"success\\\", \\\"error\\\", \\\"failure\\\" and \\\"warning\\\"\",\n       \"type\": \"string\",\n-      \"enum\": [\"pending\", \"success\", \"error\", \"failure\", \"warning\", \"skipped\"],\n+      \"enum\": [\"pending\", \"success\", \"error\", \"failure\", \"warning\"],\n       \"x-go-package\": \"forgejo.org/modules/structs\"\n     },\n     \"CommitUser\": {\n@@ -22438,11 +21680,6 @@\n         \"dates\": {\n           \"$ref\": \"#/definitions/CommitDateOptions\"\n         },\n-        \"force_overwrite_new_branch\": {\n-          \"description\": \"(optional) will do a force-push if the new branch already exists\",\n-          \"type\": \"boolean\",\n-          \"x-go-name\": \"ForceOverwriteNewBranch\"\n-        },\n         \"message\": {\n           \"description\": \"message (optional) for the commit of this file. if not supplied, a default message will be used\",\n           \"type\": \"string\",\n@@ -22855,12 +22092,6 @@\n           \"type\": \"string\",\n           \"x-go-name\": \"Body\"\n         },\n-        \"extra_lines_count\": {\n-          \"description\": \"number of additional lines after the commented line (0 = single line comment)\",\n-          \"type\": \"integer\",\n-          \"format\": \"int64\",\n-          \"x-go-name\": \"ExtraLinesCount\"\n-        },\n         \"new_position\": {\n           \"description\": \"if comment to new file line or 0\",\n           \"type\": \"integer\",\n@@ -23064,7 +22295,7 @@\n           \"x-go-name\": \"Description\"\n         },\n         \"gitignores\": {\n-          \"description\": \"Gitignores to use, separated by commas\",\n+          \"description\": \"Gitignores to use\",\n           \"type\": \"string\",\n           \"x-go-name\": \"Gitignores\"\n         },\n@@ -23133,6 +22364,7 @@\n         },\n         \"target_url\": {\n           \"type\": \"string\",\n+          \"format\": \"url\",\n           \"x-go-name\": \"TargetURL\"\n         }\n       },\n@@ -23409,11 +22641,6 @@\n         \"dates\": {\n           \"$ref\": \"#/definitions/CommitDateOptions\"\n         },\n-        \"force_overwrite_new_branch\": {\n-          \"description\": \"(optional) will do a force-push if the new branch already exists\",\n-          \"type\": \"boolean\",\n-          \"x-go-name\": \"ForceOverwriteNewBranch\"\n-        },\n         \"message\": {\n           \"description\": \"message (optional) for the commit of this file. if not supplied, a default message will be used\",\n           \"type\": \"string\",\n@@ -25571,19 +24798,19 @@\n       \"type\": \"object\",\n       \"properties\": {\n         \"Context\": {\n-          \"description\": \"Context to render\",\n+          \"description\": \"Context to render\\n\\nin: body\",\n           \"type\": \"string\"\n         },\n         \"Mode\": {\n-          \"description\": \"Mode to render (comment, gfm, markdown)\",\n+          \"description\": \"Mode to render (comment, gfm, markdown)\\n\\nin: body\",\n           \"type\": \"string\"\n         },\n         \"Text\": {\n-          \"description\": \"Text markdown to render\",\n+          \"description\": \"Text markdown to render\\n\\nin: body\",\n           \"type\": \"string\"\n         },\n         \"Wiki\": {\n-          \"description\": \"Is it a wiki page ?\",\n+          \"description\": \"Is it a wiki page ?\\n\\nin: body\",\n           \"type\": \"boolean\"\n         }\n       },\n@@ -25594,27 +24821,27 @@\n       \"type\": \"object\",\n       \"properties\": {\n         \"BranchPath\": {\n-          \"description\": \"The current branch path where the form gets posted\",\n+          \"description\": \"The current branch path where the form gets posted\\n\\nin: body\",\n           \"type\": \"string\"\n         },\n         \"Context\": {\n-          \"description\": \"Context to render\",\n+          \"description\": \"Context to render\\n\\nin: body\",\n           \"type\": \"string\"\n         },\n         \"FilePath\": {\n-          \"description\": \"File path for detecting extension in file mode\",\n+          \"description\": \"File path for detecting extension in file mode\\n\\nin: body\",\n           \"type\": \"string\"\n         },\n         \"Mode\": {\n-          \"description\": \"Mode to render (comment, gfm, markdown, file)\",\n+          \"description\": \"Mode to render (comment, gfm, markdown, file)\\n\\nin: body\",\n           \"type\": \"string\"\n         },\n         \"Text\": {\n-          \"description\": \"Text markup to render\",\n+          \"description\": \"Text markup to render\\n\\nin: body\",\n           \"type\": \"string\"\n         },\n         \"Wiki\": {\n-          \"description\": \"Is it a wiki page ?\",\n+          \"description\": \"Is it a wiki page ?\\n\\nin: body\",\n           \"type\": \"boolean\"\n         }\n       },\n@@ -26124,11 +25351,6 @@\n           \"format\": \"url\",\n           \"x-go-name\": \"AvatarURL\"\n         },\n-        \"created\": {\n-          \"type\": \"string\",\n-          \"format\": \"date-time\",\n-          \"x-go-name\": \"Created\"\n-        },\n         \"description\": {\n           \"type\": \"string\",\n           \"x-go-name\": \"Description\"\n@@ -26463,11 +25685,6 @@\n           \"type\": \"string\",\n           \"x-go-name\": \"Title\"\n         },\n-        \"updated_at\": {\n-          \"type\": \"string\",\n-          \"format\": \"date-time\",\n-          \"x-go-name\": \"Updated\"\n-        },\n         \"url\": {\n           \"type\": \"string\",\n           \"format\": \"url\",\n@@ -26475,10 +25692,6 @@\n         },\n         \"user\": {\n           \"$ref\": \"#/definitions/User\"\n-        },\n-        \"verified\": {\n-          \"type\": \"boolean\",\n-          \"x-go-name\": \"Verified\"\n         }\n       },\n       \"x-go-package\": \"forgejo.org/modules/structs\"\n@@ -26781,12 +25994,6 @@\n           \"type\": \"string\",\n           \"x-go-name\": \"DiffHunk\"\n         },\n-        \"extra_lines_count\": {\n-          \"description\": \"number of additional lines after the commented line (0 = single line comment)\",\n-          \"type\": \"integer\",\n-          \"format\": \"int64\",\n-          \"x-go-name\": \"ExtraLinesCount\"\n-        },\n         \"html_url\": {\n           \"type\": \"string\",\n           \"format\": \"url\",\n@@ -28427,11 +27634,6 @@\n         \"dates\": {\n           \"$ref\": \"#/definitions/CommitDateOptions\"\n         },\n-        \"force_overwrite_new_branch\": {\n-          \"description\": \"(optional) will do a force-push if the new branch already exists\",\n-          \"type\": \"boolean\",\n-          \"x-go-name\": \"ForceOverwriteNewBranch\"\n-        },\n         \"from_path\": {\n           \"description\": \"from_path (optional) is the path of the original file which will be moved/renamed to the path in the URL\",\n           \"type\": \"string\",\n@@ -28920,7 +28122,7 @@\n       }\n     },\n     \"AccessTokenList\": {\n-      \"description\": \"AccessTokenList\",\n+      \"description\": \"AccessTokenList represents a list of API access token.\",\n       \"schema\": {\n         \"type\": \"array\",\n         \"items\": {\n@@ -28935,36 +28137,12 @@\n         }\n       }\n     },\n-    \"ActionArtifact\": {\n-      \"description\": \"ActionArtifact\",\n-      \"schema\": {\n-        \"$ref\": \"#/definitions/ActionArtifact\"\n-      }\n-    },\n-    \"ActionArtifactList\": {\n-      \"description\": \"ActionArtifactList\",\n-      \"schema\": {\n-        \"type\": \"array\",\n-        \"items\": {\n-          \"$ref\": \"#/definitions/ActionArtifact\"\n-        }\n-      }\n-    },\n     \"ActionRun\": {\n       \"description\": \"ActionRun\",\n       \"schema\": {\n         \"$ref\": \"#/definitions/ActionRun\"\n       }\n     },\n-    \"ActionRunJobList\": {\n-      \"description\": \"ActionRunJobList\",\n-      \"schema\": {\n-        \"type\": \"array\",\n-        \"items\": {\n-          \"$ref\": \"#/definitions/ActionRunJob\"\n-        }\n-      }\n-    },\n     \"ActionRunList\": {\n       \"description\": \"ActionRunList\",\n       \"schema\": {\n@@ -29687,7 +28865,7 @@\n       }\n     },\n     \"OAuth2ApplicationList\": {\n-      \"description\": \"OAuth2ApplicationList\",\n+      \"description\": \"OAuth2ApplicationList represents a list of OAuth2 applications.\",\n       \"schema\": {\n         \"type\": \"array\",\n         \"items\": {\n","content_type":"text/plain","diff_type":"vcs","new_revision":"git-v1:d16f1399c6047428bf99a6b56fb9662a544f5ad0"}