codegen: Detect deleted releases

This commit is contained in:
Taiki Endo
2026-04-05 04:19:28 +09:00
parent 5311ff906c
commit 11f5a9921c
4 changed files with 20 additions and 453 deletions

441
manifests/trivy.json generated
View File

@@ -96,446 +96,5 @@
"etag": "0x8DE77C6B3B3F88B",
"hash": "557b9b1ad75e9aa6762f64a338fa7f581f50375e054b946c67361d88b3f762be"
}
},
"0.69.1": {
"x86_64_linux_gnu": {
"etag": "0x8DE64B81CF95EEF",
"hash": "dd93975bc1e58053810a9bafea89923e5df42ddd3f99905fdf840fd797145157"
},
"x86_64_macos": {
"etag": "0x8DE64B819F91DC6",
"hash": "1054f37ba02173a7e1a05e2bcc1179d7573124cea1502a37cc59de89582de307"
},
"x86_64_windows": {
"etag": "0x8DE64B819F13777",
"hash": "7a37fafd7a62fef07d4ebe9c5a90bb079e929eac78d691863b013eec14d57eac"
},
"aarch64_linux_gnu": {
"etag": "0x8DE64B81CCE12EB",
"hash": "7a98c13e6c5799fc46219c94fa500b807532b4555501cce85fa4eead9f755516"
},
"aarch64_macos": {
"etag": "0x8DE64B81B7978AC",
"hash": "ae5ce4a7b9bf2bd3794ccb3c257993526fa47470b3814d729a73788d36aff3d0"
},
"powerpc64le_linux_gnu": {
"etag": "0x8DE64B81A1B2572",
"hash": "b4314efdb60e19567072586c0ae0120053fa3453ca6f3f93b7002cfb98848759"
},
"s390x_linux_gnu": {
"etag": "0x8DE64B81BB8F941",
"hash": "5a813df48a525d0ed5a87c92a49b715bc1142787bb51562fc84156f28c68e9c1"
}
},
"0.69.0": {
"x86_64_linux_gnu": {
"etag": "0x8DE5FE98E1231FF",
"hash": "fff5813d6888fa6f8bd40042a08c4f072b3e65aec9f13dd9ab1d7b26146ad046"
},
"x86_64_macos": {
"etag": "0x8DE5FE98CD6F5A8",
"hash": "4264e4fcc73259de36a68c112a586d65bf6cd488ef2aea857f37d00d8cb5c4e6"
},
"x86_64_windows": {
"etag": "0x8DE5FE98CABA986",
"hash": "4b34440f0a854428e846b1d2329eede3f0663bec8eff865ae2dffca42542a076"
},
"aarch64_linux_gnu": {
"etag": "0x8DE5FE98B60C75A",
"hash": "425e883f37cad0b512478df2803f58532e7d235267303375a3d0f97e4790a1ca"
},
"aarch64_macos": {
"etag": "0x8DE5FE98CCAF53A",
"hash": "bd35348d963d3f661ff4d7d138e65a75fedbfade0378689f3a349c824c6e5b75"
},
"powerpc64le_linux_gnu": {
"etag": "0x8DE5FE98B58BA1E",
"hash": "719963fc7ba3b0c1db69dd39c4410c7e01f4a13d4bf8cbd7085f2f7e7b5cf22c"
},
"s390x_linux_gnu": {
"etag": "0x8DE5FE98B514869",
"hash": "f747c09a5b6b401c573d36e9b7bece73c95c685de566f8077c0ddc8adfb718f4"
}
},
"0.68": {
"version": "0.68.2"
},
"0.68.2": {
"x86_64_linux_gnu": {
"etag": "0x8DE3D36FA8B041A",
"hash": "3d933bbc3685f95ec15280f620583d05d97ee3affb66944d14481d5d6d567064"
},
"x86_64_macos": {
"etag": "0x8DE3D36F8E8C779",
"hash": "c0790530cd717b6bdd02ed437be0710f5c7043078fafaf6841be7c865bf251ce"
},
"x86_64_windows": {
"etag": "0x8DE3D36FBDA4DDA",
"hash": "2aaa0ce06f9f2221a6bb21e1fc0e0ecc6aeb56362bc5c9463e9fd7b06983c3c3"
},
"aarch64_linux_gnu": {
"etag": "0x8DE3D36FA31D6BE",
"hash": "33c87995fd0c3d1559086c3e18fd3148051296dfd0ca2a67583eb64f89998c91"
},
"aarch64_macos": {
"etag": "0x8DE3D36FBE6276F",
"hash": "dfbe15ffe47426dad9fd3e0d52aeacf3dbbb25ca5dbc66049f5920834435988d"
},
"powerpc64le_linux_gnu": {
"etag": "0x8DE3D36F8C75B58",
"hash": "e8e0391fb23706885371aa26d98bf7d43ed330dda2dce5cd0098444955d3b071"
},
"s390x_linux_gnu": {
"etag": "0x8DE3D36FA754A9D",
"hash": "fd45fc808622ecb11393f4c27d1fbd20e1d78838148a282b1129624964dd0628"
}
},
"0.68.1": {
"x86_64_linux_gnu": {
"etag": "0x8DE3251848BE364",
"hash": "63e37242088e418651931f891963c19554faa19f0591fe6b40b606152051df2f"
},
"x86_64_macos": {
"etag": "0x8DE3251830BD5BF",
"hash": "d5b5bd3b3c3626d223c3981cc40f4709f00a6327a681b588d2fc64a3aa9d02c5"
},
"x86_64_windows": {
"etag": "0x8DE325185F54E47",
"hash": "600fc65bdb486e160efeedf8fff8ef6be8e9d2e82f2ea4db82ad23263ed5f902"
},
"aarch64_linux_gnu": {
"etag": "0x8DE325182E5186B",
"hash": "b29ea550f573afbcae3c86fb2b5e0ebba76b7cb0965e3787c4e8cb884d2c1d57"
},
"aarch64_macos": {
"etag": "0x8DE32518617A3C8",
"hash": "4dd3d2e74e1b6f6f7fd5fbf55489727698f586d6a6a0cff3421031a05b80bcac"
},
"powerpc64le_linux_gnu": {
"etag": "0x8DE325182EA1BD7",
"hash": "85fad2f54d695044ff4c7cfbf527a339bbba624e248ca78c81b24d3ff505ec36"
},
"s390x_linux_gnu": {
"etag": "0x8DE325184AA45AE",
"hash": "5fd10a554ffc2a82bdc0212112352f0641d1ccf46b60f7c3be8b1f6c9e98a291"
}
},
"0.67": {
"version": "0.67.2"
},
"0.67.2": {
"x86_64_linux_gnu": {
"etag": "0x8DE080439A9226F",
"hash": "546511a5514afc813c0b72e4abeea2c16a32228a13a1e5114d927c190e76b1f9"
},
"x86_64_macos": {
"etag": "0x8DE08043B0FD1EC",
"hash": "4a5b936a8d89b508ecdc6edd65933b6fe3e9a368796cbdf917fd0df393f26542"
},
"x86_64_windows": {
"etag": "0x8DE0804388E4204",
"hash": "ad6a7a706902ec3248d8905a32d0c15630958ab3040b8ea0373a6f5a2da30a94"
},
"aarch64_linux_gnu": {
"etag": "0x8DE0804398EB34F",
"hash": "e4f28390b06cdaaed94f8c49cce2c4c847938b5188aefdeb82453f2e933e57cb"
},
"aarch64_macos": {
"etag": "0x8DE08043AF0386A",
"hash": "6b3163667f29fc608a2ed647c1bd42023af5779349286148190a168c5b3f28f1"
},
"powerpc64le_linux_gnu": {
"etag": "0x8DE0804383BC3C5",
"hash": "168f8a8009433de6fb82f4119370b873f96dbbe115968899100aff5512204fb7"
},
"s390x_linux_gnu": {
"etag": "0x8DE080439F69D3F",
"hash": "82ae68e011861a91adad87efa88d85d9a2f3a35099a531edd255999a36b07428"
}
},
"0.67.1": {
"x86_64_linux_gnu": {
"etag": "0x8DE072A82C7AB42",
"hash": "945c004188970dddb634db8bbac332b00f477858918a2026866367268a810678"
},
"x86_64_macos": {
"etag": "0x8DE072A813C381F",
"hash": "36001046e4a52885b664b7a5f40da5f0e1883c07a72763dee57c7d5b9676d901"
},
"x86_64_windows": {
"etag": "0x8DE072A8320FFA5",
"hash": "f68c6b04c8984766d95413fcb438e6a6e242eadb9d5e9b6ca4d1ba9c84ffa4cb"
},
"aarch64_linux_gnu": {
"etag": "0x8DE072A82CFB88B",
"hash": "dbc17ea23d75c9f93d3e781468cf0fd82d46e2e772353a4ff9da6d88919a1052"
},
"aarch64_macos": {
"etag": "0x8DE072A81571BFA",
"hash": "81e24fd39ddecda180cc9abefaea184e0c22c331d7b683993a9bc89e67d07bb9"
},
"powerpc64le_linux_gnu": {
"etag": "0x8DE072A815A7387",
"hash": "3def8ad164495d431eca7643671a5076b12364a7875f7dae53d01b0b179aede0"
},
"s390x_linux_gnu": {
"etag": "0x8DE072A842C87F8",
"hash": "ac9c61256a890cf99cca33415fbd7d0931f5489575c4bcf9e6cdde8e22723e84"
}
},
"0.67.0": {
"x86_64_linux_gnu": {
"etag": "0x8DDFFF9F277E803",
"hash": "5b10e9bba00a508b0f3bcb98e78f1039f7eee26b57c9266961a415642a9208ab"
},
"x86_64_macos": {
"etag": "0x8DDFFF9F4297CF7",
"hash": "ae8a13d8c3abf7f7e7981ac1a5f5ec094d68835f2aac67da102d4ba36e820c3c"
},
"x86_64_windows": {
"etag": "0x8DDFFF9F465316A",
"hash": "cbdc0dea7563da0f1258bedb5c6782dfe762ec8b4377db2629555fbdd7e6425f"
},
"aarch64_linux_gnu": {
"etag": "0x8DDFFF9F5C29C5E",
"hash": "0f3ac33954dd918cad708bdf06731b4aa8cc14b12e879932b4ceef2f22640a9e"
},
"aarch64_macos": {
"etag": "0x8DDFFF9F2834CFC",
"hash": "feea8727b501f654683774fe0f98a9c1a128c7d8bcd7c942a8e6f6d05b33bd4b"
},
"powerpc64le_linux_gnu": {
"etag": "0x8DDFFF9F5DDA710",
"hash": "f1a685c309679ff23bca2dd42e017a22d235d0d9dbc0b129d1221590d9e1bc1b"
},
"s390x_linux_gnu": {
"etag": "0x8DDFFF9F4253BFB",
"hash": "f4b09750400c4a4ed68b5fe7a744fbe1b0ea14fc797d122119c9fa82ef167165"
}
},
"0.66": {
"version": "0.66.0"
},
"0.66.0": {
"x86_64_linux_gnu": {
"etag": "0x8DDEA4865EC0918",
"hash": "93678741c3223c15120934ac00671ca7e797c9a5a4d89148db9ffca9184a5f0d"
},
"x86_64_macos": {
"etag": "0x8DDEA486A0448AA",
"hash": "284a3d3346429837f3da11aa6c25bf196e4fe5431733d4f6f99eac8578b329ed"
},
"x86_64_windows": {
"etag": "0x8DDEA4867FEFF09",
"hash": "402d083f7b6b75005bef6dcc75613c41fc09c0ba735bbdbbcce418d7b3250ad6"
},
"aarch64_linux_gnu": {
"etag": "0x8DDEA4868075A08",
"hash": "a51268845bdeb68f5f885f7de6c92fe33b64d630392e546eec0e16f79cfd42e8"
},
"aarch64_macos": {
"etag": "0x8DDEA4865C5C055",
"hash": "964bb69fc0e652891b38514fed4ee31de004a58ac22ea2a23c6891728bb6b6eb"
},
"powerpc64le_linux_gnu": {
"etag": "0x8DDEA486824D2F2",
"hash": "dbcf43998bafcd1adae26fc57ea6128f8a1c66da1523096e37fe29c30c68990f"
},
"s390x_linux_gnu": {
"etag": "0x8DDEA4865B3FA0A",
"hash": "8d5387862cec090d0f4922b3d2969291774097965649624d0d968e241d53a65e"
}
},
"0.65": {
"version": "0.65.0"
},
"0.65.0": {
"x86_64_linux_gnu": {
"etag": "0x8DDCFFB2522E989",
"hash": "f0c5e3c912e7f5194a0efc85dfd34c94c63c4a4184b2d7b97ec7718661f5ead2"
},
"x86_64_macos": {
"etag": "0x8DDCFFB23C5CCA2",
"hash": "b022f86ac91d1c4e79cc548f3e470880a2f8150a369058fbd055bee537aca798"
},
"x86_64_windows": {
"etag": "0x8DDCFFB23CC2E24",
"hash": "736ea5990e1a8432624039b0438324b6b7542e94810f9bc83a56f37c56a05b87"
},
"aarch64_linux_gnu": {
"etag": "0x8DDCFFB23875C2C",
"hash": "013c67e6aff35429cbbc9f38ea030f5a929d128df08f16188af35ca70517330b"
},
"aarch64_macos": {
"etag": "0x8DDCFFB26795759",
"hash": "3076e27024b92d634fe09947934d36dc8b651a8539ff1d69b4cfac008dfb59ce"
},
"powerpc64le_linux_gnu": {
"etag": "0x8DDCFFB236CC627",
"hash": "6c54d2393322e493bd80ed2a208708fcca1d30e5ae9b0bfcbd3acb1c3212627e"
},
"s390x_linux_gnu": {
"etag": "0x8DDCFFB2546EAE0",
"hash": "383c80b9fee80c46d5232da40237fe1886baa76db9275adb5028184bba90adc0"
}
},
"0.64": {
"version": "0.64.1"
},
"0.64.1": {
"x86_64_linux_gnu": {
"etag": "0x8DDBA3D4C6732DE",
"hash": "1a09d86667b3885a8783d1877c9abc8061b2b4e9b403941b22cbd82f10d275a8"
},
"x86_64_macos": {
"etag": "0x8DDBA3D4E2ADC31",
"hash": "107a874b41c1f0a48849f859b756f500d8be06f2d2b8956a046a97ae38088bf6"
},
"x86_64_windows": {
"etag": "0x8DDBA3D4C6E56C5",
"hash": "d03bce6326ff75d041f2499e801357d3da6b08a28be085580d9b0bdf84971d12"
},
"aarch64_linux_gnu": {
"etag": "0x8DDBA3D4C3CD009",
"hash": "a57d4d48a90f8ed875b821fc3078ba5a8572f86e90adfea0995cefd51d583bd7"
},
"aarch64_macos": {
"etag": "0x8DDBA3D4C4000C5",
"hash": "7489c69948cda032adc2862923222917cd025411abc4bba8517a8d581aed226c"
},
"powerpc64le_linux_gnu": {
"etag": "0x8DDBA3D4DECB971",
"hash": "98a9d625e614d16fbb6e467777282a0a43ab1505fcc1a77c0b97aafab1d9baf8"
},
"s390x_linux_gnu": {
"etag": "0x8DDBA3D4FB6EB18",
"hash": "4a8249d6fc7a9ca80179902923d1988ce4942359cc22c5ee68131b50ebd3a3f7"
}
},
"0.64.0": {
"x86_64_linux_gnu": {
"etag": "0x8DDB87C74419214",
"hash": "e50755b3be29ae515091a45c96a2bc126846334210c30202331b797b9ae6e366"
},
"x86_64_macos": {
"etag": "0x8DDB87C72C4B5BC",
"hash": "f7c649c3e9598fde7074bb34b024d11f5b836d230c391a0cdde319db73e0fedc"
},
"x86_64_windows": {
"etag": "0x8DDB87C75CF7247",
"hash": "7f34d0cd2813cf7f89064ffbc04af891f7839f673e9a0a0505cf91391d07826e"
},
"aarch64_linux_gnu": {
"etag": "0x8DDB87C72D67BFC",
"hash": "c7e78d67af98dad178f18b4b8d20929b7f9d267e9c556f8ad815f8997035bcd9"
},
"aarch64_macos": {
"etag": "0x8DDB87C7591EB49",
"hash": "77e70dd2fdbac5986cc02a8def382bdaf78777f0050fc37af72916cc47b56a20"
},
"powerpc64le_linux_gnu": {
"etag": "0x8DDB87C7505B2B4",
"hash": "13322bad430380ed58d52cafa706dd68127a20dcba5707ecea24ee00b7ad44ba"
},
"s390x_linux_gnu": {
"etag": "0x8DDB87C7452482B",
"hash": "a13059cf174a0de9c4790bd11e1626d5529265550637474fe8442755bb73062a"
}
},
"0.63": {
"version": "0.63.0"
},
"0.63.0": {
"x86_64_linux_gnu": {
"etag": "0x8DD9EDB240EAE38",
"hash": "ea91fa393cfcb802da22832c96e99a4c8a295a8ba8faefd824c7168b7f0a741e"
},
"x86_64_macos": {
"etag": "0x8DD9EDB25C39AD1",
"hash": "01659b540a885ee9bd1273c8c75ade1ce046fc9d6e5933d5978d9125a6a1cf6c"
},
"x86_64_windows": {
"etag": "0x8DD9EDB25D2CBF6",
"hash": "33ba726ec9c37f15490efa1d51044c21f0db6acb9be56492d5e1429f404b602f"
},
"aarch64_linux_gnu": {
"etag": "0x8DD9EDB26DF8B6D",
"hash": "9aeecf81e8a1dc5625dd96a1a6fbea92a1f8e51c4160cfc0e412ef5f641ea1ac"
},
"aarch64_macos": {
"etag": "0x8DD9EDB26DD1D32",
"hash": "784f687759c647ffad54e4d7f55ed953647e4fff5ea1e38dbaf877a135254972"
},
"powerpc64le_linux_gnu": {
"etag": "0x8DD9EDB25608D60",
"hash": "f810c4fe9b3cf58022ce034db27780db3e64e91834dda23450407f1e6da13dab"
},
"s390x_linux_gnu": {
"etag": "0x8DD9EDB271FA7BE",
"hash": "af14cc441197d862d513926a7610111c8683548efb4c82202bb2d856d4603fc4"
}
},
"0.62": {
"version": "0.62.1"
},
"0.62.1": {
"x86_64_linux_gnu": {
"etag": "0x8DD8CD66B2C973F",
"hash": "7da92b2ca503d08eb15e717585fa4ffb95ef2c5dc4c554204882d7d26d386a6a"
},
"x86_64_macos": {
"etag": "0x8DD8CD66B02A920",
"hash": "819bf4dad9c3bb4e78bbd11d08b61bdc4663b33777121b3f43372986f7cb3d3e"
},
"x86_64_windows": {
"etag": "0x8DD8CD66CA4E62B",
"hash": "f6d9b422f10af2d7a21b4924d36400d8a76932c9159b5feefaa8aee3e45a82bd"
},
"aarch64_linux_gnu": {
"etag": "0x8DD8CD669AB51A2",
"hash": "50e13c5cdd3e3b610e0dc554e3bc58bc6f58eabe3e42a6b28961a23ac6eff0df"
},
"aarch64_macos": {
"etag": "0x8DD8CD66C735F7B",
"hash": "0bbfa581a4139c6fef21f4129233ae6f02a9f4b53039327e62eccd7956af2ba1"
},
"powerpc64le_linux_gnu": {
"etag": "0x8DD8CD66C56CFD2",
"hash": "682f1b82e1def454a231f1aef7cadc58cf15aca48b8837caaec49cb41d8b5d2f"
},
"s390x_linux_gnu": {
"etag": "0x8DD8CD66981D82D",
"hash": "e36efe2d7b421960fd58e635e77f850e2a9934001c2033dc48431f5727e1b3b5"
}
},
"0.62.0": {
"x86_64_linux_gnu": {
"etag": "0x8DD880CCF3EE84C",
"hash": "1be4420999ffde59b9a6900f2c2481a2f4e50fd2e0ac738ad028944563ee6c60"
},
"x86_64_macos": {
"etag": "0x8DD880CCD4C9C5F",
"hash": "8f6d54c7de5c7247bb92b51d29d2542be8006111515ceaf50fe8185adb59ad89"
},
"x86_64_windows": {
"etag": "0x8DD880CCD7359BB",
"hash": "b30da5d15587824335cbb88a62585f00a3aac18f3f754d3ad74d68327e2efc46"
},
"aarch64_linux_gnu": {
"etag": "0x8DD880CCF085E40",
"hash": "82c8acca00390bf5e014b26abb03e24ba754824c4f87ead5564cd56375df07c1"
},
"aarch64_macos": {
"etag": "0x8DD880CCF853F18",
"hash": "727a8865c2caf6841a1f4668fd7702f442ae088fd08e3c3719e4f731c1f11333"
},
"powerpc64le_linux_gnu": {
"etag": "0x8DD880CD0DCBCA1",
"hash": "fba4b69f5d3a792dc21b93e88c9304329e711eec699dd9b2067dca0297ff92b5"
},
"s390x_linux_gnu": {
"etag": "0x8DD880CCD7DD530",
"hash": "a11cbdbb1b72f041f39004610a20a0b7f4b2aad4788dbd735b33b58e58190aca"
}
}
}

View File

@@ -1,6 +1,6 @@
{
"repository": "https://github.com/knope-dev/knope",
"tag_prefix": "knope/v",
"tag_prefix": ["knope/v", "v"],
"rust_crate": "${package}",
"asset_name": "${package}-${rust_target}.tgz",
"bin": "${package}-${rust_target}/${package}${exe}",

View File

@@ -1,6 +1,6 @@
{
"repository": "https://github.com/wasmCloud/wasmCloud",
"tag_prefix": "wash-v",
"tag_prefix": ["wash-v", "wash-cli-v"],
"rust_crate": "${package}",
"asset_name": "${package}-${rust_target}${exe}",
"signing": {

View File

@@ -52,7 +52,7 @@ fn main() {
base_info.validate();
let repo = base_info
.repository
.strip_prefix("https://github.com/")
.strip_prefix(GITHUB_START)
.context("repository must start with https://github.com/")
.unwrap();
@@ -69,7 +69,7 @@ fn main() {
"{GITHUB_API_START}repos/{repo}/releases?per_page={per_page}&page={page}"
));
// If version_req is latest, it is usually sufficient to look at the latest 100 releases.
if r.len() < per_page || version_req.is_some_and(|req| req == "latest") {
if r.len() < per_page {
releases.append(&mut r);
break;
}
@@ -146,12 +146,19 @@ fn main() {
match serde_json::from_slice(&fs::read(manifest_path).unwrap()) {
Ok(m) => {
manifests = m;
for (k, manifest) in &mut manifests.map {
let ManifestRef::Real(manifest) = manifest else {
continue;
};
let version = &*k.0.to_string();
if let Some(template) = &manifests.template {
manifests.map.retain(|v, m| match v.0.to_semver() {
Some(v) => releases.contains_key(&Reverse(v.clone())),
None => {
let ManifestRef::Ref { version } = m else { unreachable!() };
releases.contains_key(&Reverse(version.to_semver().unwrap()))
}
});
if let Some(template) = &manifests.template {
for (k, manifest) in &mut manifests.map {
let ManifestRef::Real(manifest) = manifest else {
continue;
};
let version = &*k.0.to_string();
#[allow(clippy::literal_string_with_formatting_args)]
for (platform, d) in &mut manifest.download_info {
let template = &template.download_info[platform];
@@ -961,6 +968,7 @@ struct GitHubTokens {
// https://github.com/*/*/releases/download/
other: RwLock<Option<String>>,
}
const GITHUB_START: &str = "https://github.com/";
const GITHUB_API_START: &str = "https://api.github.com/";
const GITHUB_RAW_START: &str = "https://raw.githubusercontent.com/";
impl GitHubTokens {
@@ -969,7 +977,7 @@ impl GitHubTokens {
self.raw.read().unwrap().clone()
} else if url.starts_with(GITHUB_API_START) {
self.api.read().unwrap().clone()
} else if url.starts_with("https://github.com/") {
} else if url.starts_with(GITHUB_START) {
self.other.read().unwrap().clone()
} else {
None
@@ -980,7 +988,7 @@ impl GitHubTokens {
*self.raw.write().unwrap() = None;
} else if url.starts_with(GITHUB_API_START) {
*self.api.write().unwrap() = None;
} else if url.starts_with("https://github.com/") {
} else if url.starts_with(GITHUB_START) {
*self.other.write().unwrap() = None;
}
}