Compare commits
191 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6b020dcb5f | ||
|
|
7735d988c2 | ||
|
|
b1c438e45d | ||
|
|
113a6a2593 | ||
|
|
6a4f724ca6 | ||
|
|
0e25bd8416 | ||
|
|
175f68dacc | ||
|
|
e1b4350c60 | ||
|
|
0dd731c97a | ||
|
|
390084ea84 | ||
|
|
50fee370fb | ||
|
|
38aa026d97 | ||
|
|
d6de532537 | ||
|
|
62fc276169 | ||
|
|
344dbdb9dc | ||
|
|
c59155252c | ||
|
|
b4901a73b4 | ||
|
|
3e7b0b1fc0 | ||
|
|
7de38a449e | ||
|
|
598ee76eb5 | ||
|
|
c0802dd0a0 | ||
|
|
c3d1cd7711 | ||
|
|
2f1916fd72 | ||
|
|
dabf20b4a3 | ||
|
|
964c3b5ae3 | ||
|
|
18d695c762 | ||
|
|
3c03d1910f | ||
|
|
ad1a5ac48b | ||
|
|
9aa53743c1 | ||
|
|
28bbe39846 | ||
|
|
86b9869cba | ||
|
|
f5b8aff81f | ||
|
|
8c1bb17a01 | ||
|
|
6e93a02244 | ||
|
|
630331ba64 | ||
|
|
89e1efc290 | ||
|
|
1cd4a5a66a | ||
|
|
3d5c1a72f5 | ||
|
|
4c1404ea24 | ||
|
|
bfb1b882cf | ||
|
|
e2e67fece1 | ||
|
|
47d08eafbf | ||
|
|
b35c65c0cf | ||
|
|
34cb2176ef | ||
|
|
8d7f29fb5f | ||
|
|
52ea39a90d | ||
|
|
c9ad217b4e | ||
|
|
887bd3e2d2 | ||
|
|
b3a03f4303 | ||
|
|
834b59514f | ||
|
|
e7e22d0351 | ||
|
|
2730cbaedb | ||
|
|
25592884aa | ||
|
|
69796bb711 | ||
|
|
f576b4c55e | ||
|
|
d4016fedd1 | ||
|
|
b90db28914 | ||
|
|
4c5d0cc596 | ||
|
|
9e247bffd9 | ||
|
|
e2e567b7ff | ||
|
|
8e54dfe49a | ||
|
|
0fe236c199 | ||
|
|
d046dce429 | ||
|
|
f887624a15 | ||
|
|
b1a6006855 | ||
|
|
18ff4741ad | ||
|
|
ad48f37a53 | ||
|
|
64a97caba2 | ||
|
|
1788b15091 | ||
|
|
b647608edd | ||
|
|
5461b12028 | ||
|
|
4234ae887e | ||
|
|
6b70c3ac3a | ||
|
|
fc54adf38a | ||
|
|
638fb92de8 | ||
|
|
ab22ca5180 | ||
|
|
76d6a50711 | ||
|
|
10d53b02ad | ||
|
|
29f6dfe684 | ||
|
|
60efcc66f6 | ||
|
|
8b91e0fb97 | ||
|
|
95cf5badfe | ||
|
|
5ce6d8499c | ||
|
|
cd33c690bf | ||
|
|
aef1d233d6 | ||
|
|
56d608e044 | ||
|
|
40bb1df6da | ||
|
|
a1e2d6a054 | ||
|
|
5e187be740 | ||
|
|
eb2beba50e | ||
|
|
bc2e9f0a20 | ||
|
|
31584ad49f | ||
|
|
4c3e16190f | ||
|
|
b46b0e4e98 | ||
|
|
cbbecf4971 | ||
|
|
365134329e | ||
|
|
cde20d56a4 | ||
|
|
9e00c79a5a | ||
|
|
dde76171da | ||
|
|
161311a2ae | ||
|
|
81bd676284 | ||
|
|
3da460dafc | ||
|
|
91c970e007 | ||
|
|
a4ec5f5780 | ||
|
|
9242fb9941 | ||
|
|
38434e8823 | ||
|
|
be7208651f | ||
|
|
78126ab93d | ||
|
|
9b59922400 | ||
|
|
fbbcb5d563 | ||
|
|
82c75d6f0c | ||
|
|
629e3bad0b | ||
|
|
d74bc4420e | ||
|
|
7f3ea34932 | ||
|
|
4ed493883c | ||
|
|
f44e3f98d2 | ||
|
|
512a30b8f2 | ||
|
|
c6393e7db0 | ||
|
|
ed92d5bfc1 | ||
|
|
51b8539246 | ||
|
|
13b1e23099 | ||
|
|
a77c02abb5 | ||
|
|
e459d51261 | ||
|
|
2c17edf5bb | ||
|
|
8b5d8e53b6 | ||
|
|
0cad5b4863 | ||
|
|
a5c22330fd | ||
|
|
9505deb078 | ||
|
|
af784a2022 | ||
|
|
afcc1c08a8 | ||
|
|
af0890ba7a | ||
|
|
c4109c3fc2 | ||
|
|
e314ca9bb5 | ||
|
|
29efe4d6a8 | ||
|
|
aacbc67b8d | ||
|
|
d71b84aad5 | ||
|
|
ea05649ce1 | ||
|
|
012ae0603d | ||
|
|
6194cf96c1 | ||
|
|
e804b694a2 | ||
|
|
d2a882884d | ||
|
|
d820ad4123 | ||
|
|
a5d905690f | ||
|
|
6233293ae6 | ||
|
|
9d10fe0e06 | ||
|
|
a8dc8088d4 | ||
|
|
4bc2c14908 | ||
|
|
ad2312d5f1 | ||
|
|
21e2b75b0b | ||
|
|
4d926d8b7b | ||
|
|
293c3cdcfe | ||
|
|
17071615a7 | ||
|
|
0cc9e68b03 | ||
|
|
b732db2937 | ||
|
|
8696544f14 | ||
|
|
d92ed04680 | ||
|
|
3bb4ae38ea | ||
|
|
09c0f6a78e | ||
|
|
3c25c1eed2 | ||
|
|
ee671ae33e | ||
|
|
960acb25ae | ||
|
|
1ff078d955 | ||
|
|
abe7883e9a | ||
|
|
c16b4fdf35 | ||
|
|
211c9b2312 | ||
|
|
a30e0f51eb | ||
|
|
61c3c53dbf | ||
|
|
91a5724116 | ||
|
|
9998df7a3d | ||
|
|
3d448bd483 | ||
|
|
51cc1b5526 | ||
|
|
58584e3d97 | ||
|
|
f06e39e022 | ||
|
|
4c705618e1 | ||
|
|
1ebb922e84 | ||
|
|
9e446b0b90 | ||
|
|
d682d6d4a5 | ||
|
|
ca5ab569e5 | ||
|
|
5b2d914820 | ||
|
|
b873721f89 | ||
|
|
c975cd6494 | ||
|
|
a0a3952b2d | ||
|
|
4af1413de8 | ||
|
|
83a4cb6e7f | ||
|
|
9edbb73678 | ||
|
|
6fc9119f7e | ||
|
|
b2caa9ae45 | ||
|
|
80446a55b4 | ||
|
|
c7c816aa2f | ||
|
|
3f87521aad | ||
|
|
c186677904 |
650
.github/buildx-releases.json
vendored
650
.github/buildx-releases.json
vendored
@@ -1,150 +1,520 @@
|
||||
{
|
||||
"latest": {
|
||||
"id": 280887108,
|
||||
"tag_name": "v0.31.1",
|
||||
"html_url": "https://github.com/docker/buildx/releases/tag/v0.31.1",
|
||||
"id": 303766308,
|
||||
"tag_name": "v0.33.0",
|
||||
"html_url": "https://github.com/docker/buildx/releases/tag/v0.33.0",
|
||||
"assets": [
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.darwin-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.darwin-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.darwin-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.darwin-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.darwin-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.darwin-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.freebsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.freebsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.freebsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.freebsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.freebsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.freebsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.freebsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.freebsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-arm-v6",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-arm-v6.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-arm-v6.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-arm-v6.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-arm-v7",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-arm-v7.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-arm-v7.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-arm-v7.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-ppc64le",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-ppc64le.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-riscv64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-riscv64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-s390x",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-s390x.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-s390x.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.linux-s390x.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.netbsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.netbsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.netbsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.netbsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.netbsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.netbsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.netbsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.netbsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.openbsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.openbsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.openbsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.openbsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.openbsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.openbsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.openbsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.openbsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.windows-amd64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.windows-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.windows-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.windows-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.windows-arm64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.windows-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.windows-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/buildx-v0.31.1.windows-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.31.1/checksums.txt"
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.darwin-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.darwin-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.darwin-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.darwin-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.darwin-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.darwin-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v6",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v6.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v6.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v6.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v7",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v7.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v7.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v7.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-ppc64le",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-ppc64le.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-riscv64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-riscv64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-s390x",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-s390x.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-s390x.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-s390x.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-amd64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-arm64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/checksums.txt"
|
||||
]
|
||||
},
|
||||
"v0.33.0": {
|
||||
"id": 303766308,
|
||||
"tag_name": "v0.33.0",
|
||||
"html_url": "https://github.com/docker/buildx/releases/tag/v0.33.0",
|
||||
"assets": [
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.darwin-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.darwin-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.darwin-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.darwin-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.darwin-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.darwin-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v6",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v6.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v6.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v6.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v7",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v7.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v7.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v7.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-ppc64le",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-ppc64le.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-riscv64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-riscv64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-s390x",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-s390x.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-s390x.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-s390x.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-amd64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-arm64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/checksums.txt"
|
||||
]
|
||||
},
|
||||
"edge": {
|
||||
"id": 290111799,
|
||||
"tag_name": "v0.32.0-rc1",
|
||||
"html_url": "https://github.com/docker/buildx/releases/tag/v0.32.0-rc1",
|
||||
"id": 303766308,
|
||||
"tag_name": "v0.33.0",
|
||||
"html_url": "https://github.com/docker/buildx/releases/tag/v0.33.0",
|
||||
"assets": [
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.darwin-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.darwin-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.darwin-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.darwin-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.darwin-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.darwin-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.freebsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.freebsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.freebsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.freebsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.freebsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.freebsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.freebsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.freebsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-arm-v6",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-arm-v6.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-arm-v6.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-arm-v6.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-arm-v7",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-arm-v7.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-arm-v7.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-arm-v7.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-ppc64le",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-ppc64le.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-riscv64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-riscv64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-s390x",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-s390x.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-s390x.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.linux-s390x.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.netbsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.netbsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.netbsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.netbsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.netbsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.netbsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.netbsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.netbsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.openbsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.openbsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.openbsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.openbsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.openbsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.openbsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.openbsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.openbsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.windows-amd64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.windows-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.windows-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.windows-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.windows-arm64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.windows-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.windows-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/buildx-v0.32.0-rc1.windows-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc1/checksums.txt"
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.darwin-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.darwin-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.darwin-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.darwin-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.darwin-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.darwin-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.freebsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v6",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v6.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v6.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v6.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v7",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v7.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v7.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm-v7.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-ppc64le",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-ppc64le.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-riscv64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-riscv64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-s390x",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-s390x.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-s390x.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.linux-s390x.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.netbsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.openbsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-amd64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-arm64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/buildx-v0.33.0.windows-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0/checksums.txt"
|
||||
]
|
||||
},
|
||||
"v0.33.0-rc1": {
|
||||
"id": 301579825,
|
||||
"tag_name": "v0.33.0-rc1",
|
||||
"html_url": "https://github.com/docker/buildx/releases/tag/v0.33.0-rc1",
|
||||
"assets": [
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.darwin-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.darwin-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.darwin-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.darwin-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.darwin-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.darwin-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.freebsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.freebsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.freebsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.freebsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.freebsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.freebsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.freebsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.freebsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-arm-v6",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-arm-v6.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-arm-v6.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-arm-v6.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-arm-v7",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-arm-v7.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-arm-v7.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-arm-v7.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-ppc64le",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-ppc64le.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-riscv64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-riscv64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-s390x",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-s390x.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-s390x.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.linux-s390x.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.netbsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.netbsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.netbsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.netbsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.netbsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.netbsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.netbsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.netbsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.openbsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.openbsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.openbsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.openbsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.openbsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.openbsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.openbsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.openbsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.windows-amd64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.windows-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.windows-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.windows-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.windows-arm64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.windows-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.windows-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/buildx-v0.33.0-rc1.windows-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.33.0-rc1/checksums.txt"
|
||||
]
|
||||
},
|
||||
"v0.32.1": {
|
||||
"id": 293153745,
|
||||
"tag_name": "v0.32.1",
|
||||
"html_url": "https://github.com/docker/buildx/releases/tag/v0.32.1",
|
||||
"assets": [
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.darwin-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.darwin-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.darwin-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.darwin-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.darwin-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.darwin-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.freebsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.freebsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.freebsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.freebsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.freebsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.freebsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.freebsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.freebsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-arm-v6",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-arm-v6.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-arm-v6.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-arm-v6.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-arm-v7",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-arm-v7.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-arm-v7.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-arm-v7.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-ppc64le",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-ppc64le.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-riscv64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-riscv64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-s390x",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-s390x.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-s390x.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-s390x.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.netbsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.netbsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.netbsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.netbsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.netbsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.netbsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.netbsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.netbsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.openbsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.openbsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.openbsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.openbsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.openbsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.openbsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.openbsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.openbsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.windows-amd64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.windows-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.windows-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.windows-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.windows-arm64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.windows-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.windows-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.windows-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.1/checksums.txt"
|
||||
]
|
||||
},
|
||||
"v0.32.0": {
|
||||
"id": 292739715,
|
||||
"tag_name": "v0.32.0",
|
||||
"html_url": "https://github.com/docker/buildx/releases/tag/v0.32.0",
|
||||
"assets": [
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.darwin-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.darwin-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.darwin-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.darwin-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.darwin-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.darwin-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.freebsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.freebsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.freebsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.freebsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.freebsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.freebsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.freebsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.freebsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-arm-v6",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-arm-v6.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-arm-v6.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-arm-v6.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-arm-v7",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-arm-v7.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-arm-v7.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-arm-v7.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-ppc64le",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-ppc64le.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-riscv64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-riscv64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-s390x",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-s390x.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-s390x.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.linux-s390x.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.netbsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.netbsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.netbsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.netbsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.netbsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.netbsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.netbsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.netbsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.openbsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.openbsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.openbsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.openbsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.openbsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.openbsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.openbsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.openbsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.windows-amd64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.windows-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.windows-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.windows-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.windows-arm64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.windows-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.windows-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/buildx-v0.32.0.windows-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0/checksums.txt"
|
||||
]
|
||||
},
|
||||
"v0.32.0-rc2": {
|
||||
"id": 291436359,
|
||||
"tag_name": "v0.32.0-rc2",
|
||||
"html_url": "https://github.com/docker/buildx/releases/tag/v0.32.0-rc2",
|
||||
"assets": [
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.darwin-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.darwin-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.darwin-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.darwin-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.darwin-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.darwin-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.freebsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.freebsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.freebsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.freebsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.freebsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.freebsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.freebsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.freebsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-arm-v6",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-arm-v6.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-arm-v6.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-arm-v6.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-arm-v7",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-arm-v7.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-arm-v7.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-arm-v7.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-ppc64le",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-ppc64le.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-riscv64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-riscv64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-s390x",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-s390x.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-s390x.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.linux-s390x.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.netbsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.netbsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.netbsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.netbsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.netbsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.netbsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.netbsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.netbsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.openbsd-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.openbsd-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.openbsd-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.openbsd-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.openbsd-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.openbsd-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.openbsd-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.openbsd-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.windows-amd64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.windows-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.windows-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.windows-amd64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.windows-arm64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.windows-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.windows-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/buildx-v0.32.0-rc2.windows-arm64.sigstore.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.32.0-rc2/checksums.txt"
|
||||
]
|
||||
},
|
||||
"v0.32.0-rc1": {
|
||||
|
||||
425
.github/compose-releases.json
vendored
425
.github/compose-releases.json
vendored
@@ -1,65 +1,254 @@
|
||||
{
|
||||
"latest": {
|
||||
"id": 289948555,
|
||||
"tag_name": "v5.1.0",
|
||||
"html_url": "https://github.com/docker/compose/releases/tag/v5.1.0",
|
||||
"id": 309393346,
|
||||
"tag_name": "v5.1.3",
|
||||
"html_url": "https://github.com/docker/compose/releases/tag/v5.1.3",
|
||||
"assets": [
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/checksums.txt",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-darwin-aarch64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-darwin-aarch64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-darwin-aarch64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-darwin-aarch64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-darwin-aarch64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-darwin-x86_64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-darwin-x86_64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-darwin-x86_64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-darwin-x86_64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-darwin-x86_64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-aarch64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-aarch64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-aarch64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-aarch64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-aarch64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-armv6",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-armv6.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-armv6.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-armv6.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-armv6.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-armv7",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-armv7.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-armv7.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-armv7.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-armv7.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-ppc64le",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-ppc64le.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-ppc64le.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-riscv64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-riscv64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-riscv64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-s390x",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-s390x.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-s390x.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-s390x.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-s390x.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-x86_64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-x86_64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-x86_64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-x86_64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-x86_64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-windows-aarch64.exe",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-windows-aarch64.exe.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-windows-aarch64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-windows-aarch64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-windows-aarch64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-windows-x86_64.exe",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-windows-x86_64.exe.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-windows-x86_64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-windows-x86_64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-windows-x86_64.sigstore.json"
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/checksums.txt",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-aarch64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-aarch64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-aarch64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-aarch64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-aarch64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-x86_64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-x86_64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-x86_64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-x86_64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-x86_64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-aarch64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-aarch64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-aarch64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-aarch64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-aarch64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv6",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv6.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv6.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv6.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv6.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv7",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv7.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv7.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv7.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv7.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-ppc64le",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-ppc64le.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-ppc64le.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-riscv64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-riscv64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-riscv64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-s390x",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-s390x.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-s390x.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-s390x.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-s390x.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-x86_64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-x86_64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-x86_64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-x86_64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-x86_64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-aarch64.exe",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-aarch64.exe.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-aarch64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-aarch64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-aarch64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-x86_64.exe",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-x86_64.exe.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-x86_64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-x86_64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-x86_64.sigstore.json"
|
||||
]
|
||||
},
|
||||
"v5.1.3": {
|
||||
"id": 309393346,
|
||||
"tag_name": "v5.1.3",
|
||||
"html_url": "https://github.com/docker/compose/releases/tag/v5.1.3",
|
||||
"assets": [
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/checksums.txt",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-aarch64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-aarch64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-aarch64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-aarch64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-aarch64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-x86_64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-x86_64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-x86_64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-x86_64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-x86_64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-aarch64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-aarch64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-aarch64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-aarch64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-aarch64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv6",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv6.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv6.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv6.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv6.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv7",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv7.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv7.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv7.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv7.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-ppc64le",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-ppc64le.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-ppc64le.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-riscv64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-riscv64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-riscv64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-s390x",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-s390x.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-s390x.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-s390x.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-s390x.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-x86_64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-x86_64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-x86_64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-x86_64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-x86_64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-aarch64.exe",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-aarch64.exe.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-aarch64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-aarch64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-aarch64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-x86_64.exe",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-x86_64.exe.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-x86_64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-x86_64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-x86_64.sigstore.json"
|
||||
]
|
||||
},
|
||||
"v5.1.2": {
|
||||
"id": 306957188,
|
||||
"tag_name": "v5.1.2",
|
||||
"html_url": "https://github.com/docker/compose/releases/tag/v5.1.2",
|
||||
"assets": [
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/checksums.txt",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-darwin-aarch64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-darwin-aarch64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-darwin-aarch64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-darwin-aarch64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-darwin-aarch64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-darwin-x86_64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-darwin-x86_64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-darwin-x86_64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-darwin-x86_64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-darwin-x86_64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-aarch64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-aarch64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-aarch64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-aarch64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-aarch64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-armv6",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-armv6.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-armv6.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-armv6.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-armv6.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-armv7",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-armv7.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-armv7.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-armv7.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-armv7.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-ppc64le",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-ppc64le.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-ppc64le.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-riscv64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-riscv64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-riscv64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-s390x",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-s390x.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-s390x.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-s390x.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-s390x.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-x86_64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-x86_64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-x86_64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-x86_64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-x86_64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-windows-aarch64.exe",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-windows-aarch64.exe.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-windows-aarch64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-windows-aarch64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-windows-aarch64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-windows-x86_64.exe",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-windows-x86_64.exe.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-windows-x86_64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-windows-x86_64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-windows-x86_64.sigstore.json"
|
||||
]
|
||||
},
|
||||
"v5.1.1": {
|
||||
"id": 299261182,
|
||||
"tag_name": "v5.1.1",
|
||||
"html_url": "https://github.com/docker/compose/releases/tag/v5.1.1",
|
||||
"assets": [
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/checksums.txt",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-darwin-aarch64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-darwin-aarch64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-darwin-aarch64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-darwin-aarch64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-darwin-aarch64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-darwin-x86_64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-darwin-x86_64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-darwin-x86_64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-darwin-x86_64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-darwin-x86_64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-aarch64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-aarch64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-aarch64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-aarch64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-aarch64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-armv6",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-armv6.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-armv6.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-armv6.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-armv6.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-armv7",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-armv7.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-armv7.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-armv7.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-armv7.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-ppc64le",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-ppc64le.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-ppc64le.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-riscv64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-riscv64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-riscv64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-s390x",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-s390x.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-s390x.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-s390x.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-s390x.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-x86_64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-x86_64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-x86_64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-x86_64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-linux-x86_64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-windows-aarch64.exe",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-windows-aarch64.exe.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-windows-aarch64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-windows-aarch64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-windows-aarch64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-windows-x86_64.exe",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-windows-x86_64.exe.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-windows-x86_64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-windows-x86_64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.1/docker-compose-windows-x86_64.sigstore.json"
|
||||
]
|
||||
},
|
||||
"v5.1.0": {
|
||||
@@ -282,66 +471,66 @@
|
||||
]
|
||||
},
|
||||
"edge": {
|
||||
"id": 289948555,
|
||||
"tag_name": "v5.1.0",
|
||||
"html_url": "https://github.com/docker/compose/releases/tag/v5.1.0",
|
||||
"id": 309393346,
|
||||
"tag_name": "v5.1.3",
|
||||
"html_url": "https://github.com/docker/compose/releases/tag/v5.1.3",
|
||||
"assets": [
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/checksums.txt",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-darwin-aarch64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-darwin-aarch64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-darwin-aarch64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-darwin-aarch64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-darwin-aarch64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-darwin-x86_64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-darwin-x86_64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-darwin-x86_64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-darwin-x86_64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-darwin-x86_64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-aarch64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-aarch64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-aarch64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-aarch64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-aarch64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-armv6",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-armv6.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-armv6.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-armv6.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-armv6.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-armv7",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-armv7.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-armv7.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-armv7.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-armv7.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-ppc64le",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-ppc64le.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-ppc64le.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-riscv64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-riscv64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-riscv64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-s390x",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-s390x.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-s390x.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-s390x.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-s390x.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-x86_64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-x86_64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-x86_64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-x86_64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-linux-x86_64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-windows-aarch64.exe",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-windows-aarch64.exe.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-windows-aarch64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-windows-aarch64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-windows-aarch64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-windows-x86_64.exe",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-windows-x86_64.exe.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-windows-x86_64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-windows-x86_64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.0/docker-compose-windows-x86_64.sigstore.json"
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/checksums.txt",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-aarch64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-aarch64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-aarch64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-aarch64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-aarch64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-x86_64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-x86_64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-x86_64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-x86_64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-darwin-x86_64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-aarch64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-aarch64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-aarch64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-aarch64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-aarch64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv6",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv6.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv6.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv6.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv6.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv7",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv7.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv7.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv7.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-armv7.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-ppc64le",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-ppc64le.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-ppc64le.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-riscv64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-riscv64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-riscv64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-s390x",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-s390x.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-s390x.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-s390x.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-s390x.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-x86_64",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-x86_64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-x86_64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-x86_64.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-x86_64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-aarch64.exe",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-aarch64.exe.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-aarch64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-aarch64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-aarch64.sigstore.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-x86_64.exe",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-x86_64.exe.sha256",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-x86_64.provenance.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-x86_64.sbom.json",
|
||||
"https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-windows-x86_64.sigstore.json"
|
||||
]
|
||||
},
|
||||
"v5.0.0-rc.2": {
|
||||
|
||||
554
.github/cosign-releases.json
vendored
554
.github/cosign-releases.json
vendored
@@ -1,92 +1,302 @@
|
||||
{
|
||||
"latest": {
|
||||
"id": 288413621,
|
||||
"tag_name": "v3.0.5",
|
||||
"html_url": "https://github.com/sigstore/cosign/releases/tag/v3.0.5",
|
||||
"id": 305842182,
|
||||
"tag_name": "v3.0.6",
|
||||
"html_url": "https://github.com/sigstore/cosign/releases/tag/v3.0.6",
|
||||
"assets": [
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.aarch64.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.aarch64.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.armv7hl.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.armv7hl.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.ppc64le.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.ppc64le.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.riscv64.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.riscv64.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.s390x.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.s390x.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.x86_64.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.x86_64.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-darwin-amd64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-darwin-amd64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-darwin-amd64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-darwin-amd64_3.0.5_darwin_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-darwin-arm64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-darwin-arm64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-darwin-arm64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-darwin-arm64_3.0.5_darwin_arm64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-amd64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-amd64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-amd64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-amd64_3.0.5_linux_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-arm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-arm-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-arm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-arm64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-arm64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-arm64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-arm64_3.0.5_linux_arm64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-arm_3.0.5_linux_arm.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-pivkey-pkcs11key-amd64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-pivkey-pkcs11key-amd64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-pivkey-pkcs11key-amd64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-pivkey-pkcs11key-amd64_3.0.5_linux_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-pivkey-pkcs11key-arm64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-pivkey-pkcs11key-arm64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-pivkey-pkcs11key-arm64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-pivkey-pkcs11key-arm64_3.0.5_linux_arm64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-ppc64le",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-ppc64le-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-ppc64le.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-ppc64le_3.0.5_linux_ppc64le.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-riscv64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-riscv64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-riscv64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-riscv64_3.0.5_linux_riscv64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-s390x",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-s390x-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-s390x.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-s390x_3.0.5_linux_s390x.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-windows-amd64.exe",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-windows-amd64.exe-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-windows-amd64.exe.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-windows-amd64.exe_3.0.5_windows_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_aarch64.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_aarch64.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_amd64.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_amd64.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_arm64.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_arm64.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_armhf.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_armhf.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_armv7.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_armv7.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_ppc64el.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_ppc64el.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_ppc64le.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_ppc64le.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_riscv64.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_riscv64.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_riscv64.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_riscv64.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_s390x.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_s390x.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_s390x.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_s390x.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_x86_64.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_x86_64.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_checksums.txt",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_checksums.txt.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/release-cosign.pub"
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.aarch64.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.aarch64.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.armv7hl.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.armv7hl.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.ppc64le.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.ppc64le.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.riscv64.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.riscv64.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.s390x.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.s390x.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.x86_64.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.x86_64.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-amd64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-amd64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-amd64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-amd64_3.0.6_darwin_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-arm64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-arm64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-arm64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-arm64_3.0.6_darwin_arm64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-amd64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-amd64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-amd64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-amd64_3.0.6_linux_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm64_3.0.6_linux_arm64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm_3.0.6_linux_arm.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-amd64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-amd64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-amd64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-amd64_3.0.6_linux_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-arm64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-arm64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-arm64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-arm64_3.0.6_linux_arm64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-ppc64le",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-ppc64le-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-ppc64le.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-ppc64le_3.0.6_linux_ppc64le.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-riscv64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-riscv64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-riscv64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-riscv64_3.0.6_linux_riscv64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-s390x",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-s390x-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-s390x.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-s390x_3.0.6_linux_s390x.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-windows-amd64.exe",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-windows-amd64.exe-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-windows-amd64.exe.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-windows-amd64.exe_3.0.6_windows_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_aarch64.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_aarch64.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_amd64.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_amd64.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_arm64.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_arm64.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_armhf.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_armhf.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_armv7.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_armv7.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_ppc64el.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_ppc64el.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_ppc64le.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_ppc64le.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_riscv64.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_riscv64.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_riscv64.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_riscv64.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_s390x.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_s390x.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_s390x.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_s390x.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_x86_64.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_x86_64.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_checksums.txt",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_checksums.txt.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/release-cosign.pub"
|
||||
]
|
||||
},
|
||||
"v3.0.6": {
|
||||
"id": 305842182,
|
||||
"tag_name": "v3.0.6",
|
||||
"html_url": "https://github.com/sigstore/cosign/releases/tag/v3.0.6",
|
||||
"assets": [
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.aarch64.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.aarch64.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.armv7hl.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.armv7hl.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.ppc64le.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.ppc64le.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.riscv64.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.riscv64.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.s390x.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.s390x.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.x86_64.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.x86_64.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-amd64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-amd64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-amd64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-amd64_3.0.6_darwin_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-arm64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-arm64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-arm64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-arm64_3.0.6_darwin_arm64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-amd64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-amd64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-amd64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-amd64_3.0.6_linux_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm64_3.0.6_linux_arm64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm_3.0.6_linux_arm.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-amd64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-amd64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-amd64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-amd64_3.0.6_linux_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-arm64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-arm64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-arm64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-arm64_3.0.6_linux_arm64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-ppc64le",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-ppc64le-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-ppc64le.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-ppc64le_3.0.6_linux_ppc64le.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-riscv64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-riscv64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-riscv64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-riscv64_3.0.6_linux_riscv64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-s390x",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-s390x-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-s390x.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-s390x_3.0.6_linux_s390x.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-windows-amd64.exe",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-windows-amd64.exe-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-windows-amd64.exe.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-windows-amd64.exe_3.0.6_windows_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_aarch64.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_aarch64.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_amd64.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_amd64.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_arm64.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_arm64.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_armhf.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_armhf.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_armv7.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_armv7.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_ppc64el.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_ppc64el.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_ppc64le.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_ppc64le.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_riscv64.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_riscv64.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_riscv64.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_riscv64.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_s390x.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_s390x.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_s390x.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_s390x.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_x86_64.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_x86_64.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_checksums.txt",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_checksums.txt.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/release-cosign.pub"
|
||||
]
|
||||
},
|
||||
"v2.6.3": {
|
||||
"id": 305838705,
|
||||
"tag_name": "v2.6.3",
|
||||
"html_url": "https://github.com/sigstore/cosign/releases/tag/v2.6.3",
|
||||
"assets": [
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-2.6.3-1.aarch64.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-2.6.3-1.aarch64.rpm-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-2.6.3-1.aarch64.rpm-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-2.6.3-1.armv7hl.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-2.6.3-1.armv7hl.rpm-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-2.6.3-1.armv7hl.rpm-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-2.6.3-1.ppc64le.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-2.6.3-1.ppc64le.rpm-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-2.6.3-1.ppc64le.rpm-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-2.6.3-1.riscv64.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-2.6.3-1.riscv64.rpm-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-2.6.3-1.riscv64.rpm-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-2.6.3-1.s390x.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-2.6.3-1.s390x.rpm-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-2.6.3-1.s390x.rpm-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-2.6.3-1.x86_64.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-2.6.3-1.x86_64.rpm-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-2.6.3-1.x86_64.rpm-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-darwin-amd64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-darwin-amd64-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-darwin-amd64-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-darwin-amd64.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-darwin-amd64_2.6.3_darwin_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-darwin-arm64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-darwin-arm64-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-darwin-arm64-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-darwin-arm64.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-darwin-arm64_2.6.3_darwin_arm64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-amd64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-amd64-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-amd64-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-amd64.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-amd64_2.6.3_linux_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-arm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-arm-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-arm-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-arm.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-arm64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-arm64-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-arm64-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-arm64.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-arm64_2.6.3_linux_arm64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-arm_2.6.3_linux_arm.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-pivkey-pkcs11key-amd64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-pivkey-pkcs11key-amd64-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-pivkey-pkcs11key-amd64-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-pivkey-pkcs11key-amd64.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-pivkey-pkcs11key-amd64_2.6.3_linux_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-pivkey-pkcs11key-arm64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-pivkey-pkcs11key-arm64-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-pivkey-pkcs11key-arm64-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-pivkey-pkcs11key-arm64.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-pivkey-pkcs11key-arm64_2.6.3_linux_arm64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-ppc64le",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-ppc64le-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-ppc64le-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-ppc64le.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-ppc64le_2.6.3_linux_ppc64le.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-riscv64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-riscv64-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-riscv64-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-riscv64.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-riscv64_2.6.3_linux_riscv64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-s390x",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-s390x-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-s390x-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-s390x.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-linux-s390x_2.6.3_linux_s390x.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-windows-amd64.exe",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-windows-amd64.exe-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-windows-amd64.exe-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-windows-amd64.exe.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign-windows-amd64.exe_2.6.3_windows_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_aarch64.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_aarch64.apk-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_aarch64.apk-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_amd64.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_amd64.deb-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_amd64.deb-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_arm64.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_arm64.deb-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_arm64.deb-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_armhf.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_armhf.deb-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_armhf.deb-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_armv7.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_armv7.apk-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_armv7.apk-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_ppc64el.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_ppc64el.deb-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_ppc64el.deb-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_ppc64le.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_ppc64le.apk-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_ppc64le.apk-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_riscv64.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_riscv64.apk-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_riscv64.apk-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_riscv64.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_riscv64.deb-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_riscv64.deb-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_s390x.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_s390x.apk-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_s390x.apk-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_s390x.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_s390x.deb-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_s390x.deb-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_x86_64.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_x86_64.apk-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_2.6.3_x86_64.apk-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_checksums.txt",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_checksums.txt-keyless.pem",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/cosign_checksums.txt-keyless.sig",
|
||||
"https://github.com/sigstore/cosign/releases/download/v2.6.3/release-cosign.pub"
|
||||
]
|
||||
},
|
||||
"v3.0.5": {
|
||||
@@ -3496,93 +3706,93 @@
|
||||
]
|
||||
},
|
||||
"edge": {
|
||||
"id": 288413621,
|
||||
"tag_name": "v3.0.5",
|
||||
"html_url": "https://github.com/sigstore/cosign/releases/tag/v3.0.5",
|
||||
"id": 305842182,
|
||||
"tag_name": "v3.0.6",
|
||||
"html_url": "https://github.com/sigstore/cosign/releases/tag/v3.0.6",
|
||||
"assets": [
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.aarch64.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.aarch64.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.armv7hl.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.armv7hl.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.ppc64le.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.ppc64le.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.riscv64.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.riscv64.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.s390x.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.s390x.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.x86_64.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-3.0.5-1.x86_64.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-darwin-amd64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-darwin-amd64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-darwin-amd64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-darwin-amd64_3.0.5_darwin_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-darwin-arm64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-darwin-arm64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-darwin-arm64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-darwin-arm64_3.0.5_darwin_arm64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-amd64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-amd64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-amd64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-amd64_3.0.5_linux_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-arm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-arm-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-arm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-arm64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-arm64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-arm64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-arm64_3.0.5_linux_arm64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-arm_3.0.5_linux_arm.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-pivkey-pkcs11key-amd64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-pivkey-pkcs11key-amd64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-pivkey-pkcs11key-amd64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-pivkey-pkcs11key-amd64_3.0.5_linux_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-pivkey-pkcs11key-arm64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-pivkey-pkcs11key-arm64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-pivkey-pkcs11key-arm64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-pivkey-pkcs11key-arm64_3.0.5_linux_arm64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-ppc64le",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-ppc64le-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-ppc64le.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-ppc64le_3.0.5_linux_ppc64le.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-riscv64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-riscv64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-riscv64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-riscv64_3.0.5_linux_riscv64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-s390x",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-s390x-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-s390x.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-linux-s390x_3.0.5_linux_s390x.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-windows-amd64.exe",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-windows-amd64.exe-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-windows-amd64.exe.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign-windows-amd64.exe_3.0.5_windows_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_aarch64.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_aarch64.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_amd64.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_amd64.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_arm64.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_arm64.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_armhf.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_armhf.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_armv7.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_armv7.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_ppc64el.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_ppc64el.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_ppc64le.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_ppc64le.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_riscv64.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_riscv64.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_riscv64.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_riscv64.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_s390x.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_s390x.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_s390x.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_s390x.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_x86_64.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_3.0.5_x86_64.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_checksums.txt",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/cosign_checksums.txt.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.5/release-cosign.pub"
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.aarch64.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.aarch64.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.armv7hl.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.armv7hl.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.ppc64le.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.ppc64le.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.riscv64.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.riscv64.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.s390x.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.s390x.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.x86_64.rpm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-3.0.6-1.x86_64.rpm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-amd64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-amd64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-amd64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-amd64_3.0.6_darwin_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-arm64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-arm64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-arm64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-darwin-arm64_3.0.6_darwin_arm64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-amd64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-amd64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-amd64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-amd64_3.0.6_linux_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm64_3.0.6_linux_arm64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-arm_3.0.6_linux_arm.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-amd64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-amd64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-amd64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-amd64_3.0.6_linux_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-arm64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-arm64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-arm64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-pivkey-pkcs11key-arm64_3.0.6_linux_arm64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-ppc64le",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-ppc64le-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-ppc64le.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-ppc64le_3.0.6_linux_ppc64le.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-riscv64",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-riscv64-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-riscv64.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-riscv64_3.0.6_linux_riscv64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-s390x",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-s390x-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-s390x.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-linux-s390x_3.0.6_linux_s390x.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-windows-amd64.exe",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-windows-amd64.exe-kms.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-windows-amd64.exe.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign-windows-amd64.exe_3.0.6_windows_amd64.sbom.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_aarch64.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_aarch64.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_amd64.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_amd64.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_arm64.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_arm64.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_armhf.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_armhf.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_armv7.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_armv7.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_ppc64el.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_ppc64el.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_ppc64le.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_ppc64le.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_riscv64.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_riscv64.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_riscv64.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_riscv64.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_s390x.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_s390x.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_s390x.deb",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_s390x.deb.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_x86_64.apk",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_3.0.6_x86_64.apk.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_checksums.txt",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/cosign_checksums.txt.sigstore.json",
|
||||
"https://github.com/sigstore/cosign/releases/download/v3.0.6/release-cosign.pub"
|
||||
]
|
||||
},
|
||||
"v2.0.0-rc.3": {
|
||||
|
||||
8
.github/dependabot.yml
vendored
8
.github/dependabot.yml
vendored
@@ -5,6 +5,12 @@ updates:
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
groups:
|
||||
crazy-max-dot-github:
|
||||
patterns:
|
||||
- "crazy-max/.github/*"
|
||||
cooldown:
|
||||
default-days: 2
|
||||
labels:
|
||||
- "dependencies"
|
||||
- "bot"
|
||||
@@ -13,6 +19,8 @@ updates:
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
cooldown:
|
||||
default-days: 2
|
||||
versioning-strategy: "increase"
|
||||
allow:
|
||||
- dependency-type: "production"
|
||||
|
||||
54
.github/docker-releases.json
vendored
54
.github/docker-releases.json
vendored
@@ -1,8 +1,50 @@
|
||||
{
|
||||
"latest": {
|
||||
"id": 282275652,
|
||||
"tag_name": "docker-v29.2.1",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/docker-v29.2.1",
|
||||
"id": 311295981,
|
||||
"tag_name": "docker-v29.4.1",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/docker-v29.4.1",
|
||||
"assets": []
|
||||
},
|
||||
"v29.4.1": {
|
||||
"id": 311295981,
|
||||
"tag_name": "docker-v29.4.1",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/docker-v29.4.1",
|
||||
"assets": []
|
||||
},
|
||||
"v29.4.0": {
|
||||
"id": 305984249,
|
||||
"tag_name": "docker-v29.4.0",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/docker-v29.4.0",
|
||||
"assets": []
|
||||
},
|
||||
"edge": {
|
||||
"id": 311295981,
|
||||
"tag_name": "docker-v29.4.1",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/docker-v29.4.1",
|
||||
"assets": []
|
||||
},
|
||||
"v29.4.0-rc.1": {
|
||||
"id": 305082087,
|
||||
"tag_name": "docker-v29.4.0-rc.1",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/docker-v29.4.0-rc.1",
|
||||
"assets": []
|
||||
},
|
||||
"v29.3.1": {
|
||||
"id": 301291796,
|
||||
"tag_name": "docker-v29.3.1",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/docker-v29.3.1",
|
||||
"assets": []
|
||||
},
|
||||
"v29.3.0": {
|
||||
"id": 293527283,
|
||||
"tag_name": "docker-v29.3.0",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/docker-v29.3.0",
|
||||
"assets": []
|
||||
},
|
||||
"v29.3.0-rc.1": {
|
||||
"id": 291481223,
|
||||
"tag_name": "docker-v29.3.0-rc.1",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/docker-v29.3.0-rc.1",
|
||||
"assets": []
|
||||
},
|
||||
"v29.2.1": {
|
||||
@@ -17,12 +59,6 @@
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/docker-v29.2.0",
|
||||
"assets": []
|
||||
},
|
||||
"edge": {
|
||||
"id": 282275652,
|
||||
"tag_name": "docker-v29.2.1",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/docker-v29.2.1",
|
||||
"assets": []
|
||||
},
|
||||
"v29.2.0-rc.2": {
|
||||
"id": 277933908,
|
||||
"tag_name": "docker-v29.2.0-rc.2",
|
||||
|
||||
97
.github/regclient-releases.json
vendored
97
.github/regclient-releases.json
vendored
@@ -1,37 +1,72 @@
|
||||
{
|
||||
"latest": {
|
||||
"id": 289583033,
|
||||
"tag_name": "v0.11.2",
|
||||
"html_url": "https://github.com/regclient/regclient/releases/tag/v0.11.2",
|
||||
"id": 308364025,
|
||||
"tag_name": "v0.11.3",
|
||||
"html_url": "https://github.com/regclient/regclient/releases/tag/v0.11.3",
|
||||
"assets": [
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/metadata.tgz",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regbot-darwin-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regbot-darwin-arm64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regbot-freebsd-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regbot-linux-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regbot-linux-arm64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regbot-linux-ppc64le",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regbot-linux-riscv64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regbot-linux-s390x",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regbot-windows-amd64.exe",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regctl-darwin-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regctl-darwin-arm64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regctl-freebsd-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regctl-linux-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regctl-linux-arm64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regctl-linux-ppc64le",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regctl-linux-riscv64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regctl-linux-s390x",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regctl-windows-amd64.exe",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regsync-darwin-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regsync-darwin-arm64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regsync-freebsd-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regsync-linux-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regsync-linux-arm64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regsync-linux-ppc64le",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regsync-linux-riscv64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regsync-linux-s390x",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.2/regsync-windows-amd64.exe"
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/metadata.tgz",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regbot-darwin-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regbot-darwin-arm64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regbot-freebsd-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regbot-linux-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regbot-linux-arm64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regbot-linux-ppc64le",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regbot-linux-riscv64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regbot-linux-s390x",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regbot-windows-amd64.exe",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regctl-darwin-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regctl-darwin-arm64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regctl-freebsd-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regctl-linux-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regctl-linux-arm64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regctl-linux-ppc64le",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regctl-linux-riscv64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regctl-linux-s390x",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regctl-windows-amd64.exe",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regsync-darwin-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regsync-darwin-arm64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regsync-freebsd-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regsync-linux-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regsync-linux-arm64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regsync-linux-ppc64le",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regsync-linux-riscv64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regsync-linux-s390x",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regsync-windows-amd64.exe"
|
||||
]
|
||||
},
|
||||
"v0.11.3": {
|
||||
"id": 308364025,
|
||||
"tag_name": "v0.11.3",
|
||||
"html_url": "https://github.com/regclient/regclient/releases/tag/v0.11.3",
|
||||
"assets": [
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/metadata.tgz",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regbot-darwin-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regbot-darwin-arm64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regbot-freebsd-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regbot-linux-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regbot-linux-arm64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regbot-linux-ppc64le",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regbot-linux-riscv64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regbot-linux-s390x",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regbot-windows-amd64.exe",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regctl-darwin-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regctl-darwin-arm64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regctl-freebsd-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regctl-linux-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regctl-linux-arm64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regctl-linux-ppc64le",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regctl-linux-riscv64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regctl-linux-s390x",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regctl-windows-amd64.exe",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regsync-darwin-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regsync-darwin-arm64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regsync-freebsd-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regsync-linux-amd64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regsync-linux-arm64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regsync-linux-ppc64le",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regsync-linux-riscv64",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regsync-linux-s390x",
|
||||
"https://github.com/regclient/regclient/releases/download/v0.11.3/regsync-windows-amd64.exe"
|
||||
]
|
||||
},
|
||||
"v0.11.2": {
|
||||
|
||||
204
.github/undock-releases.json
vendored
204
.github/undock-releases.json
vendored
@@ -1,46 +1,90 @@
|
||||
{
|
||||
"latest": {
|
||||
"id": 273439938,
|
||||
"tag_name": "v0.11.0",
|
||||
"html_url": "https://github.com/crazy-max/undock/releases/tag/v0.11.0",
|
||||
"id": 307426692,
|
||||
"tag_name": "v0.12.0",
|
||||
"html_url": "https://github.com/crazy-max/undock/releases/tag/v0.12.0",
|
||||
"assets": [
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/checksums.txt",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_darwin_amd64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_darwin_amd64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_darwin_amd64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_darwin_arm64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_darwin_arm64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_darwin_arm64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_amd64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_amd64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_amd64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_arm64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_arm64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_arm64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_armv5.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_armv5.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_armv5.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_armv6.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_armv6.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_armv6.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_armv7.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_armv7.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_armv7.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_ppc64le.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_ppc64le.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_ppc64le.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_riscv64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_riscv64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_riscv64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_s390x.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_s390x.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_s390x.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_windows_amd64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_windows_amd64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_windows_amd64.zip",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_windows_arm64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_windows_arm64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_windows_arm64.zip"
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/checksums.txt",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_darwin_amd64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_darwin_amd64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_darwin_amd64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_darwin_arm64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_darwin_arm64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_darwin_arm64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_amd64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_amd64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_amd64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_arm64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_arm64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_arm64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv5.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv5.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv5.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv6.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv6.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv6.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv7.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv7.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv7.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_ppc64le.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_ppc64le.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_ppc64le.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_riscv64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_riscv64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_riscv64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_s390x.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_s390x.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_s390x.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_windows_amd64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_windows_amd64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_windows_amd64.zip",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_windows_arm64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_windows_arm64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_windows_arm64.zip"
|
||||
]
|
||||
},
|
||||
"v0.12.0": {
|
||||
"id": 307426692,
|
||||
"tag_name": "v0.12.0",
|
||||
"html_url": "https://github.com/crazy-max/undock/releases/tag/v0.12.0",
|
||||
"assets": [
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/checksums.txt",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_darwin_amd64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_darwin_amd64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_darwin_amd64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_darwin_arm64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_darwin_arm64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_darwin_arm64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_amd64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_amd64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_amd64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_arm64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_arm64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_arm64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv5.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv5.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv5.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv6.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv6.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv6.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv7.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv7.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv7.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_ppc64le.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_ppc64le.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_ppc64le.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_riscv64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_riscv64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_riscv64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_s390x.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_s390x.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_s390x.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_windows_amd64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_windows_amd64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_windows_amd64.zip",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_windows_arm64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_windows_arm64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_windows_arm64.zip"
|
||||
]
|
||||
},
|
||||
"v0.11.0": {
|
||||
@@ -241,47 +285,47 @@
|
||||
]
|
||||
},
|
||||
"edge": {
|
||||
"id": 273439938,
|
||||
"tag_name": "v0.11.0",
|
||||
"html_url": "https://github.com/crazy-max/undock/releases/tag/v0.11.0",
|
||||
"id": 307426692,
|
||||
"tag_name": "v0.12.0",
|
||||
"html_url": "https://github.com/crazy-max/undock/releases/tag/v0.12.0",
|
||||
"assets": [
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/checksums.txt",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_darwin_amd64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_darwin_amd64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_darwin_amd64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_darwin_arm64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_darwin_arm64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_darwin_arm64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_amd64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_amd64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_amd64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_arm64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_arm64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_arm64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_armv5.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_armv5.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_armv5.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_armv6.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_armv6.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_armv6.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_armv7.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_armv7.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_armv7.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_ppc64le.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_ppc64le.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_ppc64le.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_riscv64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_riscv64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_riscv64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_s390x.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_s390x.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_linux_s390x.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_windows_amd64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_windows_amd64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_windows_amd64.zip",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_windows_arm64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_windows_arm64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.11.0/undock_0.11.0_windows_arm64.zip"
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/checksums.txt",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_darwin_amd64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_darwin_amd64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_darwin_amd64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_darwin_arm64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_darwin_arm64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_darwin_arm64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_amd64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_amd64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_amd64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_arm64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_arm64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_arm64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv5.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv5.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv5.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv6.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv6.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv6.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv7.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv7.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_armv7.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_ppc64le.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_ppc64le.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_ppc64le.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_riscv64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_riscv64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_riscv64.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_s390x.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_s390x.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_s390x.tar.gz",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_windows_amd64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_windows_amd64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_windows_amd64.zip",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_windows_arm64.provenance.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_windows_arm64.sbom.json",
|
||||
"https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_windows_arm64.zip"
|
||||
]
|
||||
},
|
||||
"v0.7.0-rc.1": {
|
||||
|
||||
5
.github/workflows/build.yml
vendored
5
.github/workflows/build.yml
vendored
@@ -4,6 +4,9 @@ concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
@@ -24,7 +27,7 @@ jobs:
|
||||
steps:
|
||||
-
|
||||
name: Build
|
||||
uses: docker/bake-action@v6
|
||||
uses: docker/bake-action@a66e1c87e2eca0503c343edf1d208c716d54b8a8 # v7.1.0
|
||||
with:
|
||||
targets: build
|
||||
env:
|
||||
|
||||
15
.github/workflows/buildx-lab-releases-json.yml
vendored
15
.github/workflows/buildx-lab-releases-json.yml
vendored
@@ -4,6 +4,9 @@ concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
@@ -17,25 +20,27 @@ on:
|
||||
|
||||
jobs:
|
||||
generate:
|
||||
uses: crazy-max/.github/.github/workflows/releases-json.yml@2842b806167c9dbacf5f972e0fcf47204a99d987
|
||||
uses: crazy-max/.github/.github/workflows/releases-json.yml@64a0bfaf6e6bb1c448d6e4c42b11034ee7094f16 # v1.7.1
|
||||
with:
|
||||
repository: docker/buildx-desktop
|
||||
artifact_name: buildx-lab-releases-json
|
||||
filename: buildx-lab-releases.json
|
||||
secrets: inherit
|
||||
|
||||
open-pr:
|
||||
runs-on: ubuntu-24.04
|
||||
if: github.event_name != 'pull_request'
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
needs:
|
||||
- generate
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
-
|
||||
name: Download
|
||||
uses: actions/download-artifact@v8
|
||||
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
||||
with:
|
||||
name: buildx-lab-releases-json
|
||||
path: .github
|
||||
@@ -45,7 +50,7 @@ jobs:
|
||||
git add -A .
|
||||
-
|
||||
name: Create PR
|
||||
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8.1.0
|
||||
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
|
||||
with:
|
||||
base: main
|
||||
branch: bot/buildx-lab-releases-json
|
||||
|
||||
15
.github/workflows/buildx-releases-json.yml
vendored
15
.github/workflows/buildx-releases-json.yml
vendored
@@ -4,6 +4,9 @@ concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
@@ -17,25 +20,27 @@ on:
|
||||
|
||||
jobs:
|
||||
generate:
|
||||
uses: crazy-max/.github/.github/workflows/releases-json.yml@2842b806167c9dbacf5f972e0fcf47204a99d987
|
||||
uses: crazy-max/.github/.github/workflows/releases-json.yml@64a0bfaf6e6bb1c448d6e4c42b11034ee7094f16 # v1.7.1
|
||||
with:
|
||||
repository: docker/buildx
|
||||
artifact_name: buildx-releases-json
|
||||
filename: buildx-releases.json
|
||||
secrets: inherit
|
||||
|
||||
open-pr:
|
||||
runs-on: ubuntu-24.04
|
||||
if: github.event_name != 'pull_request'
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
needs:
|
||||
- generate
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
-
|
||||
name: Download
|
||||
uses: actions/download-artifact@v8
|
||||
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
||||
with:
|
||||
name: buildx-releases-json
|
||||
path: .github
|
||||
@@ -45,7 +50,7 @@ jobs:
|
||||
git add -A .
|
||||
-
|
||||
name: Create PR
|
||||
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8.1.0
|
||||
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
|
||||
with:
|
||||
base: main
|
||||
branch: bot/buildx-releases-json
|
||||
|
||||
17
.github/workflows/codeql.yml
vendored
17
.github/workflows/codeql.yml
vendored
@@ -7,20 +7,21 @@ on:
|
||||
pull_request:
|
||||
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
security-events: write
|
||||
|
||||
env:
|
||||
NODE_VERSION: 20
|
||||
NODE_VERSION: "24"
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
security-events: write
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
-
|
||||
name: Enable corepack
|
||||
run: |
|
||||
@@ -28,19 +29,19 @@ jobs:
|
||||
yarn --version
|
||||
-
|
||||
name: Set up Node
|
||||
uses: actions/setup-node@v6
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
-
|
||||
name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v4
|
||||
uses: github/codeql-action/init@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
|
||||
with:
|
||||
languages: javascript-typescript
|
||||
-
|
||||
name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v4
|
||||
uses: github/codeql-action/autobuild@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
|
||||
-
|
||||
name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v4
|
||||
uses: github/codeql-action/analyze@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
|
||||
with:
|
||||
category: "/language:javascript-typescript"
|
||||
|
||||
15
.github/workflows/compose-lab-releases-json.yml
vendored
15
.github/workflows/compose-lab-releases-json.yml
vendored
@@ -4,6 +4,9 @@ concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
@@ -17,25 +20,27 @@ on:
|
||||
|
||||
jobs:
|
||||
generate:
|
||||
uses: crazy-max/.github/.github/workflows/releases-json.yml@2842b806167c9dbacf5f972e0fcf47204a99d987
|
||||
uses: crazy-max/.github/.github/workflows/releases-json.yml@64a0bfaf6e6bb1c448d6e4c42b11034ee7094f16 # v1.7.1
|
||||
with:
|
||||
repository: docker/compose-desktop
|
||||
artifact_name: compose-lab-releases-json
|
||||
filename: compose-lab-releases.json
|
||||
secrets: inherit
|
||||
|
||||
open-pr:
|
||||
runs-on: ubuntu-24.04
|
||||
if: github.event_name != 'pull_request'
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
needs:
|
||||
- generate
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
-
|
||||
name: Download
|
||||
uses: actions/download-artifact@v8
|
||||
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
||||
with:
|
||||
name: compose-lab-releases-json
|
||||
path: .github
|
||||
@@ -45,7 +50,7 @@ jobs:
|
||||
git add -A .
|
||||
-
|
||||
name: Create PR
|
||||
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8.1.0
|
||||
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
|
||||
with:
|
||||
base: main
|
||||
branch: bot/compose-lab-releases-json
|
||||
|
||||
15
.github/workflows/compose-releases-json.yml
vendored
15
.github/workflows/compose-releases-json.yml
vendored
@@ -4,6 +4,9 @@ concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
@@ -17,25 +20,27 @@ on:
|
||||
|
||||
jobs:
|
||||
generate:
|
||||
uses: crazy-max/.github/.github/workflows/releases-json.yml@2842b806167c9dbacf5f972e0fcf47204a99d987
|
||||
uses: crazy-max/.github/.github/workflows/releases-json.yml@64a0bfaf6e6bb1c448d6e4c42b11034ee7094f16 # v1.7.1
|
||||
with:
|
||||
repository: docker/compose
|
||||
artifact_name: compose-releases-json
|
||||
filename: compose-releases.json
|
||||
secrets: inherit
|
||||
|
||||
open-pr:
|
||||
runs-on: ubuntu-24.04
|
||||
if: github.event_name != 'pull_request'
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
needs:
|
||||
- generate
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
-
|
||||
name: Download
|
||||
uses: actions/download-artifact@v8
|
||||
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
||||
with:
|
||||
name: compose-releases-json
|
||||
path: .github
|
||||
@@ -45,7 +50,7 @@ jobs:
|
||||
git add -A .
|
||||
-
|
||||
name: Create PR
|
||||
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8.1.0
|
||||
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
|
||||
with:
|
||||
base: main
|
||||
branch: bot/compose-releases-json
|
||||
|
||||
15
.github/workflows/cosign-releases-json.yml
vendored
15
.github/workflows/cosign-releases-json.yml
vendored
@@ -4,6 +4,9 @@ concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
@@ -17,25 +20,27 @@ on:
|
||||
|
||||
jobs:
|
||||
generate:
|
||||
uses: crazy-max/.github/.github/workflows/releases-json.yml@2842b806167c9dbacf5f972e0fcf47204a99d987
|
||||
uses: crazy-max/.github/.github/workflows/releases-json.yml@64a0bfaf6e6bb1c448d6e4c42b11034ee7094f16 # v1.7.1
|
||||
with:
|
||||
repository: sigstore/cosign
|
||||
artifact_name: cosign-releases-json
|
||||
filename: cosign-releases.json
|
||||
secrets: inherit
|
||||
|
||||
open-pr:
|
||||
runs-on: ubuntu-24.04
|
||||
if: github.event_name != 'pull_request'
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
needs:
|
||||
- generate
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
-
|
||||
name: Download
|
||||
uses: actions/download-artifact@v8
|
||||
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
||||
with:
|
||||
name: cosign-releases-json
|
||||
path: .github
|
||||
@@ -45,7 +50,7 @@ jobs:
|
||||
git add -A .
|
||||
-
|
||||
name: Create PR
|
||||
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8.1.0
|
||||
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
|
||||
with:
|
||||
base: main
|
||||
branch: bot/cosign-releases-json
|
||||
|
||||
15
.github/workflows/docker-releases-json.yml
vendored
15
.github/workflows/docker-releases-json.yml
vendored
@@ -4,6 +4,9 @@ concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
@@ -17,7 +20,7 @@ on:
|
||||
|
||||
jobs:
|
||||
generate:
|
||||
uses: crazy-max/.github/.github/workflows/releases-json.yml@2842b806167c9dbacf5f972e0fcf47204a99d987
|
||||
uses: crazy-max/.github/.github/workflows/releases-json.yml@64a0bfaf6e6bb1c448d6e4c42b11034ee7094f16 # v1.7.1
|
||||
with:
|
||||
repository: moby/moby
|
||||
artifact_name: docker-releases-json
|
||||
@@ -25,20 +28,22 @@ jobs:
|
||||
tag_patterns: |
|
||||
^docker-(.*)$
|
||||
^(v.*)$
|
||||
secrets: inherit
|
||||
|
||||
open-pr:
|
||||
runs-on: ubuntu-24.04
|
||||
if: github.event_name != 'pull_request'
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
needs:
|
||||
- generate
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
-
|
||||
name: Download
|
||||
uses: actions/download-artifact@v8
|
||||
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
||||
with:
|
||||
name: docker-releases-json
|
||||
path: .github
|
||||
@@ -48,7 +53,7 @@ jobs:
|
||||
git add -A .
|
||||
-
|
||||
name: Create PR
|
||||
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8.1.0
|
||||
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
|
||||
with:
|
||||
base: main
|
||||
branch: bot/docker-releases-json
|
||||
|
||||
4
.github/workflows/pr-assign-author.yml
vendored
4
.github/workflows/pr-assign-author.yml
vendored
@@ -4,14 +4,14 @@ permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
pull_request_target: # zizmor: ignore[dangerous-triggers] does not checkout, safe to use pull_request_target
|
||||
types:
|
||||
- opened
|
||||
- reopened
|
||||
|
||||
jobs:
|
||||
run:
|
||||
uses: crazy-max/.github/.github/workflows/pr-assign-author.yml@1b673f36fad86812f538c1df9794904038a23cbf
|
||||
uses: crazy-max/.github/.github/workflows/pr-assign-author.yml@64a0bfaf6e6bb1c448d6e4c42b11034ee7094f16 # v1.7.1
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
|
||||
24
.github/workflows/publish.yml
vendored
24
.github/workflows/publish.yml
vendored
@@ -1,28 +1,30 @@
|
||||
name: publish
|
||||
|
||||
permissions:
|
||||
id-token: write # required for OIDC
|
||||
contents: write # required to create GitHub Release
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*'
|
||||
|
||||
env:
|
||||
NODE_VERSION: "24" # at least Node 24 is required for Trusted Publishing with OIDC
|
||||
NODE_VERSION: "24"
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
id-token: write # required for OIDC
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
-
|
||||
name: Enable corepack
|
||||
run: |
|
||||
@@ -30,7 +32,7 @@ jobs:
|
||||
yarn --version
|
||||
-
|
||||
name: Setup Node
|
||||
uses: actions/setup-node@v6
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
cache: 'yarn'
|
||||
@@ -51,11 +53,3 @@ jobs:
|
||||
run: |
|
||||
npm version --no-git-tag-version ${GITHUB_REF#refs/tags/v}
|
||||
npm publish --provenance --access public
|
||||
-
|
||||
name: Create Release
|
||||
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0
|
||||
with:
|
||||
draft: true
|
||||
generate_release_notes: true
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
15
.github/workflows/regclient-releases-json.yml
vendored
15
.github/workflows/regclient-releases-json.yml
vendored
@@ -4,6 +4,9 @@ concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
@@ -17,25 +20,27 @@ on:
|
||||
|
||||
jobs:
|
||||
generate:
|
||||
uses: crazy-max/.github/.github/workflows/releases-json.yml@2842b806167c9dbacf5f972e0fcf47204a99d987
|
||||
uses: crazy-max/.github/.github/workflows/releases-json.yml@64a0bfaf6e6bb1c448d6e4c42b11034ee7094f16 # v1.7.1
|
||||
with:
|
||||
repository: regclient/regclient
|
||||
artifact_name: regclient-releases-json
|
||||
filename: regclient-releases.json
|
||||
secrets: inherit
|
||||
|
||||
open-pr:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event_name != 'pull_request'
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
needs:
|
||||
- generate
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
-
|
||||
name: Download
|
||||
uses: actions/download-artifact@v8
|
||||
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
||||
with:
|
||||
name: regclient-releases-json
|
||||
path: .github
|
||||
@@ -45,7 +50,7 @@ jobs:
|
||||
git add -A .
|
||||
-
|
||||
name: Create PR
|
||||
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8.1.0
|
||||
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
|
||||
with:
|
||||
base: main
|
||||
branch: bot/regclient-releases-json
|
||||
|
||||
39
.github/workflows/test.yml
vendored
39
.github/workflows/test.yml
vendored
@@ -4,6 +4,9 @@ concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
@@ -14,9 +17,9 @@ on:
|
||||
- '.github/*-releases.json'
|
||||
|
||||
env:
|
||||
NODE_VERSION: "20"
|
||||
BUILDX_VERSION: "v0.32.0-rc1"
|
||||
BUILDKIT_IMAGE: "moby/buildkit:v0.28.0-rc1"
|
||||
NODE_VERSION: "24"
|
||||
BUILDX_VERSION: "v0.33.0"
|
||||
BUILDKIT_IMAGE: "moby/buildkit:v0.29.0"
|
||||
|
||||
jobs:
|
||||
test:
|
||||
@@ -33,10 +36,10 @@ jobs:
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
-
|
||||
name: Test
|
||||
uses: docker/bake-action@v6
|
||||
uses: docker/bake-action@a66e1c87e2eca0503c343edf1d208c716d54b8a8 # v7.1.0
|
||||
with:
|
||||
source: .
|
||||
targets: test-coverage
|
||||
@@ -55,7 +58,7 @@ jobs:
|
||||
shell: bash
|
||||
-
|
||||
name: Upload coverage
|
||||
uses: codecov/codecov-action@v5
|
||||
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
|
||||
if: env.RUN_CODECOV == 'true' && matrix.node_version == env.NODE_VERSION
|
||||
with:
|
||||
files: ./coverage/clover.xml
|
||||
@@ -69,7 +72,7 @@ jobs:
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
-
|
||||
name: Enable corepack
|
||||
run: |
|
||||
@@ -77,7 +80,7 @@ jobs:
|
||||
yarn --version
|
||||
-
|
||||
name: Setup Node
|
||||
uses: actions/setup-node@v6
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
cache: 'yarn'
|
||||
@@ -87,7 +90,7 @@ jobs:
|
||||
-
|
||||
name: Create includes
|
||||
id: set
|
||||
uses: actions/github-script@v8
|
||||
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
||||
with:
|
||||
script: |
|
||||
let tests = [];
|
||||
@@ -106,7 +109,7 @@ jobs:
|
||||
});
|
||||
await core.group(`Set includes`, async () => {
|
||||
let includes = [];
|
||||
for (const os of ['ubuntu-latest', 'ubuntu-24.04-arm', 'macos-15-intel', 'windows-latest']) {
|
||||
for (const os of ['ubuntu-latest', 'ubuntu-24.04-arm', 'macos-26-large', 'windows-latest']) {
|
||||
for (const test of tests) {
|
||||
if (test === 'docker/install.test.itg.ts') {
|
||||
if (os !== 'windows-latest') {
|
||||
@@ -153,15 +156,15 @@ jobs:
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
-
|
||||
name: Expose GitHub Runtime
|
||||
uses: crazy-max/ghaction-github-runtime@v3
|
||||
uses: crazy-max/ghaction-github-runtime@04d248b84655b509d8c44dc1d6f990c879747487 # v4.0.0
|
||||
-
|
||||
# FIXME: Needs to setup node twice on Windows: https://github.com/actions/setup-node/issues/1357#issuecomment-3254613964
|
||||
name: Setup Node
|
||||
if: startsWith(matrix.os, 'windows')
|
||||
uses: actions/setup-node@v6
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
package-manager-cache: false
|
||||
@@ -172,14 +175,14 @@ jobs:
|
||||
yarn --version
|
||||
-
|
||||
name: Setup Node
|
||||
uses: actions/setup-node@v6
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
cache: 'yarn'
|
||||
-
|
||||
name: Set up Docker Buildx
|
||||
if: startsWith(matrix.os, 'ubuntu')
|
||||
uses: docker/setup-buildx-action@v3
|
||||
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0
|
||||
with:
|
||||
version: ${{ env.BUILDX_VERSION }}
|
||||
driver: docker
|
||||
@@ -187,7 +190,7 @@ jobs:
|
||||
name: Set up container builder
|
||||
if: startsWith(matrix.os, 'ubuntu')
|
||||
id: builder
|
||||
uses: docker/setup-buildx-action@v3
|
||||
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0
|
||||
with:
|
||||
version: ${{ env.BUILDX_VERSION }}
|
||||
driver-opts: image=${{ env.BUILDKIT_IMAGE }}
|
||||
@@ -197,7 +200,7 @@ jobs:
|
||||
run: yarn install
|
||||
-
|
||||
name: Test
|
||||
uses: actions/github-script@v8
|
||||
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
||||
with:
|
||||
script: |
|
||||
const testName = `${{ matrix.test_name }}`;
|
||||
@@ -225,7 +228,7 @@ jobs:
|
||||
shell: bash
|
||||
-
|
||||
name: Upload coverage
|
||||
uses: codecov/codecov-action@v5
|
||||
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
|
||||
if: env.RUN_CODECOV == 'true'
|
||||
with:
|
||||
files: ./coverage/clover.xml
|
||||
|
||||
15
.github/workflows/undock-releases-json.yml
vendored
15
.github/workflows/undock-releases-json.yml
vendored
@@ -4,6 +4,9 @@ concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
@@ -17,25 +20,27 @@ on:
|
||||
|
||||
jobs:
|
||||
generate:
|
||||
uses: crazy-max/.github/.github/workflows/releases-json.yml@2842b806167c9dbacf5f972e0fcf47204a99d987
|
||||
uses: crazy-max/.github/.github/workflows/releases-json.yml@64a0bfaf6e6bb1c448d6e4c42b11034ee7094f16 # v1.7.1
|
||||
with:
|
||||
repository: crazy-max/undock
|
||||
artifact_name: undock-releases-json
|
||||
filename: undock-releases.json
|
||||
secrets: inherit
|
||||
|
||||
open-pr:
|
||||
runs-on: ubuntu-24.04
|
||||
if: github.event_name != 'pull_request'
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
needs:
|
||||
- generate
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
-
|
||||
name: Download
|
||||
uses: actions/download-artifact@v8
|
||||
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
||||
with:
|
||||
name: undock-releases-json
|
||||
path: .github
|
||||
@@ -45,7 +50,7 @@ jobs:
|
||||
git add -A .
|
||||
-
|
||||
name: Create PR
|
||||
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8.1.0
|
||||
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
|
||||
with:
|
||||
base: main
|
||||
branch: bot/undock-releases-json
|
||||
|
||||
327
.github/workflows/update-deps.yml
vendored
Normal file
327
.github/workflows/update-deps.yml
vendored
Normal file
@@ -0,0 +1,327 @@
|
||||
name: update-deps
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 9 * * *'
|
||||
push:
|
||||
branches:
|
||||
- 'main'
|
||||
|
||||
jobs:
|
||||
update:
|
||||
runs-on: ubuntu-24.04
|
||||
environment: update-deps # secrets are gated by this environment
|
||||
timeout-minutes: 10
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
dep:
|
||||
- docker
|
||||
- buildx
|
||||
- buildkit
|
||||
- compose
|
||||
- cosign
|
||||
- regctl
|
||||
- undock
|
||||
steps:
|
||||
-
|
||||
name: GitHub auth token from GitHub App
|
||||
id: write-app
|
||||
uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
|
||||
with:
|
||||
client-id: ${{ vars.GHACTIONS_REPO_WRITE_CLIENT_ID }}
|
||||
private-key: ${{ secrets.GHACTIONS_REPO_WRITE_PRIVATE_KEY }}
|
||||
owner: docker
|
||||
repositories: actions-toolkit
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
token: ${{ steps.write-app.outputs.token }}
|
||||
fetch-depth: 0
|
||||
persist-credentials: false
|
||||
-
|
||||
name: Update dependency
|
||||
id: update
|
||||
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
||||
env:
|
||||
INPUT_DEP: ${{ matrix.dep }}
|
||||
with:
|
||||
script: |
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const dep = core.getInput('dep');
|
||||
|
||||
function escapeRegExp(value) {
|
||||
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
||||
}
|
||||
|
||||
function formatList(values) {
|
||||
const quoted = values.map(value => `\`${value}\``);
|
||||
if (quoted.length === 1) {
|
||||
return quoted[0];
|
||||
}
|
||||
if (quoted.length === 2) {
|
||||
return `${quoted[0]} and ${quoted[1]}`;
|
||||
}
|
||||
return `${quoted.slice(0, -1).join(', ')}, and ${quoted.at(-1)}`;
|
||||
}
|
||||
|
||||
function unique(values) {
|
||||
return [...new Set(values)];
|
||||
}
|
||||
|
||||
function stripLeadingV(value) {
|
||||
return value.startsWith('v') ? value.slice(1) : value;
|
||||
}
|
||||
|
||||
function stripDockerTag(value) {
|
||||
return value.replace(/^docker-v/, '').replace(/^v/, '');
|
||||
}
|
||||
|
||||
function majorMinor(value) {
|
||||
const match = value.match(/^(\d+\.\d+)/);
|
||||
if (!match) {
|
||||
throw new Error(`Unable to derive major.minor version from ${value}`);
|
||||
}
|
||||
return match[1];
|
||||
}
|
||||
|
||||
function readJson(relativePath) {
|
||||
const absolutePath = path.join(process.env.GITHUB_WORKSPACE, relativePath);
|
||||
return JSON.parse(fs.readFileSync(absolutePath, 'utf8'));
|
||||
}
|
||||
|
||||
function readLatestTag(relativePath) {
|
||||
const tag = readJson(relativePath)?.latest?.tag_name;
|
||||
if (!tag) {
|
||||
throw new Error(`Unable to resolve latest tag from ${relativePath}`);
|
||||
}
|
||||
return tag;
|
||||
}
|
||||
|
||||
function dockerfileArgPattern(key) {
|
||||
return new RegExp(`^(ARG ${escapeRegExp(key)}=)(.+)$`, 'm');
|
||||
}
|
||||
|
||||
function workflowEnvPattern(key) {
|
||||
return new RegExp(`^( ${escapeRegExp(key)}: ")([^"]*)(")$`, 'm');
|
||||
}
|
||||
|
||||
const dependencyConfigs = {
|
||||
docker: {
|
||||
name: 'Docker version',
|
||||
branch: 'deps/docker-version',
|
||||
sourceUrl: 'https://github.com/docker/actions-toolkit/blob/main/.github/docker-releases.json',
|
||||
async resolve() {
|
||||
const tag = readLatestTag('.github/docker-releases.json');
|
||||
const version = majorMinor(stripDockerTag(tag));
|
||||
return {
|
||||
titleValue: version,
|
||||
targets: [
|
||||
{
|
||||
path: 'dev.Dockerfile',
|
||||
key: 'DOCKER_VERSION',
|
||||
value: version,
|
||||
pattern: dockerfileArgPattern('DOCKER_VERSION')
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
},
|
||||
buildx: {
|
||||
name: 'Buildx version',
|
||||
branch: 'deps/buildx-version',
|
||||
sourceUrl: 'https://github.com/docker/actions-toolkit/blob/main/.github/buildx-releases.json',
|
||||
async resolve() {
|
||||
const tag = readLatestTag('.github/buildx-releases.json');
|
||||
return {
|
||||
titleValue: tag,
|
||||
targets: [
|
||||
{
|
||||
path: 'dev.Dockerfile',
|
||||
key: 'BUILDX_VERSION',
|
||||
value: stripLeadingV(tag),
|
||||
pattern: dockerfileArgPattern('BUILDX_VERSION')
|
||||
},
|
||||
{
|
||||
path: '.github/workflows/test.yml',
|
||||
key: 'BUILDX_VERSION',
|
||||
value: tag,
|
||||
pattern: workflowEnvPattern('BUILDX_VERSION')
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
},
|
||||
buildkit: {
|
||||
name: 'BuildKit image',
|
||||
branch: 'deps/buildkit-image',
|
||||
sourceUrl: 'https://github.com/moby/buildkit/releases/latest',
|
||||
async resolve({github}) {
|
||||
const release = await github.rest.repos.getLatestRelease({
|
||||
owner: 'moby',
|
||||
repo: 'buildkit'
|
||||
});
|
||||
const image = `moby/buildkit:${release.data.tag_name}`;
|
||||
return {
|
||||
titleValue: image,
|
||||
targets: [
|
||||
{
|
||||
path: '.github/workflows/test.yml',
|
||||
key: 'BUILDKIT_IMAGE',
|
||||
value: image,
|
||||
pattern: workflowEnvPattern('BUILDKIT_IMAGE')
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
},
|
||||
compose: {
|
||||
name: 'Compose version',
|
||||
branch: 'deps/compose-version',
|
||||
sourceUrl: 'https://github.com/docker/actions-toolkit/blob/main/.github/compose-releases.json',
|
||||
async resolve() {
|
||||
const tag = readLatestTag('.github/compose-releases.json');
|
||||
return {
|
||||
titleValue: tag,
|
||||
targets: [
|
||||
{
|
||||
path: 'dev.Dockerfile',
|
||||
key: 'COMPOSE_VERSION',
|
||||
value: stripLeadingV(tag),
|
||||
pattern: dockerfileArgPattern('COMPOSE_VERSION')
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
},
|
||||
undock: {
|
||||
name: 'Undock version',
|
||||
branch: 'deps/undock-version',
|
||||
sourceUrl: 'https://github.com/docker/actions-toolkit/blob/main/.github/undock-releases.json',
|
||||
async resolve() {
|
||||
const tag = readLatestTag('.github/undock-releases.json');
|
||||
return {
|
||||
titleValue: tag,
|
||||
targets: [
|
||||
{
|
||||
path: 'dev.Dockerfile',
|
||||
key: 'UNDOCK_VERSION',
|
||||
value: stripLeadingV(tag),
|
||||
pattern: dockerfileArgPattern('UNDOCK_VERSION')
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
},
|
||||
regctl: {
|
||||
name: 'Regctl version',
|
||||
branch: 'deps/regctl-version',
|
||||
sourceUrl: 'https://github.com/docker/actions-toolkit/blob/main/.github/regclient-releases.json',
|
||||
async resolve() {
|
||||
const tag = readLatestTag('.github/regclient-releases.json');
|
||||
return {
|
||||
titleValue: tag,
|
||||
targets: [
|
||||
{
|
||||
path: 'dev.Dockerfile',
|
||||
key: 'REGCTL_VERSION',
|
||||
value: tag,
|
||||
pattern: dockerfileArgPattern('REGCTL_VERSION')
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
},
|
||||
cosign: {
|
||||
name: 'Cosign version',
|
||||
branch: 'deps/cosign-version',
|
||||
sourceUrl: 'https://github.com/docker/actions-toolkit/blob/main/.github/cosign-releases.json',
|
||||
async resolve() {
|
||||
const tag = readLatestTag('.github/cosign-releases.json');
|
||||
return {
|
||||
titleValue: tag,
|
||||
targets: [
|
||||
{
|
||||
path: 'dev.Dockerfile',
|
||||
key: 'COSIGN_VERSION',
|
||||
value: tag,
|
||||
pattern: dockerfileArgPattern('COSIGN_VERSION')
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const config = dependencyConfigs[dep];
|
||||
if (!config) {
|
||||
core.setFailed(`Unknown dependency ${dep}`);
|
||||
return;
|
||||
}
|
||||
|
||||
const resolved = await config.resolve({github});
|
||||
const currentValues = [];
|
||||
const changedFiles = [];
|
||||
|
||||
for (const target of resolved.targets) {
|
||||
const absolutePath = path.join(process.env.GITHUB_WORKSPACE, target.path);
|
||||
const content = fs.readFileSync(absolutePath, 'utf8');
|
||||
const match = content.match(target.pattern);
|
||||
if (!match) {
|
||||
throw new Error(`Missing ${target.key} in ${target.path}`);
|
||||
}
|
||||
currentValues.push(match[2]);
|
||||
if (match[2] === target.value) {
|
||||
continue;
|
||||
}
|
||||
const updatedContent = content.replace(target.pattern, (...args) => {
|
||||
const groups = args.slice(1, -2);
|
||||
const prefix = groups[0];
|
||||
const suffix = groups[2] || '';
|
||||
return `${prefix}${target.value}${suffix}`;
|
||||
});
|
||||
fs.writeFileSync(absolutePath, updatedContent, 'utf8');
|
||||
changedFiles.push(target.path);
|
||||
}
|
||||
|
||||
core.info(`Resolved ${config.name} from ${config.sourceUrl}`);
|
||||
if (changedFiles.length === 0) {
|
||||
core.info(`No workspace changes needed for ${config.name}`);
|
||||
} else {
|
||||
core.info(`New ${config.name} ${resolved.titleValue} found`);
|
||||
}
|
||||
|
||||
core.setOutput('branch', config.branch);
|
||||
core.setOutput('title', `chore(deps): update ${config.name} to ${resolved.titleValue}`);
|
||||
core.setOutput('before', formatList(unique(currentValues)));
|
||||
core.setOutput('files', formatList(unique(changedFiles)));
|
||||
core.setOutput('source-url', config.sourceUrl);
|
||||
-
|
||||
name: Create pull request
|
||||
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
|
||||
with:
|
||||
base: main
|
||||
branch: ${{ steps.update.outputs.branch }}
|
||||
token: ${{ steps.write-app.outputs.token }}
|
||||
commit-message: ${{ steps.update.outputs.title }}
|
||||
title: ${{ steps.update.outputs.title }}
|
||||
signoff: true
|
||||
delete-branch: true
|
||||
body: |
|
||||
This updates the pinned value from ${{ steps.update.outputs.before }} in ${{ steps.update.outputs.files }}.
|
||||
|
||||
The source of truth for this update is ${{ steps.update.outputs.source-url }}.
|
||||
15
.github/workflows/validate.yml
vendored
15
.github/workflows/validate.yml
vendored
@@ -4,6 +4,9 @@ concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
@@ -17,15 +20,15 @@ jobs:
|
||||
prepare:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
targets: ${{ steps.generate.outputs.targets }}
|
||||
matrix: ${{ steps.generate.outputs.matrix }}
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
-
|
||||
name: List targets
|
||||
name: Generate matrix
|
||||
id: generate
|
||||
uses: docker/bake-action/subaction/list-targets@v6
|
||||
uses: docker/bake-action/subaction/matrix@a66e1c87e2eca0503c343edf1d208c716d54b8a8 # v7.1.0
|
||||
with:
|
||||
target: validate
|
||||
|
||||
@@ -36,10 +39,10 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
target: ${{ fromJson(needs.prepare.outputs.targets) }}
|
||||
include: ${{ fromJson(needs.prepare.outputs.matrix) }}
|
||||
steps:
|
||||
-
|
||||
name: Validate
|
||||
uses: docker/bake-action@v6
|
||||
uses: docker/bake-action@a66e1c87e2eca0503c343edf1d208c716d54b8a8 # v7.1.0
|
||||
with:
|
||||
targets: ${{ matrix.target }}
|
||||
|
||||
9
.github/workflows/virtual-env.yml
vendored
9
.github/workflows/virtual-env.yml
vendored
@@ -1,5 +1,12 @@
|
||||
name: virtual-env
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
@@ -68,4 +75,4 @@ jobs:
|
||||
-
|
||||
name: Dump context
|
||||
if: always()
|
||||
uses: crazy-max/ghaction-dump-context@v2
|
||||
uses: crazy-max/ghaction-dump-context@5d2753e7076f4568c7729971e25231f32147e2d8 # v3.0.0
|
||||
|
||||
26
.github/workflows/zizmor.yml
vendored
Normal file
26
.github/workflows/zizmor.yml
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
name: zizmor
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- 'main'
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
run:
|
||||
uses: crazy-max/.github/.github/workflows/zizmor.yml@64a0bfaf6e6bb1c448d6e4c42b11034ee7094f16 # v1.7.1
|
||||
permissions:
|
||||
contents: read
|
||||
security-events: write
|
||||
with:
|
||||
min-severity: medium
|
||||
min-confidence: medium
|
||||
persona: pedantic
|
||||
@@ -54,7 +54,7 @@ describe('satisfies', () => {
|
||||
test.each([
|
||||
['builder2', '>=0.10.0', true],
|
||||
['builder2', '>0.11.0', false]
|
||||
])('given %p', async (builderName, range, expected) => {
|
||||
])('given %o', async (builderName, range, expected) => {
|
||||
const buildkit = new BuildKit();
|
||||
expect(await buildkit.versionSatisfies(builderName, range)).toBe(expected);
|
||||
});
|
||||
|
||||
@@ -53,7 +53,7 @@ describe('resolve', () => {
|
||||
`,
|
||||
null
|
||||
]
|
||||
])('given %p config', async (val: string, file: boolean, exValue: string, error: Error | null) => {
|
||||
])('given %o config', async (val: string, file: boolean, exValue: string, error: Error | null) => {
|
||||
try {
|
||||
const buildkit = new BuildKit();
|
||||
let config: string;
|
||||
|
||||
@@ -181,7 +181,7 @@ describe('parseURL', () => {
|
||||
} as GitURL,
|
||||
false
|
||||
],
|
||||
])('given %p', async (ref: string, expected: GitURL, expectedErr: boolean) => {
|
||||
])('given %o', async (ref: string, expected: GitURL, expectedErr: boolean) => {
|
||||
try {
|
||||
const got = Git.parseURL(ref);
|
||||
expect(got.scheme).toEqual(expected.scheme);
|
||||
@@ -329,7 +329,7 @@ describe('parseRef', () => {
|
||||
'.git',
|
||||
undefined
|
||||
],
|
||||
])('given %p', async (ref: string, expected: GitRef | undefined) => {
|
||||
])('given %o', async (ref: string, expected: GitRef | undefined) => {
|
||||
try {
|
||||
const got = Git.parseRef(ref);
|
||||
expect(got).toEqual(expected);
|
||||
|
||||
@@ -41,7 +41,7 @@ maybe('getDefinition', () => {
|
||||
// path.join(fixturesDir, 'bake-test-docker-action-remote-private.json'),
|
||||
// true,
|
||||
// ]
|
||||
])('given %p', async (source: string, targets: string[], out: string, auth) => {
|
||||
])('given %o', async (source: string, targets: string[], out: string, auth) => {
|
||||
const gitAuthToken = process.env.GITHUB_TOKEN || '';
|
||||
if (auth && !gitAuthToken) {
|
||||
console.log(`Git auth token not available, skipping test`);
|
||||
|
||||
@@ -102,7 +102,7 @@ describe('getDefinition', () => {
|
||||
undefined,
|
||||
path.join(fixturesDir, 'bake-03-default.json')
|
||||
],
|
||||
])('given %p', async (files: string[], targets: string[], overrides: string[], execOptions: ExecOptions | undefined, out: string) => {
|
||||
])('given %o', async (files: string[], targets: string[], overrides: string[], execOptions: ExecOptions | undefined, out: string) => {
|
||||
const bake = new Bake();
|
||||
const expectedDef = <BakeDefinition>JSON.parse(fs.readFileSync(out, {encoding: 'utf-8'}).trim())
|
||||
expect(await bake.getDefinition({
|
||||
@@ -185,7 +185,7 @@ describe('hasLocalExporter', () => {
|
||||
} as unknown as BakeDefinition,
|
||||
true
|
||||
]
|
||||
])('given %o returns %p', async (def: BakeDefinition, expected: boolean) => {
|
||||
])('given %o returns %o', async (def: BakeDefinition, expected: boolean) => {
|
||||
expect(Bake.hasLocalExporter(def)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
@@ -285,7 +285,7 @@ describe('hasTarExporter', () => {
|
||||
} as unknown as BakeDefinition,
|
||||
false
|
||||
],
|
||||
])('given %o returns %p', async (def: BakeDefinition, expected: boolean) => {
|
||||
])('given %o returns %o', async (def: BakeDefinition, expected: boolean) => {
|
||||
expect(Bake.hasTarExporter(def)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
@@ -440,7 +440,7 @@ describe('hasDockerExporter', () => {
|
||||
true,
|
||||
true
|
||||
],
|
||||
])('given %o and load:%p returns %p', async (def: BakeDefinition, expected: boolean, load: boolean | undefined) => {
|
||||
])('given %o and load: %o returns %o', async (def: BakeDefinition, expected: boolean, load: boolean | undefined) => {
|
||||
expect(Bake.hasDockerExporter(def, load)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
@@ -481,7 +481,7 @@ describe('hasGitAuthTokenSecret', () => {
|
||||
} as unknown as BakeDefinition,
|
||||
true
|
||||
],
|
||||
])('given %o returns %p', async (def: BakeDefinition, expected: boolean) => {
|
||||
])('given %o returns %o', async (def: BakeDefinition, expected: boolean) => {
|
||||
expect(Bake.hasGitAuthTokenSecret(def)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
@@ -536,7 +536,7 @@ describe('hasProvenanceAttestation', () => {
|
||||
} as unknown as BakeDefinition,
|
||||
true
|
||||
]
|
||||
])('given %o returns %p', async (def: BakeDefinition, expected: boolean) => {
|
||||
])('given %o returns %o', async (def: BakeDefinition, expected: boolean) => {
|
||||
expect(Bake.hasProvenanceAttestation(def)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
@@ -591,7 +591,7 @@ describe('hasSBOMAttestation', () => {
|
||||
} as unknown as BakeDefinition,
|
||||
true
|
||||
]
|
||||
])('given %o returns %p', async (def: BakeDefinition, expected: boolean) => {
|
||||
])('given %o returns %o', async (def: BakeDefinition, expected: boolean) => {
|
||||
expect(Bake.hasSBOMAttestation(def)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -18,10 +18,14 @@ import {afterEach, beforeEach, describe, expect, it, vi, test} from 'vitest';
|
||||
import fs from 'fs';
|
||||
import os from 'os';
|
||||
import path from 'path';
|
||||
import * as github from '@actions/github';
|
||||
import * as rimraf from 'rimraf';
|
||||
|
||||
import {Context} from '../../src/context.js';
|
||||
import {Build} from '../../src/buildx/build.js';
|
||||
import {Buildx} from '../../src/buildx/buildx.js';
|
||||
|
||||
import {GitContextFormat} from '../../src/types/buildx/build.js';
|
||||
|
||||
const fixturesDir = path.join(__dirname, '..', '.fixtures');
|
||||
const tmpDir = fs.mkdtempSync(path.join(process.env.TEMP || os.tmpdir(), 'buildx-build-'));
|
||||
@@ -41,6 +45,111 @@ afterEach(() => {
|
||||
rimraf.sync(tmpDir);
|
||||
});
|
||||
|
||||
describe('gitContext', () => {
|
||||
const originalEnv = process.env;
|
||||
const githubContextSha = '860c1904a1ce19322e91ac35af1ab07466440c37';
|
||||
const pullRequestHeadSha = 'f11797113e5a9b86bd976329c5dbb8a8bfdfadfa';
|
||||
beforeEach(() => {
|
||||
vi.resetModules();
|
||||
process.env = {
|
||||
...originalEnv,
|
||||
DOCKER_DEFAULT_GIT_CONTEXT_PR_HEAD_REF: '',
|
||||
BUILDX_SEND_GIT_QUERY_AS_INPUT: ''
|
||||
};
|
||||
github.context.sha = githubContextSha;
|
||||
github.context.payload.pull_request = {
|
||||
number: 15,
|
||||
head: {
|
||||
sha: pullRequestHeadSha
|
||||
}
|
||||
};
|
||||
});
|
||||
afterEach(() => {
|
||||
process.env = originalEnv;
|
||||
delete github.context.payload.pull_request;
|
||||
});
|
||||
|
||||
type GitContextTestCase = {
|
||||
ref: string;
|
||||
checksum?: string;
|
||||
subdir?: string;
|
||||
attrs?: Record<string, string>;
|
||||
format: GitContextFormat | undefined;
|
||||
|
||||
prHeadRef: boolean;
|
||||
sendGitQueryAsInput: boolean;
|
||||
buildxQuerySupport: boolean;
|
||||
};
|
||||
|
||||
// prettier-ignore
|
||||
const gitContextCases: [GitContextTestCase, string][] = [
|
||||
// no format set (defaults to fragment)
|
||||
[{ref: 'refs/heads/master', format: undefined, prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true}, 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
[{ref: 'master', format: undefined, prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true}, 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
[{ref: 'refs/pull/15/merge', checksum: undefined, format: undefined, prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true}, 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
[{ref: 'refs/tags/v1.0.0', format: undefined, prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true}, 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
[{ref: 'refs/pull/15/merge', checksum: undefined, format: undefined, prHeadRef: true, sendGitQueryAsInput: false, buildxQuerySupport: true}, 'https://github.com/docker/actions-toolkit.git#f11797113e5a9b86bd976329c5dbb8a8bfdfadfa'],
|
||||
// no format set (defaults to query only when client-side query resolution is enabled and supported)
|
||||
[{ref: 'refs/heads/master', format: undefined, prHeadRef: false, sendGitQueryAsInput: true, buildxQuerySupport: true}, 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
[{ref: 'refs/pull/15/merge', checksum: undefined, format: undefined, prHeadRef: false, sendGitQueryAsInput: true, buildxQuerySupport: true}, 'https://github.com/docker/actions-toolkit.git?ref=860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
[{ref: 'refs/pull/15/merge', checksum: undefined, format: undefined, prHeadRef: true, sendGitQueryAsInput: true, buildxQuerySupport: true}, 'https://github.com/docker/actions-toolkit.git?ref=f11797113e5a9b86bd976329c5dbb8a8bfdfadfa'],
|
||||
[{ref: 'refs/heads/master', format: undefined, prHeadRef: false, sendGitQueryAsInput: true, buildxQuerySupport: false}, 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
[{ref: 'refs/heads/master', format: undefined, prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true, attrs: {}}, 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
[{ref: 'refs/heads/master', checksum: undefined, format: undefined, prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true, attrs: {checksum: 'cafebabe'}}, 'https://github.com/docker/actions-toolkit.git#cafebabe'],
|
||||
[{ref: 'refs/heads/master', format: undefined, prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true, attrs: {subdir: 'subdir'}}, 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37:subdir'],
|
||||
[{ref: 'refs/heads/master', format: undefined, prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true, attrs: {ref: 'refs/tags/v1.0.0'}}, 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
[{ref: 'refs/heads/master', format: undefined, prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true, attrs: {'keep-git-dir': 'true'}}, 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&keep-git-dir=true'],
|
||||
[{ref: 'refs/heads/master', format: undefined, prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: false, attrs: {'keep-git-dir': 'true'}}, 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&keep-git-dir=true'],
|
||||
[{ref: 'refs/heads/master', checksum: undefined, format: undefined, prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true, attrs: {checksum: 'cafebabe', 'keep-git-dir': 'true'}}, 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=cafebabe&keep-git-dir=true'],
|
||||
[{ref: 'refs/heads/master', format: undefined, prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true, attrs: {submodules: 'false'}}, 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&submodules=false'],
|
||||
[{ref: 'refs/heads/master', format: undefined, prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: false, attrs: {submodules: 'false'}}, 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&submodules=false'],
|
||||
// query format
|
||||
[{ref: 'refs/heads/master', format: 'query', prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true}, 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
[{ref: 'master', format: 'query', prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true}, 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
[{ref: 'refs/pull/15/merge', checksum: undefined, format: 'query', prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true}, 'https://github.com/docker/actions-toolkit.git?ref=860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
[{ref: 'refs/tags/v1.0.0', format: 'query', prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true}, 'https://github.com/docker/actions-toolkit.git?ref=refs/tags/v1.0.0&checksum=860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
[{ref: 'refs/pull/15/merge', checksum: undefined, format: 'query', prHeadRef: true, sendGitQueryAsInput: false, buildxQuerySupport: true}, 'https://github.com/docker/actions-toolkit.git?ref=f11797113e5a9b86bd976329c5dbb8a8bfdfadfa'],
|
||||
[{ref: 'refs/pull/15/merge', checksum: undefined, format: 'query', prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true, attrs: {checksum: 'cafebabe'}}, 'https://github.com/docker/actions-toolkit.git?ref=refs/pull/15/merge&checksum=cafebabe'],
|
||||
[{ref: 'refs/heads/master', format: 'query', prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true, subdir: 'subdir'}, 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&subdir=subdir'],
|
||||
[{ref: 'refs/heads/master', format: 'query', prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true, subdir: '.'}, 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
[{ref: 'refs/heads/master', checksum: undefined, format: 'query', prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true, attrs: {ref: 'refs/tags/v1.0.0', checksum: 'cafebabe', subdir: 'subdir', submodules: 'false'}}, 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=cafebabe&subdir=subdir&submodules=false'],
|
||||
[{ref: 'refs/heads/master', format: 'query', prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true, subdir: 'subdir', attrs: {'keep-git-dir': 'true'}}, 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&subdir=subdir&keep-git-dir=true'],
|
||||
[{ref: 'refs/heads/master', format: 'query', prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true, attrs: {submodules: 'true'}}, 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&submodules=true'],
|
||||
[{ref: 'refs/heads/master', format: 'query', prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true, attrs: {submodules: 'false'}}, 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&submodules=false'],
|
||||
[{ref: 'refs/heads/master', format: 'query', prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true, attrs: {'keep-git-dir': 'true', submodules: 'false'}}, 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&keep-git-dir=true&submodules=false'],
|
||||
// fragment format
|
||||
[{ref: 'refs/heads/master', format: 'fragment', prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true}, 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
[{ref: 'master', format: 'fragment', prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true}, 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
[{ref: 'refs/pull/15/merge', checksum: undefined, format: 'fragment', prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true}, 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
[{ref: 'refs/tags/v1.0.0', format: 'fragment', prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true}, 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
[{ref: 'refs/pull/15/merge', checksum: undefined, format: 'fragment', prHeadRef: true, sendGitQueryAsInput: false, buildxQuerySupport: true}, 'https://github.com/docker/actions-toolkit.git#f11797113e5a9b86bd976329c5dbb8a8bfdfadfa'],
|
||||
[{ref: 'refs/pull/15/merge', checksum: undefined, format: 'fragment', prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true, attrs: {checksum: 'cafebabe'}}, 'https://github.com/docker/actions-toolkit.git#refs/pull/15/merge'],
|
||||
[{ref: 'refs/heads/master', checksum: undefined, format: 'fragment', prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true, attrs: {checksum: 'cafebabe', subdir: 'subdir', ref: 'refs/tags/v1.0.0'}}, 'https://github.com/docker/actions-toolkit.git#cafebabe:subdir'],
|
||||
[{ref: 'refs/heads/master', format: 'fragment', prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true, attrs: {'keep-git-dir': 'true'}}, 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
[{ref: 'refs/heads/master', format: 'fragment', prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true, subdir: 'subdir'}, 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37:subdir'],
|
||||
[{ref: 'refs/heads/master', format: 'fragment', prHeadRef: false, sendGitQueryAsInput: false, buildxQuerySupport: true, subdir: '.'}, 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
[{ref: 'refs/pull/15/merge', checksum: undefined, format: 'fragment', prHeadRef: true, sendGitQueryAsInput: false, buildxQuerySupport: true, subdir: 'subdir'}, 'https://github.com/docker/actions-toolkit.git#f11797113e5a9b86bd976329c5dbb8a8bfdfadfa:subdir'],
|
||||
];
|
||||
|
||||
test.each(gitContextCases)('given %o should return %o', async (input: GitContextTestCase, expected: string) => {
|
||||
const {ref, checksum, format, prHeadRef, sendGitQueryAsInput, buildxQuerySupport, subdir, attrs} = input;
|
||||
process.env.DOCKER_DEFAULT_GIT_CONTEXT_PR_HEAD_REF = prHeadRef ? 'true' : '';
|
||||
process.env.BUILDX_SEND_GIT_QUERY_AS_INPUT = sendGitQueryAsInput ? 'true' : '';
|
||||
const buildx = new Buildx();
|
||||
vi.spyOn(buildx, 'versionSatisfies').mockResolvedValue(buildxQuerySupport);
|
||||
const build = new Build({buildx});
|
||||
expect(
|
||||
await build.gitContext({
|
||||
ref,
|
||||
...('checksum' in input ? {checksum} : {checksum: '860c1904a1ce19322e91ac35af1ab07466440c37'}),
|
||||
format,
|
||||
subdir,
|
||||
attrs
|
||||
})
|
||||
).toEqual(expected);
|
||||
});
|
||||
});
|
||||
|
||||
describe('resolveImageID', () => {
|
||||
it('matches', async () => {
|
||||
const imageID = 'sha256:bfb45ab72e46908183546477a08f8867fc40cebadd00af54b071b097aed127a9';
|
||||
@@ -136,7 +245,7 @@ describe('getProvenanceInput', () => {
|
||||
'',
|
||||
''
|
||||
],
|
||||
])('given input %p', async (input: string, expected: string) => {
|
||||
])('given input %o', async (input: string, expected: string) => {
|
||||
setInput('provenance', input);
|
||||
expect(Build.getProvenanceInput('provenance')).toEqual(expected);
|
||||
});
|
||||
@@ -165,50 +274,69 @@ describe('resolveProvenanceAttrs', () => {
|
||||
'',
|
||||
'builder-id=https://github.com/docker/actions-toolkit/actions/runs/2188748038/attempts/2'
|
||||
],
|
||||
])('given %p', async (input: string, expected: string) => {
|
||||
])('given %o', async (input: string, expected: string) => {
|
||||
expect(Build.resolveProvenanceAttrs(input)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
|
||||
describe('resolveSecret', () => {
|
||||
// prettier-ignore
|
||||
test.each([
|
||||
['A_SECRET=abcdef0123456789', false, 'A_SECRET', 'abcdef0123456789', null],
|
||||
['GIT_AUTH_TOKEN=abcdefghijklmno=0123456789', false, 'GIT_AUTH_TOKEN', 'abcdefghijklmno=0123456789', null],
|
||||
['MY_KEY=c3RyaW5nLXdpdGgtZXF1YWxzCg==', false, 'MY_KEY', 'c3RyaW5nLXdpdGgtZXF1YWxzCg==', null],
|
||||
['aaaaaaaa', false, '', '', new Error('aaaaaaaa is not a valid secret')],
|
||||
['aaaaaaaa=', false, '', '', new Error('aaaaaaaa= is not a valid secret')],
|
||||
['=bbbbbbb', false, '', '', new Error('=bbbbbbb is not a valid secret')],
|
||||
[`foo=${path.join(fixturesDir, 'secret.txt')}`, true, 'foo', 'bar', null],
|
||||
[`notfound=secret`, true, '', '', new Error('secret file secret not found')]
|
||||
])('given %p key and %p secret', async (kvp: string, file: boolean, exKey: string, exValue: string, error: Error | null) => {
|
||||
try {
|
||||
let secret: string;
|
||||
if (file) {
|
||||
secret = Build.resolveSecretFile(kvp);
|
||||
} else {
|
||||
secret = Build.resolveSecretString(kvp);
|
||||
}
|
||||
expect(secret).toEqual(`id=${exKey},src=${tmpName}`);
|
||||
expect(fs.readFileSync(tmpName, 'utf-8')).toEqual(exValue);
|
||||
} catch (e) {
|
||||
// eslint-disable-next-line vitest/no-conditional-expect
|
||||
expect(e.message).toEqual(error?.message);
|
||||
}
|
||||
['A_SECRET=abcdef0123456789', 'A_SECRET', 'abcdef0123456789'],
|
||||
['GIT_AUTH_TOKEN=abcdefghijklmno=0123456789', 'GIT_AUTH_TOKEN', 'abcdefghijklmno=0123456789'],
|
||||
['MY_KEY=c3RyaW5nLXdpdGgtZXF1YWxzCg==', 'MY_KEY', 'c3RyaW5nLXdpdGgtZXF1YWxzCg==']
|
||||
])('given %o key and string secret', (kvp: string, exKey: string, exValue: string) => {
|
||||
const secret = Build.resolveSecretString(kvp);
|
||||
expect(secret).toEqual(`id=${exKey},src=${tmpName}`);
|
||||
expect(fs.readFileSync(tmpName, 'utf-8')).toEqual(exValue);
|
||||
});
|
||||
|
||||
// prettier-ignore
|
||||
test.each([
|
||||
['FOO=bar', 'FOO', 'bar', null],
|
||||
['FOO=', 'FOO', '', new Error('FOO= is not a valid secret')],
|
||||
['=bar', '', '', new Error('=bar is not a valid secret')],
|
||||
['FOO=bar=baz', 'FOO', 'bar=baz', null]
|
||||
])('given %p key and %p env', async (kvp: string, exKey: string, exValue: string, error: Error | null) => {
|
||||
try {
|
||||
const secret = Build.resolveSecretEnv(kvp);
|
||||
expect(secret).toEqual(`id=${exKey},env=${exValue}`);
|
||||
} catch (e) {
|
||||
// eslint-disable-next-line vitest/no-conditional-expect
|
||||
expect(e.message).toEqual(error?.message);
|
||||
}
|
||||
[`foo=${path.join(fixturesDir, 'secret.txt')}`, 'foo', path.join(fixturesDir, 'secret.txt')]
|
||||
])('given %o key and file secret', (kvp: string, exKey: string, exSrc: string) => {
|
||||
const secret = Build.resolveSecretFile(kvp);
|
||||
expect(secret).toEqual(`id=${exKey},src=${exSrc}`);
|
||||
});
|
||||
|
||||
// prettier-ignore
|
||||
test.each([
|
||||
['aaaaaaaa', false, 'aaaaaaaa is not a valid secret'],
|
||||
['aaaaaaaa=', false, 'aaaaaaaa= is not a valid secret'],
|
||||
['=bbbbbbb', false, '=bbbbbbb is not a valid secret'],
|
||||
['notfound=secret', true, 'secret file secret not found']
|
||||
])('given %o key and %o secret throws', (kvp: string, file: boolean, errorMessage: string) => {
|
||||
const resolve = (): string => (file ? Build.resolveSecretFile(kvp) : Build.resolveSecretString(kvp));
|
||||
expect(resolve).toThrow(errorMessage);
|
||||
});
|
||||
|
||||
// prettier-ignore
|
||||
test('preserves file-backed secret path and bytes', async () => {
|
||||
fs.mkdirSync(tmpDir, {recursive: true});
|
||||
const sourceFile = path.join(tmpDir, 'secret.bin');
|
||||
const sourceBytes = Buffer.from([0x50, 0x4b, 0x03, 0x04, 0x00, 0xff, 0x41, 0x42, 0x43, 0x0a, 0x80]);
|
||||
fs.writeFileSync(sourceFile, sourceBytes);
|
||||
const secret = Build.resolveSecretFile(`foo=${sourceFile}`);
|
||||
expect(secret).toEqual(`id=foo,src=${sourceFile}`);
|
||||
expect(fs.readFileSync(sourceFile)).toEqual(sourceBytes);
|
||||
expect(fs.existsSync(tmpName)).toBeFalsy();
|
||||
});
|
||||
|
||||
// prettier-ignore
|
||||
test.each([
|
||||
['FOO=bar', 'FOO', 'bar'],
|
||||
['FOO=bar=baz', 'FOO', 'bar=baz']
|
||||
])('given %o key and %o env', (kvp: string, exKey: string, exValue: string) => {
|
||||
const secret = Build.resolveSecretEnv(kvp);
|
||||
expect(secret).toEqual(`id=${exKey},env=${exValue}`);
|
||||
});
|
||||
|
||||
// prettier-ignore
|
||||
test.each([
|
||||
['FOO=', 'FOO= is not a valid secret'],
|
||||
['=bar', '=bar is not a valid secret']
|
||||
])('given %o key and %o env throws', (kvp: string, errorMessage: string) => {
|
||||
expect(() => Build.resolveSecretEnv(kvp)).toThrow(errorMessage);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -255,7 +383,7 @@ describe('resolveCacheToAttrs', () => {
|
||||
'abcd1234',
|
||||
'type=gha,repository=foo/bar,mode=max,ghtoken=abcd1234',
|
||||
],
|
||||
])('given %p', async (input: string, githubToken: string | undefined, expected: string) => {
|
||||
])('given %o', async (input: string, githubToken: string | undefined, expected: string) => {
|
||||
expect(Build.resolveCacheToAttrs(input, githubToken)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
@@ -271,7 +399,7 @@ describe('hasLocalExporter', () => {
|
||||
[['"type=tar","dest=/tmp/image.tar"'], false],
|
||||
[['" type= local" , dest=./release-out'], true],
|
||||
[['.'], true]
|
||||
])('given %p returns %p', async (exporters: Array<string>, expected: boolean) => {
|
||||
])('given %o returns %o', async (exporters: Array<string>, expected: boolean) => {
|
||||
expect(Build.hasLocalExporter(exporters)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
@@ -287,7 +415,7 @@ describe('hasTarExporter', () => {
|
||||
[['"type=tar","dest=/tmp/image.tar"'], true],
|
||||
[['" type= local" , dest=./release-out'], false],
|
||||
[['.'], false]
|
||||
])('given %p returns %p', async (exporters: Array<string>, expected: boolean) => {
|
||||
])('given %o returns %o', async (exporters: Array<string>, expected: boolean) => {
|
||||
expect(Build.hasTarExporter(exporters)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
@@ -305,7 +433,7 @@ describe('hasDockerExporter', () => {
|
||||
[['type=docker'], true, false],
|
||||
[['type=docker'], true, true],
|
||||
[['.'], true, true],
|
||||
])('given %p returns %p', async (exporters: Array<string>, expected: boolean, load: boolean | undefined) => {
|
||||
])('given %o returns %o', async (exporters: Array<string>, expected: boolean, load: boolean | undefined) => {
|
||||
expect(Build.hasDockerExporter(exporters, load)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
@@ -316,7 +444,7 @@ describe('hasAttestationType', () => {
|
||||
['type=provenance,mode=min', 'provenance', true],
|
||||
['type=sbom,true', 'sbom', true],
|
||||
['type=foo,bar', 'provenance', false],
|
||||
])('given %p for %p returns %p', async (attrs: string, name: string, expected: boolean) => {
|
||||
])('given %o for %o returns %o', async (attrs: string, name: string, expected: boolean) => {
|
||||
expect(Build.hasAttestationType(name, attrs)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
@@ -340,7 +468,7 @@ describe('resolveAttestationAttrs', () => {
|
||||
'',
|
||||
''
|
||||
],
|
||||
])('given %p', async (input: string, expected: string) => {
|
||||
])('given %o', async (input: string, expected: string) => {
|
||||
expect(Build.resolveAttestationAttrs(input)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
@@ -351,7 +479,7 @@ describe('hasGitAuthTokenSecret', () => {
|
||||
[['A_SECRET=abcdef0123456789'], undefined, false],
|
||||
[['GIT_AUTH_TOKEN=abcdefghijklmno=0123456789'], undefined, true],
|
||||
[['GIT_AUTH_TOKEN.github.com=abcdefghijklmno=0123456789'], 'github.com', true],
|
||||
])('given %p secret', async (kvp: Array<string>, domain: string | undefined, expected: boolean) => {
|
||||
])('given %o secret', async (kvp: Array<string>, domain: string | undefined, expected: boolean) => {
|
||||
expect(Build.hasGitAuthTokenSecret(kvp, domain)).toBe(expected);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -548,7 +548,7 @@ baz = qux
|
||||
]
|
||||
}
|
||||
],
|
||||
])('given %p', async (inspectFile, expected) => {
|
||||
])('given %o', async (inspectFile, expected) => {
|
||||
expect(await Builder.parseInspect(fs.readFileSync(path.join(fixturesDir, inspectFile)).toString())).toEqual(expected);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -145,7 +145,7 @@ describe('parseVersion', () => {
|
||||
['github.com/docker/buildx v0.4.1 bda4882a65349ca359216b135896bddc1d92461c', '0.4.1'],
|
||||
['github.com/docker/buildx v0.4.2 fb7b670b764764dc4716df3eba07ffdae4cc47b2', '0.4.2'],
|
||||
['github.com/docker/buildx f117971 f11797113e5a9b86bd976329c5dbb8a8bfdfadfa', 'f117971']
|
||||
])('given %p', async (stdout, expected) => {
|
||||
])('given %o', async (stdout, expected) => {
|
||||
expect(Buildx.parseVersion(stdout)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
@@ -155,7 +155,7 @@ describe('versionSatisfies', () => {
|
||||
['0.4.1', '>=0.3.2', true],
|
||||
['bda4882a65349ca359216b135896bddc1d92461c', '>0.1.0', false],
|
||||
['f117971', '>0.6.0', true]
|
||||
])('given %p', async (version, range, expected) => {
|
||||
])('given %o', async (version, range, expected) => {
|
||||
const buildx = new Buildx();
|
||||
expect(await buildx.versionSatisfies(range, version)).toBe(expected);
|
||||
});
|
||||
@@ -236,7 +236,7 @@ describe('resolveCertsDriverOpts', () => {
|
||||
],
|
||||
[]
|
||||
],
|
||||
])('%p. given %p endpoint, %p driver', async (id: number, endpoint: string, driver: string, cert: Cert, expectedFiles: Array<string>, expectedOpts: Array<string>) => {
|
||||
])('%o. given %o endpoint, %o driver', async (id: number, endpoint: string, driver: string, cert: Cert, expectedFiles: Array<string>, expectedOpts: Array<string>) => {
|
||||
fs.mkdirSync(Buildx.certsDir, {recursive: true});
|
||||
expect(Buildx.resolveCertsDriverOpts(driver, endpoint, cert)).toEqual(expectedOpts);
|
||||
for (const k in expectedFiles) {
|
||||
@@ -298,7 +298,7 @@ describe('localState', () => {
|
||||
DockerfilePath: '-'
|
||||
} as LocalState,
|
||||
]
|
||||
])('given %p', async (ref: string, expected: LocalState) => {
|
||||
])('given %o', async (ref: string, expected: LocalState) => {
|
||||
const localState = Buildx.localState(ref, path.join(fixturesDir, 'buildx-refs'));
|
||||
expect(localState).toEqual(expected);
|
||||
});
|
||||
|
||||
@@ -187,40 +187,4 @@ maybe('export', () => {
|
||||
expect(fs.existsSync(exportRes?.dockerbuildFilename)).toBe(true);
|
||||
expect(exportRes?.summaries).toBeDefined();
|
||||
});
|
||||
|
||||
it('export using container', async () => {
|
||||
const buildx = new Buildx();
|
||||
const build = new Build({buildx: buildx});
|
||||
|
||||
fs.mkdirSync(tmpDir, {recursive: true});
|
||||
await expect(
|
||||
(async () => {
|
||||
// prettier-ignore
|
||||
const buildCmd = await buildx.getCommand([
|
||||
'--builder', process.env.CTN_BUILDER_NAME ?? 'default',
|
||||
'build', '-f', path.join(fixturesDir, 'hello.Dockerfile'),
|
||||
'--metadata-file', build.getMetadataFilePath(),
|
||||
fixturesDir
|
||||
]);
|
||||
await Exec.exec(buildCmd.command, buildCmd.args);
|
||||
})()
|
||||
).resolves.not.toThrow();
|
||||
|
||||
const metadata = build.resolveMetadata();
|
||||
expect(metadata).toBeDefined();
|
||||
const buildRef = build.resolveRef(metadata);
|
||||
expect(buildRef).toBeDefined();
|
||||
|
||||
const history = new History({buildx: buildx});
|
||||
const exportRes = await history.export({
|
||||
refs: [buildRef ?? ''],
|
||||
useContainer: true
|
||||
});
|
||||
|
||||
expect(exportRes).toBeDefined();
|
||||
expect(exportRes?.dockerbuildFilename).toBeDefined();
|
||||
expect(exportRes?.dockerbuildSize).toBeDefined();
|
||||
expect(fs.existsSync(exportRes?.dockerbuildFilename)).toBe(true);
|
||||
expect(exportRes?.summaries).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -30,12 +30,12 @@ const maybe = !process.env.GITHUB_ACTIONS || (process.env.GITHUB_ACTIONS === 'tr
|
||||
|
||||
maybe('inspectImage', () => {
|
||||
it('inspect single platform', async () => {
|
||||
const image = await new ImageTools().inspectImage('moby/buildkit:latest@sha256:5769c54b98840147b74128f38fb0b0a049e24b11a75bd81664131edd2854593f');
|
||||
const image = await new ImageTools().inspectImage({name: 'moby/buildkit:latest@sha256:5769c54b98840147b74128f38fb0b0a049e24b11a75bd81664131edd2854593f'});
|
||||
const expectedImage = <Image>JSON.parse(fs.readFileSync(path.join(fixturesDir, 'imagetools-01.json'), {encoding: 'utf-8'}).trim());
|
||||
expect(image).toEqual(expectedImage);
|
||||
});
|
||||
it('inspect multi platform', async () => {
|
||||
const image = await new ImageTools().inspectImage('moby/buildkit:latest@sha256:86c0ad9d1137c186e9d455912167df20e530bdf7f7c19de802e892bb8ca16552');
|
||||
const image = await new ImageTools().inspectImage({name: 'moby/buildkit:latest@sha256:86c0ad9d1137c186e9d455912167df20e530bdf7f7c19de802e892bb8ca16552'});
|
||||
const expectedImage = <Record<string, Image>>JSON.parse(fs.readFileSync(path.join(fixturesDir, 'imagetools-02.json'), {encoding: 'utf-8'}).trim());
|
||||
expect(image).toEqual(expectedImage);
|
||||
});
|
||||
@@ -43,12 +43,12 @@ maybe('inspectImage', () => {
|
||||
|
||||
maybe('inspectManifest', () => {
|
||||
it('inspect descriptor', async () => {
|
||||
const manifest = await new ImageTools().inspectManifest('moby/buildkit:latest@sha256:dccc69dd895968c4f21aa9e43e715f25f0cedfce4b17f1014c88c307928e22fc');
|
||||
const manifest = await new ImageTools().inspectManifest({name: 'moby/buildkit:latest@sha256:dccc69dd895968c4f21aa9e43e715f25f0cedfce4b17f1014c88c307928e22fc'});
|
||||
const expectedManifest = <Descriptor>JSON.parse(fs.readFileSync(path.join(fixturesDir, 'imagetools-03.json'), {encoding: 'utf-8'}).trim());
|
||||
expect(manifest).toEqual(expectedManifest);
|
||||
});
|
||||
it('inspect index', async () => {
|
||||
const manifest = await new ImageTools().inspectManifest('moby/buildkit:latest@sha256:79cc6476ab1a3371c9afd8b44e7c55610057c43e18d9b39b68e2b0c2475cc1b6');
|
||||
const manifest = await new ImageTools().inspectManifest({name: 'moby/buildkit:latest@sha256:79cc6476ab1a3371c9afd8b44e7c55610057c43e18d9b39b68e2b0c2475cc1b6'});
|
||||
const expectedManifest = <ImageToolsManifest>JSON.parse(fs.readFileSync(path.join(fixturesDir, 'imagetools-04.json'), {encoding: 'utf-8'}).trim());
|
||||
expect(manifest).toEqual(expectedManifest);
|
||||
});
|
||||
@@ -56,17 +56,17 @@ maybe('inspectManifest', () => {
|
||||
|
||||
maybe('attestationDescriptors', () => {
|
||||
it('returns buildkit attestations descriptors', async () => {
|
||||
const attestations = await new ImageTools().attestationDescriptors('moby/buildkit:latest@sha256:79cc6476ab1a3371c9afd8b44e7c55610057c43e18d9b39b68e2b0c2475cc1b6');
|
||||
const attestations = await new ImageTools().attestationDescriptors({name: 'moby/buildkit:latest@sha256:79cc6476ab1a3371c9afd8b44e7c55610057c43e18d9b39b68e2b0c2475cc1b6'});
|
||||
const expectedAttestations = <Array<Descriptor>>JSON.parse(fs.readFileSync(path.join(fixturesDir, 'imagetools-05.json'), {encoding: 'utf-8'}).trim());
|
||||
expect(attestations).toEqual(expectedAttestations);
|
||||
});
|
||||
it('returns buildkit attestations descriptors for linux/amd64', async () => {
|
||||
const attestations = await new ImageTools().attestationDescriptors('moby/buildkit:latest@sha256:79cc6476ab1a3371c9afd8b44e7c55610057c43e18d9b39b68e2b0c2475cc1b6', {os: 'linux', architecture: 'amd64'});
|
||||
const attestations = await new ImageTools().attestationDescriptors({name: 'moby/buildkit:latest@sha256:79cc6476ab1a3371c9afd8b44e7c55610057c43e18d9b39b68e2b0c2475cc1b6', platform: {os: 'linux', architecture: 'amd64'}});
|
||||
const expectedAttestations = <Array<Descriptor>>JSON.parse(fs.readFileSync(path.join(fixturesDir, 'imagetools-06.json'), {encoding: 'utf-8'}).trim());
|
||||
expect(attestations).toEqual(expectedAttestations);
|
||||
});
|
||||
it('returns buildkit attestations descriptors for linux/arm/v7', async () => {
|
||||
const attestations = await new ImageTools().attestationDescriptors('moby/buildkit:latest@sha256:79cc6476ab1a3371c9afd8b44e7c55610057c43e18d9b39b68e2b0c2475cc1b6', {os: 'linux', architecture: 'arm', variant: 'v7'});
|
||||
const attestations = await new ImageTools().attestationDescriptors({name: 'moby/buildkit:latest@sha256:79cc6476ab1a3371c9afd8b44e7c55610057c43e18d9b39b68e2b0c2475cc1b6', platform: {os: 'linux', architecture: 'arm', variant: 'v7'}});
|
||||
const expectedAttestations = <Array<Descriptor>>JSON.parse(fs.readFileSync(path.join(fixturesDir, 'imagetools-07.json'), {encoding: 'utf-8'}).trim());
|
||||
expect(attestations).toEqual(expectedAttestations);
|
||||
});
|
||||
@@ -74,7 +74,7 @@ maybe('attestationDescriptors', () => {
|
||||
|
||||
maybe('attestationDigests', () => {
|
||||
it('returns buildkit attestations digests', async () => {
|
||||
const digests = await new ImageTools().attestationDigests('moby/buildkit:latest@sha256:79cc6476ab1a3371c9afd8b44e7c55610057c43e18d9b39b68e2b0c2475cc1b6');
|
||||
const digests = await new ImageTools().attestationDigests({name: 'moby/buildkit:latest@sha256:79cc6476ab1a3371c9afd8b44e7c55610057c43e18d9b39b68e2b0c2475cc1b6'});
|
||||
// prettier-ignore
|
||||
expect(digests).toEqual([
|
||||
'sha256:2ba4ad6eae1efcafee73a971953093c7c32b6938f2f9fd4998c8bf4d0fbe76f2',
|
||||
@@ -86,11 +86,22 @@ maybe('attestationDigests', () => {
|
||||
]);
|
||||
});
|
||||
it('returns buildkit attestations digests for linux/amd64', async () => {
|
||||
const digests = await new ImageTools().attestationDigests('moby/buildkit:latest@sha256:79cc6476ab1a3371c9afd8b44e7c55610057c43e18d9b39b68e2b0c2475cc1b6', {os: 'linux', architecture: 'amd64'});
|
||||
const digests = await new ImageTools().attestationDigests({name: 'moby/buildkit:latest@sha256:79cc6476ab1a3371c9afd8b44e7c55610057c43e18d9b39b68e2b0c2475cc1b6', platform: {os: 'linux', architecture: 'amd64'}});
|
||||
expect(digests).toEqual(['sha256:2ba4ad6eae1efcafee73a971953093c7c32b6938f2f9fd4998c8bf4d0fbe76f2']);
|
||||
});
|
||||
it('returns buildkit attestations digests for linux/arm/v7', async () => {
|
||||
const digests = await new ImageTools().attestationDigests('moby/buildkit:latest@sha256:79cc6476ab1a3371c9afd8b44e7c55610057c43e18d9b39b68e2b0c2475cc1b6', {os: 'linux', architecture: 'arm', variant: 'v7'});
|
||||
const digests = await new ImageTools().attestationDigests({name: 'moby/buildkit:latest@sha256:79cc6476ab1a3371c9afd8b44e7c55610057c43e18d9b39b68e2b0c2475cc1b6', platform: {os: 'linux', architecture: 'arm', variant: 'v7'}});
|
||||
expect(digests).toEqual(['sha256:0709528fae1747ce17638ad2978ee7936b38a294136eaadaf692e415f64b1e03']);
|
||||
});
|
||||
});
|
||||
|
||||
maybe('create', () => {
|
||||
it('skips create command execution when skipExec is set', async () => {
|
||||
const result = await new ImageTools().create({
|
||||
sources: ['sha256:0709528fae1747ce17638ad2978ee7936b38a294136eaadaf692e415f64b1e03'],
|
||||
tags: ['docker.io/user/app', 'docker.io/user/app2'],
|
||||
skipExec: true
|
||||
});
|
||||
expect(result).toBeUndefined();
|
||||
});
|
||||
});
|
||||
|
||||
301
__tests__/buildx/imagetools.test.ts
Normal file
301
__tests__/buildx/imagetools.test.ts
Normal file
@@ -0,0 +1,301 @@
|
||||
/**
|
||||
* Copyright 2026 actions-toolkit authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import {afterEach, beforeEach, describe, expect, it, vi} from 'vitest';
|
||||
import fs from 'fs';
|
||||
import os from 'os';
|
||||
import path from 'path';
|
||||
import * as rimraf from 'rimraf';
|
||||
|
||||
import {Buildx} from '../../src/buildx/buildx.js';
|
||||
import {ImageTools} from '../../src/buildx/imagetools.js';
|
||||
import {Context} from '../../src/context.js';
|
||||
import {Exec} from '../../src/exec.js';
|
||||
|
||||
const tmpDir = fs.mkdtempSync(path.join(process.env.TEMP || os.tmpdir(), 'buildx-imagetools-'));
|
||||
const metadataFile = path.join(tmpDir, 'imagetools-metadata.json');
|
||||
|
||||
vi.spyOn(Context, 'tmpDir').mockImplementation((): string => {
|
||||
fs.mkdirSync(tmpDir, {recursive: true});
|
||||
return tmpDir;
|
||||
});
|
||||
|
||||
vi.spyOn(Context, 'tmpName').mockImplementation((): string => {
|
||||
return metadataFile;
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
vi.useRealTimers();
|
||||
vi.clearAllMocks();
|
||||
rimraf.sync(tmpDir);
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
vi.useRealTimers();
|
||||
fs.mkdirSync(tmpDir, {recursive: true});
|
||||
});
|
||||
|
||||
describe('inspectManifest', () => {
|
||||
it('retries transient manifest unknown errors when requested', async () => {
|
||||
vi.useFakeTimers();
|
||||
|
||||
const getCommand = vi.fn().mockResolvedValue({
|
||||
command: 'docker',
|
||||
args: ['buildx', 'imagetools', 'inspect']
|
||||
});
|
||||
const buildx = {getCommand} as unknown as Buildx;
|
||||
const execSpy = vi
|
||||
.spyOn(Exec, 'getExecOutput')
|
||||
.mockResolvedValueOnce({
|
||||
exitCode: 1,
|
||||
stdout: '',
|
||||
stderr: 'ERROR: MANIFEST_UNKNOWN: manifest unknown'
|
||||
})
|
||||
.mockResolvedValueOnce({
|
||||
exitCode: 0,
|
||||
stdout: JSON.stringify({
|
||||
schemaVersion: 2,
|
||||
mediaType: 'application/vnd.oci.image.index.v1+json',
|
||||
manifests: []
|
||||
}),
|
||||
stderr: ''
|
||||
});
|
||||
|
||||
const inspectPromise = new ImageTools({buildx}).inspectManifest({
|
||||
name: 'docker.io/library/alpine:latest',
|
||||
retryOnManifestUnknown: true,
|
||||
retryLimit: 2
|
||||
});
|
||||
|
||||
await vi.runAllTimersAsync();
|
||||
|
||||
expect(await inspectPromise).toEqual({
|
||||
schemaVersion: 2,
|
||||
mediaType: 'application/vnd.oci.image.index.v1+json',
|
||||
manifests: []
|
||||
});
|
||||
expect(getCommand).toHaveBeenCalledWith(['imagetools', 'inspect', 'docker.io/library/alpine:latest', '--format', '{{json .Manifest}}']);
|
||||
expect(execSpy).toHaveBeenCalledTimes(2);
|
||||
});
|
||||
|
||||
it('does not retry non-manifest errors', async () => {
|
||||
const getCommand = vi.fn().mockResolvedValue({
|
||||
command: 'docker',
|
||||
args: ['buildx', 'imagetools', 'inspect']
|
||||
});
|
||||
const buildx = {getCommand} as unknown as Buildx;
|
||||
const execSpy = vi.spyOn(Exec, 'getExecOutput').mockResolvedValue({
|
||||
exitCode: 1,
|
||||
stdout: '',
|
||||
stderr: 'ERROR: unauthorized'
|
||||
});
|
||||
|
||||
const result = await new ImageTools({buildx})
|
||||
.inspectManifest({
|
||||
name: 'docker.io/library/alpine:latest',
|
||||
retryOnManifestUnknown: true
|
||||
})
|
||||
.then(
|
||||
value => ({value, error: undefined}),
|
||||
error => ({value: undefined, error: error as Error})
|
||||
);
|
||||
|
||||
expect(result.value).toBeUndefined();
|
||||
expect(result.error).toBeInstanceOf(Error);
|
||||
expect(result.error?.message).toContain('ERROR: unauthorized');
|
||||
|
||||
expect(execSpy).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
});
|
||||
|
||||
describe('inspectImage', () => {
|
||||
it('retries transient manifest unknown errors when requested', async () => {
|
||||
vi.useFakeTimers();
|
||||
|
||||
const getCommand = vi.fn().mockResolvedValue({
|
||||
command: 'docker',
|
||||
args: ['buildx', 'imagetools', 'inspect']
|
||||
});
|
||||
const buildx = {getCommand} as unknown as Buildx;
|
||||
const execSpy = vi
|
||||
.spyOn(Exec, 'getExecOutput')
|
||||
.mockResolvedValueOnce({
|
||||
exitCode: 1,
|
||||
stdout: '',
|
||||
stderr: 'ERROR: MANIFEST_UNKNOWN: manifest unknown'
|
||||
})
|
||||
.mockResolvedValueOnce({
|
||||
exitCode: 0,
|
||||
stdout: JSON.stringify({
|
||||
config: {
|
||||
digest: 'sha256:test'
|
||||
}
|
||||
}),
|
||||
stderr: ''
|
||||
});
|
||||
|
||||
const inspectPromise = new ImageTools({buildx}).inspectImage({
|
||||
name: 'docker.io/library/alpine:latest',
|
||||
retryOnManifestUnknown: true,
|
||||
retryLimit: 2
|
||||
});
|
||||
|
||||
await vi.runAllTimersAsync();
|
||||
|
||||
expect(await inspectPromise).toEqual({
|
||||
config: {
|
||||
digest: 'sha256:test'
|
||||
}
|
||||
});
|
||||
expect(getCommand).toHaveBeenCalledWith(['imagetools', 'inspect', 'docker.io/library/alpine:latest', '--format', '{{json .Image}}']);
|
||||
expect(execSpy).toHaveBeenCalledTimes(2);
|
||||
});
|
||||
});
|
||||
|
||||
describe('create', () => {
|
||||
it('parses metadata and supports cwd sources', async () => {
|
||||
const getCommand = vi.fn().mockResolvedValue({
|
||||
command: 'docker',
|
||||
args: ['buildx', 'imagetools', 'create']
|
||||
});
|
||||
const buildx = {getCommand} as unknown as Buildx;
|
||||
|
||||
fs.writeFileSync(
|
||||
metadataFile,
|
||||
JSON.stringify({
|
||||
'containerimage.descriptor': {
|
||||
mediaType: 'application/vnd.oci.image.index.v1+json',
|
||||
digest: 'sha256:19ffeab6f8bc9293ac2c3fdf94ebe28396254c993aea0b5a542cfb02e0883fa3',
|
||||
size: 4654
|
||||
},
|
||||
'image.name': 'docker.io/user/app,docker.io/user/app2'
|
||||
})
|
||||
);
|
||||
|
||||
const execSpy = vi.spyOn(Exec, 'getExecOutput').mockResolvedValue({
|
||||
exitCode: 0,
|
||||
stdout: '',
|
||||
stderr: ''
|
||||
});
|
||||
|
||||
const result = await new ImageTools({buildx}).create({
|
||||
sources: ['cwd://descriptor.json', 'docker.io/library/alpine:latest'],
|
||||
tags: ['docker.io/user/app:latest'],
|
||||
silent: true
|
||||
});
|
||||
|
||||
expect(getCommand).toHaveBeenCalledWith(['imagetools', 'create', '--tag', 'docker.io/user/app:latest', '--metadata-file', metadataFile, '--file', 'descriptor.json', 'docker.io/library/alpine:latest']);
|
||||
expect(execSpy).toHaveBeenCalledWith('docker', ['buildx', 'imagetools', 'create'], {
|
||||
ignoreReturnCode: true,
|
||||
silent: true
|
||||
});
|
||||
expect(result).toEqual({
|
||||
digest: 'sha256:19ffeab6f8bc9293ac2c3fdf94ebe28396254c993aea0b5a542cfb02e0883fa3',
|
||||
descriptor: {
|
||||
mediaType: 'application/vnd.oci.image.index.v1+json',
|
||||
digest: 'sha256:19ffeab6f8bc9293ac2c3fdf94ebe28396254c993aea0b5a542cfb02e0883fa3',
|
||||
size: 4654
|
||||
},
|
||||
imageNames: ['docker.io/user/app', 'docker.io/user/app2']
|
||||
});
|
||||
});
|
||||
|
||||
it('does not parse metadata in dry-run mode', async () => {
|
||||
const getCommand = vi.fn().mockResolvedValue({
|
||||
command: 'docker',
|
||||
args: ['buildx', 'imagetools', 'create']
|
||||
});
|
||||
const buildx = {getCommand} as unknown as Buildx;
|
||||
|
||||
const execSpy = vi.spyOn(Exec, 'getExecOutput').mockResolvedValue({
|
||||
exitCode: 0,
|
||||
stdout: '',
|
||||
stderr: ''
|
||||
});
|
||||
|
||||
const result = await new ImageTools({buildx}).create({
|
||||
sources: ['docker.io/library/alpine:latest'],
|
||||
dryRun: true,
|
||||
silent: true
|
||||
});
|
||||
|
||||
expect(getCommand).toHaveBeenCalledWith(['imagetools', 'create', '--dry-run', 'docker.io/library/alpine:latest']);
|
||||
expect(execSpy).toHaveBeenCalledWith('docker', ['buildx', 'imagetools', 'create'], {
|
||||
ignoreReturnCode: true,
|
||||
silent: true
|
||||
});
|
||||
expect(result).toBeUndefined();
|
||||
});
|
||||
|
||||
it('passes annotations to imagetools create', async () => {
|
||||
const getCommand = vi.fn().mockResolvedValue({
|
||||
command: 'docker',
|
||||
args: ['buildx', 'imagetools', 'create']
|
||||
});
|
||||
const buildx = {getCommand} as unknown as Buildx;
|
||||
|
||||
const execSpy = vi.spyOn(Exec, 'getExecOutput').mockResolvedValue({
|
||||
exitCode: 0,
|
||||
stdout: '',
|
||||
stderr: ''
|
||||
});
|
||||
|
||||
const result = await new ImageTools({buildx}).create({
|
||||
sources: ['docker.io/library/alpine:latest'],
|
||||
annotations: ['index:org.opencontainers.image.title=Alpine', 'manifest-descriptor:org.opencontainers.image.description=Base image'],
|
||||
silent: true
|
||||
});
|
||||
|
||||
expect(getCommand).toHaveBeenCalledWith([
|
||||
'imagetools',
|
||||
'create',
|
||||
'--annotation',
|
||||
'index:org.opencontainers.image.title=Alpine',
|
||||
'--annotation',
|
||||
'manifest-descriptor:org.opencontainers.image.description=Base image',
|
||||
'--metadata-file',
|
||||
metadataFile,
|
||||
'docker.io/library/alpine:latest'
|
||||
]);
|
||||
expect(execSpy).toHaveBeenCalledWith('docker', ['buildx', 'imagetools', 'create'], {
|
||||
ignoreReturnCode: true,
|
||||
silent: true
|
||||
});
|
||||
expect(result).toBeUndefined();
|
||||
});
|
||||
|
||||
it('skips command execution when skipExec is enabled', async () => {
|
||||
const getCommand = vi.fn().mockResolvedValue({
|
||||
command: 'docker',
|
||||
args: ['buildx', 'imagetools', 'create']
|
||||
});
|
||||
const buildx = {getCommand} as unknown as Buildx;
|
||||
const execSpy = vi.spyOn(Exec, 'getExecOutput').mockResolvedValue({
|
||||
exitCode: 0,
|
||||
stdout: '',
|
||||
stderr: ''
|
||||
});
|
||||
|
||||
const result = await new ImageTools({buildx}).create({
|
||||
sources: ['docker.io/library/alpine:latest'],
|
||||
skipExec: true
|
||||
});
|
||||
|
||||
expect(getCommand).toHaveBeenCalledWith(['imagetools', 'create', '--metadata-file', metadataFile, 'docker.io/library/alpine:latest']);
|
||||
expect(execSpy).not.toHaveBeenCalled();
|
||||
expect(result).toBeUndefined();
|
||||
});
|
||||
});
|
||||
@@ -37,7 +37,7 @@ describe('download', () => {
|
||||
['v0.10.5', true],
|
||||
['latest', true]
|
||||
])(
|
||||
'acquires %p of buildx (standalone: %p)', async (version, standalone) => {
|
||||
'acquires %o of buildx (standalone: %o)', async (version, standalone) => {
|
||||
const install = new Install({standalone: standalone});
|
||||
const toolPath = await install.download({version});
|
||||
expect(fs.existsSync(toolPath)).toBe(true);
|
||||
@@ -56,7 +56,7 @@ describe('download', () => {
|
||||
['v0.9.0'],
|
||||
['v0.10.5'],
|
||||
])(
|
||||
'acquires %p of buildx with cache', async (version) => {
|
||||
'acquires %o of buildx with cache', async (version) => {
|
||||
const install = new Install({standalone: false});
|
||||
const toolPath = await install.download({version});
|
||||
expect(fs.existsSync(toolPath)).toBe(true);
|
||||
@@ -67,7 +67,7 @@ describe('download', () => {
|
||||
['v0.11.2'],
|
||||
['v0.12.0'],
|
||||
])(
|
||||
'acquires %p of buildx without cache', async (version) => {
|
||||
'acquires %o of buildx without cache', async (version) => {
|
||||
const install = new Install({standalone: false});
|
||||
const toolPath = await install.download({version: version, ghaNoCache: true});
|
||||
expect(fs.existsSync(toolPath)).toBe(true);
|
||||
|
||||
@@ -101,7 +101,7 @@ describe('parseVersion', () => {
|
||||
// prettier-ignore
|
||||
test.each([
|
||||
['Docker Compose version v2.31.0', '2.31.0'],
|
||||
])('given %p', async (stdout, expected) => {
|
||||
])('given %o', async (stdout, expected) => {
|
||||
expect(Compose.parseVersion(stdout)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -37,7 +37,7 @@ describe('download', () => {
|
||||
['v2.32.4', true],
|
||||
['latest', true]
|
||||
])(
|
||||
'acquires %p of compose (standalone: %p)', async (version, standalone) => {
|
||||
'acquires %o of compose (standalone: %o)', async (version, standalone) => {
|
||||
const install = new Install({standalone: standalone});
|
||||
const toolPath = await install.download(version);
|
||||
expect(fs.existsSync(toolPath)).toBe(true);
|
||||
@@ -56,7 +56,7 @@ describe('download', () => {
|
||||
['v2.31.0'],
|
||||
['v2.32.4'],
|
||||
])(
|
||||
'acquires %p of compose with cache', async (version) => {
|
||||
'acquires %o of compose with cache', async (version) => {
|
||||
const install = new Install({standalone: false});
|
||||
const toolPath = await install.download(version);
|
||||
expect(fs.existsSync(toolPath)).toBe(true);
|
||||
@@ -67,7 +67,7 @@ describe('download', () => {
|
||||
['v2.27.1'],
|
||||
['v2.28.0'],
|
||||
])(
|
||||
'acquires %p of compose without cache', async (version) => {
|
||||
'acquires %o of compose without cache', async (version) => {
|
||||
const install = new Install({standalone: false});
|
||||
const toolPath = await install.download(version, true);
|
||||
expect(fs.existsSync(toolPath)).toBe(true);
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import {describe, expect, vi, it, afterEach, beforeEach, test} from 'vitest';
|
||||
import {describe, expect, it, afterEach} from 'vitest';
|
||||
import fs from 'fs';
|
||||
import os from 'os';
|
||||
import path from 'path';
|
||||
@@ -23,57 +23,35 @@ import * as rimraf from 'rimraf';
|
||||
import {Context} from '../src/context.js';
|
||||
|
||||
const tmpDir = fs.mkdtempSync(path.join(process.env.TEMP || os.tmpdir(), 'context-'));
|
||||
const tmpName = path.join(tmpDir, '.tmpname-vi');
|
||||
|
||||
vi.spyOn(Context, 'tmpDir').mockImplementation((): string => {
|
||||
fs.mkdirSync(tmpDir, {recursive: true});
|
||||
return tmpDir;
|
||||
});
|
||||
|
||||
vi.spyOn(Context, 'tmpName').mockImplementation((): string => {
|
||||
return tmpName;
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
rimraf.sync(tmpDir);
|
||||
fs.mkdirSync(tmpDir, {recursive: true});
|
||||
});
|
||||
|
||||
describe('gitRef', () => {
|
||||
it('returns refs/heads/master', async () => {
|
||||
expect(Context.gitRef()).toEqual('refs/heads/master');
|
||||
describe('tmpDir', () => {
|
||||
it('returns an existing directory and keeps it stable', () => {
|
||||
const dir = Context.tmpDir();
|
||||
expect(fs.existsSync(dir)).toBe(true);
|
||||
expect(fs.statSync(dir).isDirectory()).toBe(true);
|
||||
expect(Context.tmpDir()).toEqual(dir);
|
||||
});
|
||||
});
|
||||
|
||||
describe('parseGitRef', () => {
|
||||
const originalEnv = process.env;
|
||||
beforeEach(() => {
|
||||
vi.resetModules();
|
||||
process.env = {
|
||||
...originalEnv,
|
||||
DOCKER_GIT_CONTEXT_PR_HEAD_REF: ''
|
||||
};
|
||||
describe('tmpName', () => {
|
||||
it('returns a path for the provided tmpdir and template', () => {
|
||||
const name = Context.tmpName({
|
||||
tmpdir: tmpDir,
|
||||
template: '.tmpname-XXXXXX'
|
||||
});
|
||||
expect(path.dirname(name)).toEqual(tmpDir);
|
||||
expect(path.basename(name)).toMatch(/^\.tmpname-/);
|
||||
expect(fs.existsSync(name)).toBe(false);
|
||||
});
|
||||
afterEach(() => {
|
||||
process.env = originalEnv;
|
||||
});
|
||||
// prettier-ignore
|
||||
test.each([
|
||||
['refs/heads/master', '860c1904a1ce19322e91ac35af1ab07466440c37', false, '860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
['master', '860c1904a1ce19322e91ac35af1ab07466440c37', false, '860c1904a1ce19322e91ac35af1ab07466440c37'],
|
||||
['refs/pull/15/merge', '860c1904a1ce19322e91ac35af1ab07466440c37', false, 'refs/pull/15/merge'],
|
||||
['refs/heads/master', '', false, 'refs/heads/master'],
|
||||
['master', '', false, 'master'],
|
||||
['refs/tags/v1.0.0', '', false, 'refs/tags/v1.0.0'],
|
||||
['refs/pull/15/merge', '', false, 'refs/pull/15/merge'],
|
||||
['refs/pull/15/merge', '', true, 'refs/pull/15/head'],
|
||||
])('given %p and %p, should return %p', async (ref: string, sha: string, prHeadRef: boolean, expected: string) => {
|
||||
process.env.DOCKER_DEFAULT_GIT_CONTEXT_PR_HEAD_REF = prHeadRef ? 'true' : '';
|
||||
expect(Context.parseGitRef(ref, sha)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
|
||||
describe('gitContext', () => {
|
||||
it('returns refs/heads/master', async () => {
|
||||
expect(Context.gitContext()).toEqual('https://github.com/docker/actions-toolkit.git#refs/heads/master');
|
||||
it('returns different paths on consecutive calls', () => {
|
||||
const first = Context.tmpName({tmpdir: tmpDir, template: '.tmpname-XXXXXX'});
|
||||
const second = Context.tmpName({tmpdir: tmpDir, template: '.tmpname-XXXXXX'});
|
||||
expect(first).not.toEqual(second);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -59,7 +59,7 @@ describe('versionSatisfies', () => {
|
||||
['v0.4.1', '>=0.3.2', true],
|
||||
['v0.8.0', '>0.6.0', true],
|
||||
['v0.8.0', '<0.3.0', false]
|
||||
])('given %p', async (version, range, expected) => {
|
||||
])('given %o', async (version, range, expected) => {
|
||||
const cosign = new Cosign();
|
||||
expect(await cosign.versionSatisfies(range, version)).toBe(expected);
|
||||
});
|
||||
@@ -71,7 +71,7 @@ describe('parseCommandOutput', () => {
|
||||
[path.join(fixturesDir, 'cosign', 'sign-output1.txt')],
|
||||
[path.join(fixturesDir, 'cosign', 'sign-output2.txt')],
|
||||
[path.join(fixturesDir, 'cosign', 'sign-output3.txt')],
|
||||
])('parsing %p', async (fixturePath: string) => {
|
||||
])('parsing %o', async (fixturePath: string) => {
|
||||
const signResult = Cosign.parseCommandOutput(fs.readFileSync(fixturePath, 'utf-8'));
|
||||
expect(signResult).toBeDefined();
|
||||
expect(signResult.bundle).toBeDefined();
|
||||
@@ -80,7 +80,7 @@ describe('parseCommandOutput', () => {
|
||||
// prettier-ignore
|
||||
test.each([
|
||||
[path.join(fixturesDir, 'cosign', 'verify-output-err1.txt')],
|
||||
])('parsing %p', async (fixturePath: string) => {
|
||||
])('parsing %o', async (fixturePath: string) => {
|
||||
const signResult = Cosign.parseCommandOutput(fs.readFileSync(fixturePath, 'utf-8'));
|
||||
expect(signResult).toBeDefined();
|
||||
expect(signResult.bundle).toBeUndefined();
|
||||
|
||||
@@ -37,7 +37,7 @@ describe('download', () => {
|
||||
['v3.0.1'],
|
||||
['latest']
|
||||
])(
|
||||
'acquires %p of cosign', async (version) => {
|
||||
'acquires %o of cosign', async (version) => {
|
||||
const install = new Install();
|
||||
const toolPath = await install.download({version});
|
||||
expect(fs.existsSync(toolPath)).toBe(true);
|
||||
@@ -51,7 +51,7 @@ describe('download', () => {
|
||||
['v2.6.1'],
|
||||
['v3.0.1'],
|
||||
])(
|
||||
'acquires %p of cosign with cache', async (version) => {
|
||||
'acquires %o of cosign with cache', async (version) => {
|
||||
const install = new Install();
|
||||
const toolPath = await install.download({version});
|
||||
expect(fs.existsSync(toolPath)).toBe(true);
|
||||
@@ -62,7 +62,7 @@ describe('download', () => {
|
||||
['v2.5.3'],
|
||||
['v2.6.0'],
|
||||
])(
|
||||
'acquires %p of cosign without cache', async (version) => {
|
||||
'acquires %o of cosign without cache', async (version) => {
|
||||
const install = new Install();
|
||||
const toolPath = await install.download({
|
||||
version: version,
|
||||
|
||||
@@ -29,7 +29,7 @@ const tmpDir = () => fs.mkdtempSync(path.join(process.env.TEMP || os.tmpdir(), '
|
||||
|
||||
beforeAll(async () => {
|
||||
const undockInstall = new UndockInstall();
|
||||
const undockBinPath = await undockInstall.download('v0.10.0', true);
|
||||
const undockBinPath = await undockInstall.download('v0.12.0', true);
|
||||
await undockInstall.install(undockBinPath);
|
||||
|
||||
const regclientInstall = new RegclientInstall();
|
||||
|
||||
@@ -60,7 +60,7 @@ describe('download', () => {
|
||||
[image('27.3.1'), 'linux'],
|
||||
[image('27.3.1'), 'win32'],
|
||||
])(
|
||||
'acquires %p of docker (%s)', async (source, platformOS) => {
|
||||
'acquires %o of docker (%s)', async (source, platformOS) => {
|
||||
mockPlatform(platformOS as NodeJS.Platform);
|
||||
mockArch('x64');
|
||||
const install = new Install({
|
||||
|
||||
@@ -63,7 +63,7 @@ describe('releases', () => {
|
||||
['.github/docker-releases.json'],
|
||||
['.github/regclient-releases.json'],
|
||||
['.github/undock-releases.json'],
|
||||
])('returns %p', async (path: string) => {
|
||||
])('returns %o', async (path: string) => {
|
||||
const github = new GitHub();
|
||||
const releases = await github.releases('App', {
|
||||
owner: 'docker',
|
||||
|
||||
@@ -56,7 +56,7 @@ describe('loadArchive', () => {
|
||||
// prettier-ignore
|
||||
test.each(fs.readdirSync(path.join(fixturesDir, 'oci-archive')).filter(file => {
|
||||
return fs.statSync(path.join(path.join(fixturesDir, 'oci-archive'), file)).isFile();
|
||||
}).map(filename => [filename]))('extracting %p', async (filename) => {
|
||||
}).map(filename => [filename]))('extracting %o', async (filename) => {
|
||||
const res = await OCI.loadArchive({
|
||||
file: path.join(fixturesDir, 'oci-archive', filename)
|
||||
});
|
||||
|
||||
@@ -36,7 +36,7 @@ describe('download', () => {
|
||||
['v0.8.2'],
|
||||
['latest']
|
||||
])(
|
||||
'acquires %p of regclient', async (version) => {
|
||||
'acquires %o of regclient', async (version) => {
|
||||
const install = new Install();
|
||||
const toolPath = await install.download(version);
|
||||
expect(fs.existsSync(toolPath)).toBe(true);
|
||||
@@ -49,7 +49,7 @@ describe('download', () => {
|
||||
// following versions are already cached to htc from previous test cases
|
||||
['v0.8.2'],
|
||||
])(
|
||||
'acquires %p of regclient with cache', async (version) => {
|
||||
'acquires %o of regclient with cache', async (version) => {
|
||||
const install = new Install();
|
||||
const toolPath = await install.download(version);
|
||||
expect(fs.existsSync(toolPath)).toBe(true);
|
||||
@@ -59,7 +59,7 @@ describe('download', () => {
|
||||
test.each([
|
||||
['v0.8.1'],
|
||||
])(
|
||||
'acquires %p of regclient without cache', async (version) => {
|
||||
'acquires %o of regclient without cache', async (version) => {
|
||||
const install = new Install();
|
||||
const toolPath = await install.download(version, true);
|
||||
expect(fs.existsSync(toolPath)).toBe(true);
|
||||
|
||||
@@ -27,7 +27,7 @@ describe('manifestGet', () => {
|
||||
test.each([
|
||||
['moby/moby-bin:28.1.0-rc.2'],
|
||||
['crazymax/diun:4.17.0'],
|
||||
])('given %p', async image => {
|
||||
])('given %o', async image => {
|
||||
const regctl = new Regctl();
|
||||
const manifest = await regctl.manifestGet({
|
||||
image: image,
|
||||
@@ -45,7 +45,7 @@ describe('blobGet', () => {
|
||||
test.each([
|
||||
['moby/moby-bin', 'sha256:234fccbd13fde0ba978a19f728cbdc67e29bc76247ac560822bb6ae5236c0bf0'],
|
||||
['crazymax/diun', 'sha256:1e4881f66e0ec0f1710b837002107050bbbc0a231d8a42d7f422b56a139900bb'],
|
||||
])('given %p', async (repo, digest) => {
|
||||
])('given %o', async (repo, digest) => {
|
||||
const regctl = new Regctl();
|
||||
const blob = await regctl.blobGet({
|
||||
repository: repo,
|
||||
@@ -60,7 +60,7 @@ describe('image config', () => {
|
||||
test.each([
|
||||
['moby/moby-bin:28.1.0-rc.2'],
|
||||
['crazymax/diun:4.17.0'],
|
||||
])('given %p', async image => {
|
||||
])('given %o', async image => {
|
||||
const regctl = new Regctl();
|
||||
const manifest = await regctl.manifestGet({
|
||||
image: image,
|
||||
@@ -115,7 +115,7 @@ describe('versionSatisfies', () => {
|
||||
['v0.8.2', '>=0.6.0', true],
|
||||
['v0.8.0', '>0.6.0', true],
|
||||
['v0.8.0', '<0.3.0', false]
|
||||
])('given %p', async (version, range, expected) => {
|
||||
])('given %o', async (version, range, expected) => {
|
||||
const regctl = new Regctl();
|
||||
expect(await regctl.versionSatisfies(range, version)).toBe(expected);
|
||||
});
|
||||
|
||||
@@ -1,90 +0,0 @@
|
||||
/**
|
||||
* Copyright 2026 actions-toolkit authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import {beforeAll, describe, expect, it} from 'vitest';
|
||||
import * as path from 'path';
|
||||
|
||||
import {Buildx} from '../../src/buildx/buildx.js';
|
||||
import {Build} from '../../src/buildx/build.js';
|
||||
import {Install as CosignInstall} from '../../src/cosign/install.js';
|
||||
import {Docker} from '../../src/docker/docker.js';
|
||||
import {Exec} from '../../src/exec.js';
|
||||
import {Sigstore} from '../../src/sigstore/sigstore.js';
|
||||
|
||||
const fixturesDir = path.join(__dirname, '..', '.fixtures');
|
||||
|
||||
const runTest = process.env.GITHUB_ACTIONS && process.env.GITHUB_ACTIONS === 'true' && process.env.ImageOS && process.env.ImageOS.startsWith('ubuntu');
|
||||
|
||||
const maybeIdToken = runTest && process.env.ACTIONS_ID_TOKEN_REQUEST_URL ? describe : describe.skip;
|
||||
|
||||
beforeAll(async () => {
|
||||
const cosignInstall = new CosignInstall();
|
||||
const cosignBinPath = await cosignInstall.download({
|
||||
version: 'v3.0.2'
|
||||
});
|
||||
await cosignInstall.install(cosignBinPath);
|
||||
}, 100000);
|
||||
|
||||
maybeIdToken('signAttestationManifests', () => {
|
||||
it('build, sign and verify', async () => {
|
||||
const buildx = new Buildx();
|
||||
const build = new Build({buildx: buildx});
|
||||
const imageName = 'ghcr.io/docker/actions-toolkit/test';
|
||||
|
||||
await expect(
|
||||
(async () => {
|
||||
await Docker.getExecOutput(['login', '--password-stdin', '--username', process.env.GITHUB_REPOSITORY_OWNER || 'docker', 'ghcr.io'], {
|
||||
input: Buffer.from(process.env.GITHUB_TOKEN || '')
|
||||
});
|
||||
})()
|
||||
).resolves.not.toThrow();
|
||||
|
||||
await expect(
|
||||
(async () => {
|
||||
// prettier-ignore
|
||||
const buildCmd = await buildx.getCommand([
|
||||
'--builder', process.env.CTN_BUILDER_NAME ?? 'default',
|
||||
'build',
|
||||
'-f', path.join(fixturesDir, 'hello.Dockerfile'),
|
||||
'--provenance=mode=max',
|
||||
'--tag', `${imageName}:sigstore-itg`,
|
||||
'--platform', 'linux/amd64,linux/arm64',
|
||||
'--push',
|
||||
'--metadata-file', build.getMetadataFilePath(),
|
||||
fixturesDir
|
||||
]);
|
||||
await Exec.exec(buildCmd.command, buildCmd.args);
|
||||
})()
|
||||
).resolves.not.toThrow();
|
||||
|
||||
const metadata = build.resolveMetadata();
|
||||
expect(metadata).toBeDefined();
|
||||
const buildDigest = build.resolveDigest(metadata);
|
||||
expect(buildDigest).toBeDefined();
|
||||
|
||||
const sigstore = new Sigstore();
|
||||
const signResults = await sigstore.signAttestationManifests({
|
||||
imageNames: [imageName],
|
||||
imageDigest: buildDigest!
|
||||
});
|
||||
expect(Object.keys(signResults).length).toEqual(2);
|
||||
|
||||
const verifyResults = await sigstore.verifySignedManifests(signResults, {
|
||||
certificateIdentityRegexp: `^https://github.com/docker/actions-toolkit/.github/workflows/test.yml.*$`
|
||||
});
|
||||
expect(Object.keys(verifyResults).length).toEqual(2);
|
||||
}, 100000);
|
||||
});
|
||||
@@ -16,10 +16,12 @@
|
||||
|
||||
import {beforeAll, describe, expect, it, test} from 'vitest';
|
||||
import fs from 'fs';
|
||||
import os from 'os';
|
||||
import * as path from 'path';
|
||||
|
||||
import {Buildx} from '../../src/buildx/buildx.js';
|
||||
import {Build} from '../../src/buildx/build.js';
|
||||
import {Cosign} from '../../src/cosign/cosign.js';
|
||||
import {Install as CosignInstall} from '../../src/cosign/install.js';
|
||||
import {Docker} from '../../src/docker/docker.js';
|
||||
import {Exec} from '../../src/exec.js';
|
||||
@@ -33,73 +35,106 @@ const runTest = process.env.GITHUB_ACTIONS && process.env.GITHUB_ACTIONS === 'tr
|
||||
const maybe = runTest ? describe : describe.skip;
|
||||
const maybeIdToken = runTest && process.env.ACTIONS_ID_TOKEN_REQUEST_URL ? describe : describe.skip;
|
||||
|
||||
beforeAll(async () => {
|
||||
const cosignInstall = new CosignInstall();
|
||||
const cosignBinPath = await cosignInstall.download({
|
||||
version: 'v3.0.4'
|
||||
const imageName = 'ghcr.io/docker/actions-toolkit/test';
|
||||
const currentCosignVersion = 'v3.0.6';
|
||||
const signAttestationCosignVersions = ['v3.0.2', currentCosignVersion] as const;
|
||||
const installedCosign = new Map<string, Promise<string>>();
|
||||
|
||||
async function installCosign(version: string): Promise<string> {
|
||||
let installedPath = installedCosign.get(version);
|
||||
if (!installedPath) {
|
||||
installedPath = (async () => {
|
||||
const cosignInstall = new CosignInstall();
|
||||
const cosignBinPath = await cosignInstall.download({
|
||||
version
|
||||
});
|
||||
const installDir = fs.mkdtempSync(path.join(process.env.RUNNER_TEMP || os.tmpdir(), `sigstore-cosign-${version.replace(/[^a-zA-Z0-9]+/g, '-')}-`));
|
||||
return await cosignInstall.install(cosignBinPath, installDir);
|
||||
})();
|
||||
installedCosign.set(version, installedPath);
|
||||
}
|
||||
return await installedPath;
|
||||
}
|
||||
|
||||
for (const cosignVersion of signAttestationCosignVersions) {
|
||||
maybeIdToken(`signAttestationManifests with cosign ${cosignVersion}`, () => {
|
||||
let sigstore: Sigstore;
|
||||
|
||||
beforeAll(async () => {
|
||||
sigstore = new Sigstore({
|
||||
cosign: new Cosign({
|
||||
binPath: await installCosign(cosignVersion)
|
||||
})
|
||||
});
|
||||
}, 100000);
|
||||
|
||||
it('build, sign and verify', async () => {
|
||||
const buildx = new Buildx();
|
||||
const build = new Build({buildx: buildx});
|
||||
const versionTag = cosignVersion.replace(/^v/, '').replace(/\./g, '-');
|
||||
|
||||
await expect(
|
||||
(async () => {
|
||||
await Docker.getExecOutput(['login', '--password-stdin', '--username', process.env.GITHUB_REPOSITORY_OWNER || 'docker', 'ghcr.io'], {
|
||||
input: Buffer.from(process.env.GITHUB_TOKEN || '')
|
||||
});
|
||||
})()
|
||||
).resolves.not.toThrow();
|
||||
|
||||
await expect(
|
||||
(async () => {
|
||||
// prettier-ignore
|
||||
const buildCmd = await buildx.getCommand([
|
||||
'--builder', process.env.CTN_BUILDER_NAME ?? 'default',
|
||||
'build',
|
||||
'-f', path.join(fixturesDir, 'hello.Dockerfile'),
|
||||
'--provenance=mode=max',
|
||||
'--tag', `${imageName}:sigstore-itg-cosign-${versionTag}`,
|
||||
'--platform', 'linux/amd64,linux/arm64',
|
||||
'--push',
|
||||
'--metadata-file', build.getMetadataFilePath(),
|
||||
fixturesDir
|
||||
]);
|
||||
await Exec.exec(buildCmd.command, buildCmd.args);
|
||||
})()
|
||||
).resolves.not.toThrow();
|
||||
|
||||
const metadata = build.resolveMetadata();
|
||||
expect(metadata).toBeDefined();
|
||||
const buildDigest = build.resolveDigest(metadata);
|
||||
expect(buildDigest).toBeDefined();
|
||||
|
||||
const signResults = await sigstore.signAttestationManifests({
|
||||
imageNames: [imageName],
|
||||
imageDigest: buildDigest!
|
||||
});
|
||||
expect(Object.keys(signResults).length).toEqual(2);
|
||||
|
||||
const verifyResults = await sigstore.verifySignedManifests(signResults, {
|
||||
certificateIdentityRegexp: `^https://github.com/docker/actions-toolkit/.github/workflows/test.yml.*$`
|
||||
});
|
||||
expect(Object.keys(verifyResults).length).toEqual(2);
|
||||
}, 200000);
|
||||
});
|
||||
await cosignInstall.install(cosignBinPath);
|
||||
}, 100000);
|
||||
|
||||
maybeIdToken('signAttestationManifests', () => {
|
||||
it('build, sign and verify', async () => {
|
||||
const buildx = new Buildx();
|
||||
const build = new Build({buildx: buildx});
|
||||
const imageName = 'ghcr.io/docker/actions-toolkit/test';
|
||||
|
||||
await expect(
|
||||
(async () => {
|
||||
await Docker.getExecOutput(['login', '--password-stdin', '--username', process.env.GITHUB_REPOSITORY_OWNER || 'docker', 'ghcr.io'], {
|
||||
input: Buffer.from(process.env.GITHUB_TOKEN || '')
|
||||
});
|
||||
})()
|
||||
).resolves.not.toThrow();
|
||||
|
||||
await expect(
|
||||
(async () => {
|
||||
// prettier-ignore
|
||||
const buildCmd = await buildx.getCommand([
|
||||
'--builder', process.env.CTN_BUILDER_NAME ?? 'default',
|
||||
'build',
|
||||
'-f', path.join(fixturesDir, 'hello.Dockerfile'),
|
||||
'--provenance=mode=max',
|
||||
'--tag', `${imageName}:sigstore-itg`,
|
||||
'--platform', 'linux/amd64,linux/arm64',
|
||||
'--push',
|
||||
'--metadata-file', build.getMetadataFilePath(),
|
||||
fixturesDir
|
||||
]);
|
||||
await Exec.exec(buildCmd.command, buildCmd.args);
|
||||
})()
|
||||
).resolves.not.toThrow();
|
||||
|
||||
const metadata = build.resolveMetadata();
|
||||
expect(metadata).toBeDefined();
|
||||
const buildDigest = build.resolveDigest(metadata);
|
||||
expect(buildDigest).toBeDefined();
|
||||
|
||||
const sigstore = new Sigstore();
|
||||
const signResults = await sigstore.signAttestationManifests({
|
||||
imageNames: [imageName],
|
||||
imageDigest: buildDigest!
|
||||
});
|
||||
expect(Object.keys(signResults).length).toEqual(2);
|
||||
|
||||
const verifyResults = await sigstore.verifySignedManifests(signResults, {
|
||||
certificateIdentityRegexp: `^https://github.com/docker/actions-toolkit/.github/workflows/test.yml.*$`
|
||||
});
|
||||
expect(Object.keys(verifyResults).length).toEqual(2);
|
||||
}, 100000);
|
||||
});
|
||||
}
|
||||
|
||||
maybe('verifyImageAttestations', () => {
|
||||
let sigstore: Sigstore;
|
||||
|
||||
beforeAll(async () => {
|
||||
sigstore = new Sigstore({
|
||||
cosign: new Cosign({
|
||||
binPath: await installCosign(currentCosignVersion)
|
||||
})
|
||||
});
|
||||
}, 100000);
|
||||
|
||||
test.each([
|
||||
['moby/buildkit:master@sha256:84014da3581b2ff2c14cb4f60029cf9caa272b79e58f2e89c651ea6966d7a505', `^https://github.com/docker/github-builder-experimental/.github/workflows/bake.yml.*$`],
|
||||
['docker/dockerfile-upstream:master@sha256:3e8cd5ebf48acd1a1939649ad1c62ca44c029852b22493c16a9307b654334958', `^https://github.com/docker/github-builder-experimental/.github/workflows/bake.yml.*$`]
|
||||
])(
|
||||
'given %p',
|
||||
async (image, certificateIdentityRegexp) => {
|
||||
const sigstore = new Sigstore();
|
||||
const verifyResults = await sigstore.verifyImageAttestations(image, {
|
||||
certificateIdentityRegexp: certificateIdentityRegexp
|
||||
});
|
||||
@@ -114,7 +149,6 @@ maybe('verifyImageAttestations', () => {
|
||||
);
|
||||
|
||||
it('default platform', async () => {
|
||||
const sigstore = new Sigstore();
|
||||
const verifyResults = await sigstore.verifyImageAttestations('moby/buildkit:master@sha256:84014da3581b2ff2c14cb4f60029cf9caa272b79e58f2e89c651ea6966d7a505', {
|
||||
certificateIdentityRegexp: `^https://github.com/docker/github-builder-experimental/.github/workflows/bake.yml.*$`,
|
||||
platform: OCI.defaultPlatform()
|
||||
@@ -161,8 +195,17 @@ maybeIdToken('signProvenanceBlobs', () => {
|
||||
});
|
||||
|
||||
maybeIdToken('verifySignedArtifacts', () => {
|
||||
let sigstore: Sigstore;
|
||||
|
||||
beforeAll(async () => {
|
||||
sigstore = new Sigstore({
|
||||
cosign: new Cosign({
|
||||
binPath: await installCosign(currentCosignVersion)
|
||||
})
|
||||
});
|
||||
}, 100000);
|
||||
|
||||
it('sign and verify', async () => {
|
||||
const sigstore = new Sigstore();
|
||||
const signResults = await sigstore.signProvenanceBlobs({
|
||||
localExportDir: path.join(fixturesDir, 'sigstore', 'multi')
|
||||
});
|
||||
|
||||
@@ -37,7 +37,7 @@ describe('download', () => {
|
||||
['v0.7.0'],
|
||||
['latest']
|
||||
])(
|
||||
'acquires %p of undock', async (version) => {
|
||||
'acquires %o of undock', async (version) => {
|
||||
const install = new Install();
|
||||
const toolPath = await install.download(version);
|
||||
expect(fs.existsSync(toolPath)).toBe(true);
|
||||
@@ -51,7 +51,7 @@ describe('download', () => {
|
||||
['v0.4.0'],
|
||||
['v0.7.0'],
|
||||
])(
|
||||
'acquires %p of undock with cache', async (version) => {
|
||||
'acquires %o of undock with cache', async (version) => {
|
||||
const install = new Install();
|
||||
const toolPath = await install.download(version);
|
||||
expect(fs.existsSync(toolPath)).toBe(true);
|
||||
@@ -62,7 +62,7 @@ describe('download', () => {
|
||||
['v0.5.0'],
|
||||
['v0.6.0'],
|
||||
])(
|
||||
'acquires %p of undock without cache', async (version) => {
|
||||
'acquires %o of undock without cache', async (version) => {
|
||||
const install = new Install();
|
||||
const toolPath = await install.download(version, true);
|
||||
expect(fs.existsSync(toolPath)).toBe(true);
|
||||
|
||||
@@ -76,7 +76,7 @@ describe('versionSatisfies', () => {
|
||||
['v0.4.1', '>=0.3.2', true],
|
||||
['v0.8.0', '>0.6.0', true],
|
||||
['v0.8.0', '<0.3.0', false]
|
||||
])('given %p', async (version, range, expected) => {
|
||||
])('given %o', async (version, range, expected) => {
|
||||
const undock = new Undock();
|
||||
expect(await undock.versionSatisfies(range, version)).toBe(expected);
|
||||
});
|
||||
|
||||
@@ -87,6 +87,12 @@ describe('getInputList', () => {
|
||||
expect(res).toEqual(['foo=bar', 'bar=qux']);
|
||||
});
|
||||
|
||||
it('multiline with comment and no infix comment', async () => {
|
||||
setInput('labels', '# ignore this\nfoo=bar\nbar=qux#baz');
|
||||
const res = Util.getInputList('labels', {comment: '#', commentNoInfix: true});
|
||||
expect(res).toEqual(['foo=bar', 'bar=qux#baz']);
|
||||
});
|
||||
|
||||
it('different new lines and ignoring comma correctly', async () => {
|
||||
setInput('cache-from', 'user/app:cache\r\ntype=local,src=path/to/dir');
|
||||
const res = Util.getInputList('cache-from', {ignoreComma: true});
|
||||
@@ -151,6 +157,28 @@ ccc`
|
||||
]);
|
||||
});
|
||||
|
||||
it('preserves trailing new lines when trimming is disabled', async () => {
|
||||
setInput(
|
||||
'secrets',
|
||||
`"PRIVATE_SSH_KEY=TESTESTTESTESTTESTESTTESTEST
|
||||
TESTESTTESTESTTESTESTTESTEST
|
||||
TESTESTTESTESTTESTESTTESTEST
|
||||
|
||||
|
||||
"
|
||||
`
|
||||
);
|
||||
const res = Util.getInputList('secrets', {ignoreComma: true, trimWhitespace: false});
|
||||
expect(res).toEqual([
|
||||
`PRIVATE_SSH_KEY=TESTESTTESTESTTESTESTTESTEST
|
||||
TESTESTTESTESTTESTESTTESTEST
|
||||
TESTESTTESTESTTESTESTTESTEST
|
||||
|
||||
|
||||
`
|
||||
]);
|
||||
});
|
||||
|
||||
it('multiline values without quotes', async () => {
|
||||
setInput(
|
||||
'secrets',
|
||||
@@ -247,7 +275,7 @@ describe('isValidURL', () => {
|
||||
['git://github.com/user/repo.git', false],
|
||||
['github.com/moby/buildkit.git#main', false],
|
||||
['v0.4.1', false]
|
||||
])('given %p', async (url, expected) => {
|
||||
])('given %o', async (url, expected) => {
|
||||
expect(Util.isValidURL(url)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
@@ -260,7 +288,7 @@ describe('isValidRef', () => {
|
||||
['git://github.com/user/repo.git', true],
|
||||
['github.com/moby/buildkit.git#main', true],
|
||||
['v0.4.1', false]
|
||||
])('given %p', async (url, expected) => {
|
||||
])('given %o', async (url, expected) => {
|
||||
expect(Util.isValidRef(url)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
@@ -278,7 +306,7 @@ describe('trimPrefix', () => {
|
||||
['abcdabc', 'abc', 'dabc'],
|
||||
['abcabc', 'abc', 'abc'],
|
||||
['abcdabc', 'd', 'abcdabc']
|
||||
])('given %p', async (str, prefix, expected) => {
|
||||
])('given %o', async (str, prefix, expected) => {
|
||||
expect(Util.trimPrefix(str, prefix)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
@@ -295,7 +323,7 @@ describe('trimSuffix', () => {
|
||||
['abcdabc', 'abc', 'abcd'],
|
||||
['abcabc', 'abc', 'abc'],
|
||||
['abcdabc', 'd', 'abcdabc']
|
||||
])('given %p', async (str, suffix, expected) => {
|
||||
])('given %o', async (str, suffix, expected) => {
|
||||
expect(Util.trimSuffix(str, suffix)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
@@ -309,6 +337,7 @@ describe('hash', () => {
|
||||
// https://github.com/golang/go/blob/f6b93a4c358b28b350dd8fe1780c1f78e520c09c/src/strconv/atob_test.go#L36-L58
|
||||
describe('parseBool', () => {
|
||||
[
|
||||
{input: undefined, expected: false, throwsError: false},
|
||||
{input: '', expected: false, throwsError: true},
|
||||
{input: 'asdf', expected: false, throwsError: true},
|
||||
{input: '0', expected: false, throwsError: false},
|
||||
@@ -336,6 +365,13 @@ describe('parseBool', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('parseBoolOrDefault', () => {
|
||||
it('returns default value when input is invalid', () => {
|
||||
expect(Util.parseBoolOrDefault('asdf')).toBe(false);
|
||||
expect(Util.parseBoolOrDefault('asdf', true)).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('formatFileSize', () => {
|
||||
test('should return "0 Bytes" when given 0 bytes', () => {
|
||||
expect(Util.formatFileSize(0)).toBe('0 Bytes');
|
||||
@@ -378,6 +414,20 @@ describe('generateRandomString', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('compileHandlebars', () => {
|
||||
it('renders the template with the meta context and compile options', () => {
|
||||
const rendered = Util.compileHandlebars(
|
||||
'{{name}} {{{raw}}}',
|
||||
{noEscape: true},
|
||||
{
|
||||
name: 'docker',
|
||||
raw: '<strong>actions-toolkit</strong>'
|
||||
}
|
||||
);
|
||||
expect(rendered).toBe('docker <strong>actions-toolkit</strong>');
|
||||
});
|
||||
});
|
||||
|
||||
describe('stringToUnicodeEntities', () => {
|
||||
it('should convert a string to Unicode entities', () => {
|
||||
const input = 'Hello, World!';
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
ARG NODE_VERSION=20
|
||||
ARG DOCKER_VERSION=29.2
|
||||
ARG BUILDX_VERSION=0.32.0-rc1
|
||||
ARG COMPOSE_VERSION=2.39.1
|
||||
ARG UNDOCK_VERSION=0.10.0
|
||||
ARG REGCTL_VERSION=v0.8.2
|
||||
ARG COSIGN_VERSION=v3.0.3
|
||||
ARG NODE_VERSION=24
|
||||
ARG DOCKER_VERSION=29.4
|
||||
ARG BUILDX_VERSION=0.33.0
|
||||
ARG COMPOSE_VERSION=5.1.3
|
||||
ARG UNDOCK_VERSION=0.12.0
|
||||
ARG REGCTL_VERSION=v0.11.3
|
||||
ARG COSIGN_VERSION=v3.0.6
|
||||
|
||||
FROM node:${NODE_VERSION}-alpine AS base
|
||||
RUN apk add --no-cache cpio findutils git
|
||||
|
||||
18
package.json
18
package.json
@@ -42,22 +42,22 @@
|
||||
"registry": "https://registry.npmjs.org/"
|
||||
},
|
||||
"dependencies": {
|
||||
"@actions/artifact": "^6.2.0",
|
||||
"@actions/artifact": "^6.2.1",
|
||||
"@actions/cache": "^6.0.0",
|
||||
"@actions/core": "^3.0.0",
|
||||
"@actions/core": "^3.0.1",
|
||||
"@actions/exec": "^3.0.0",
|
||||
"@actions/github": "^9.0.0",
|
||||
"@actions/http-client": "^4.0.0",
|
||||
"@actions/github": "^9.1.1",
|
||||
"@actions/http-client": "^4.0.1",
|
||||
"@actions/io": "^3.0.2",
|
||||
"@actions/tool-cache": "^4.0.0",
|
||||
"@sigstore/bundle": "^4.0.0",
|
||||
"@sigstore/sign": "^4.1.0",
|
||||
"@sigstore/tuf": "^4.0.1",
|
||||
"@sigstore/sign": "^4.1.1",
|
||||
"@sigstore/tuf": "^4.0.2",
|
||||
"@sigstore/verify": "^3.1.0",
|
||||
"async-retry": "^1.3.3",
|
||||
"csv-parse": "^6.1.0",
|
||||
"csv-parse": "^6.2.1",
|
||||
"gunzip-maybe": "^1.4.2",
|
||||
"handlebars": "^4.7.8",
|
||||
"handlebars": "^4.7.9",
|
||||
"he": "^1.2.0",
|
||||
"js-yaml": "^4.1.1",
|
||||
"jwt-decode": "^4.0.0",
|
||||
@@ -70,7 +70,7 @@
|
||||
"@types/gunzip-maybe": "^1.4.3",
|
||||
"@types/he": "^1.2.3",
|
||||
"@types/js-yaml": "^4.0.9",
|
||||
"@types/node": "^20.19.35",
|
||||
"@types/node": "^24.11.0",
|
||||
"@types/semver": "^7.7.1",
|
||||
"@types/tar-stream": "^3.1.4",
|
||||
"@types/tmp": "^0.2.6",
|
||||
|
||||
@@ -44,6 +44,7 @@ export interface BakeCmdOpts {
|
||||
sbom?: string;
|
||||
source?: string;
|
||||
targets?: Array<string>;
|
||||
vars?: Array<string>;
|
||||
|
||||
githubToken?: string; // for auth with remote definitions on private repos
|
||||
}
|
||||
@@ -138,6 +139,11 @@ export class Bake {
|
||||
args.push('--set', override);
|
||||
}
|
||||
}
|
||||
if (cmdOpts.vars) {
|
||||
for (const v of cmdOpts.vars) {
|
||||
args.push('--var', v);
|
||||
}
|
||||
}
|
||||
if (cmdOpts.allow) {
|
||||
for (const allow of cmdOpts.allow) {
|
||||
args.push('--allow', allow);
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import * as core from '@actions/core';
|
||||
import * as github from '@actions/github';
|
||||
import {parse} from 'csv-parse/sync';
|
||||
|
||||
import {Buildx} from './buildx.js';
|
||||
@@ -24,7 +25,7 @@ import {Context} from '../context.js';
|
||||
import {GitHub} from '../github/github.js';
|
||||
import {Util} from '../util.js';
|
||||
|
||||
import {BuildMetadata} from '../types/buildx/build.js';
|
||||
import {BuildMetadata, GitContextFormat} from '../types/buildx/build.js';
|
||||
import {VertexWarning} from '../types/buildkit/client.js';
|
||||
import {ProvenancePredicate} from '../types/intoto/slsa_provenance/v0.2/provenance.js';
|
||||
|
||||
@@ -37,6 +38,14 @@ export interface ResolveSecretsOpts {
|
||||
redact?: boolean;
|
||||
}
|
||||
|
||||
export interface GitContextOpts {
|
||||
ref?: string;
|
||||
checksum?: string;
|
||||
subdir?: string;
|
||||
attrs?: Record<string, string>;
|
||||
format?: GitContextFormat;
|
||||
}
|
||||
|
||||
export class Build {
|
||||
private readonly buildx: Buildx;
|
||||
private readonly iidFilename: string;
|
||||
@@ -48,6 +57,69 @@ export class Build {
|
||||
this.metadataFilename = `build-metadata-${Util.generateRandomString()}.json`;
|
||||
}
|
||||
|
||||
public async gitContext(opts?: GitContextOpts): Promise<string> {
|
||||
const gitContextCommonAttrs = new Set(['ref', 'checksum', 'subdir']);
|
||||
const commonAttrs = opts?.attrs || {};
|
||||
const extraAttrs = Object.entries(commonAttrs).filter(([name]) => !gitContextCommonAttrs.has(name));
|
||||
|
||||
let ref = opts?.ref || commonAttrs.ref || github.context.ref;
|
||||
if (!ref.startsWith('refs/')) {
|
||||
ref = `refs/heads/${ref}`;
|
||||
} else if (ref.startsWith(`refs/pull/`) && Util.parseBoolOrDefault(process.env.DOCKER_DEFAULT_GIT_CONTEXT_PR_HEAD_REF)) {
|
||||
ref = ref.replace(/\/merge$/g, '/head');
|
||||
}
|
||||
|
||||
const inputChecksum = opts?.checksum || commonAttrs.checksum;
|
||||
const inputSubdir = opts?.subdir || commonAttrs.subdir;
|
||||
const checksum = inputChecksum || (ref.startsWith(`refs/pull/`) ? undefined : github.context.sha);
|
||||
|
||||
// BuildKit resolves PR refs remotely at build time, so mutable refs like
|
||||
// refs/pull/*/{merge,head} can drift away from the event SHA. actions/checkout
|
||||
// avoids that by fetching the exact commit into a local PR ref; here we do the
|
||||
// equivalent for implicit PR contexts by rewriting them to the event's commit SHA.
|
||||
if (!inputChecksum && ref.startsWith(`refs/pull/`)) {
|
||||
if (ref.endsWith('/merge')) {
|
||||
ref = github.context.sha;
|
||||
} else if (ref.endsWith('/head') && typeof github.context.payload.pull_request?.head?.sha === 'string') {
|
||||
ref = github.context.payload.pull_request.head.sha;
|
||||
}
|
||||
}
|
||||
|
||||
const baseURL = `${GitHub.serverURL}/${github.context.repo.owner}/${github.context.repo.repo}.git`;
|
||||
let format = opts?.format;
|
||||
if (!format) {
|
||||
format = 'fragment';
|
||||
if (extraAttrs.length > 0) {
|
||||
format = 'query';
|
||||
} else if (Util.parseBoolOrDefault(process.env.BUILDX_SEND_GIT_QUERY_AS_INPUT)) {
|
||||
try {
|
||||
if (await this.buildx.versionSatisfies('>=0.29.0')) {
|
||||
format = 'query';
|
||||
}
|
||||
} catch {
|
||||
// keep fragment fallback when Buildx version cannot be determined.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (format === 'query') {
|
||||
const query = [`ref=${ref}`];
|
||||
if (checksum) {
|
||||
query.push(`checksum=${checksum}`);
|
||||
}
|
||||
if (inputSubdir && inputSubdir !== '.') {
|
||||
query.push(`subdir=${inputSubdir}`);
|
||||
}
|
||||
for (const [name, value] of extraAttrs) {
|
||||
query.push(`${name}=${value}`);
|
||||
}
|
||||
return `${baseURL}?${query.join('&')}`;
|
||||
}
|
||||
|
||||
const fragmentRef = inputChecksum && ref.startsWith(`refs/pull/`) ? ref : (checksum ?? ref);
|
||||
return `${baseURL}#${fragmentRef}${inputSubdir && inputSubdir !== '.' ? `:${inputSubdir}` : ''}`;
|
||||
}
|
||||
|
||||
public getImageIDFilePath(): string {
|
||||
return path.join(Context.tmpDir(), this.iidFilename);
|
||||
}
|
||||
@@ -149,15 +221,14 @@ export class Build {
|
||||
|
||||
public static resolveSecret(kvp: string, opts?: ResolveSecretsOpts): [string, string] {
|
||||
const [key, value] = Build.parseSecretKvp(kvp, opts?.redact);
|
||||
const secretFile = Context.tmpName({tmpdir: Context.tmpDir()});
|
||||
if (opts?.asFile) {
|
||||
if (!fs.existsSync(value)) {
|
||||
throw new Error(`secret file ${value} not found`);
|
||||
}
|
||||
fs.copyFileSync(value, secretFile);
|
||||
} else {
|
||||
fs.writeFileSync(secretFile, value);
|
||||
return [key, value];
|
||||
}
|
||||
const secretFile = Context.tmpName({tmpdir: Context.tmpDir()});
|
||||
fs.writeFileSync(secretFile, value);
|
||||
return [key, secretFile];
|
||||
}
|
||||
|
||||
|
||||
@@ -14,16 +14,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import {ChildProcessByStdio, spawn} from 'child_process';
|
||||
import fs from 'fs';
|
||||
import os from 'os';
|
||||
import path from 'path';
|
||||
import {Readable, Writable} from 'stream';
|
||||
import * as core from '@actions/core';
|
||||
|
||||
import {Buildx} from './buildx.js';
|
||||
import {Context} from '../context.js';
|
||||
import {Docker} from '../docker/docker.js';
|
||||
import {Exec} from '../exec.js';
|
||||
import {GitHub} from '../github/github.js';
|
||||
import {Util} from '../util.js';
|
||||
@@ -74,6 +70,10 @@ export class History {
|
||||
}
|
||||
|
||||
public async export(opts: ExportOpts): Promise<ExportResponse> {
|
||||
if (!(await this.buildx.versionSatisfies('>=0.23.0'))) {
|
||||
throw new Error('Buildx >= 0.23.0 is required to export a build record');
|
||||
}
|
||||
|
||||
let builderName: string = '';
|
||||
let nodeName: string = '';
|
||||
const refs: Array<string> = [];
|
||||
@@ -101,10 +101,6 @@ export class History {
|
||||
core.info(`exporting build record to ${outDir}`);
|
||||
fs.mkdirSync(outDir, {recursive: true});
|
||||
|
||||
if (opts.useContainer || (await this.buildx.versionSatisfies('<0.23.0'))) {
|
||||
return await this.exportLegacy(builderName, nodeName, refs, outDir, opts.image);
|
||||
}
|
||||
|
||||
if (await this.buildx.versionSatisfies('<0.24.0')) {
|
||||
// wait 3 seconds to ensure build records are finalized: https://github.com/moby/buildkit/pull/5109
|
||||
// not necessary since buildx 0.24.0: https://github.com/docker/buildx/pull/3152
|
||||
@@ -162,143 +158,6 @@ export class History {
|
||||
};
|
||||
}
|
||||
|
||||
private async exportLegacy(builderName: string, nodeName: string, refs: Array<string>, outDir: string, image?: string): Promise<ExportResponse> {
|
||||
if (os.platform() === 'win32') {
|
||||
throw new Error('Exporting a build record is currently not supported on Windows');
|
||||
}
|
||||
if (!(await Docker.isAvailable())) {
|
||||
throw new Error('Docker is required to export a build record');
|
||||
}
|
||||
if (!(await Docker.isDaemonRunning())) {
|
||||
throw new Error('Docker daemon needs to be running to export a build record');
|
||||
}
|
||||
if (!(await this.buildx.versionSatisfies('>=0.13.0'))) {
|
||||
throw new Error('Buildx >= 0.13.0 is required to export a build record');
|
||||
}
|
||||
|
||||
// wait 3 seconds to ensure build records are finalized: https://github.com/moby/buildkit/pull/5109
|
||||
await Util.sleep(3);
|
||||
|
||||
const buildxInFifoPath = Context.tmpName({
|
||||
template: 'buildx-in-XXXXXX.fifo',
|
||||
tmpdir: Context.tmpDir()
|
||||
});
|
||||
await Exec.exec('mkfifo', [buildxInFifoPath]);
|
||||
|
||||
const buildxOutFifoPath = Context.tmpName({
|
||||
template: 'buildx-out-XXXXXX.fifo',
|
||||
tmpdir: Context.tmpDir()
|
||||
});
|
||||
await Exec.exec('mkfifo', [buildxOutFifoPath]);
|
||||
|
||||
const buildxDialStdioCmd = await this.buildx.getCommand(['--builder', builderName, 'dial-stdio']);
|
||||
core.info(`[command]${buildxDialStdioCmd.command} ${buildxDialStdioCmd.args.join(' ')}`);
|
||||
const buildxDialStdioProc = spawn(buildxDialStdioCmd.command, buildxDialStdioCmd.args, {
|
||||
stdio: ['pipe', 'pipe', 'inherit'],
|
||||
detached: true
|
||||
});
|
||||
let buildxDialStdioKilled = false;
|
||||
fs.createReadStream(buildxInFifoPath).pipe(buildxDialStdioProc.stdin);
|
||||
buildxDialStdioProc.stdout.pipe(fs.createWriteStream(buildxOutFifoPath));
|
||||
buildxDialStdioProc.on('exit', (code, signal) => {
|
||||
buildxDialStdioKilled = true;
|
||||
if (signal) {
|
||||
core.info(`Process "buildx dial-stdio" was killed with signal ${signal}`);
|
||||
} else {
|
||||
core.info(`Process "buildx dial-stdio" exited with code ${code}`);
|
||||
}
|
||||
});
|
||||
|
||||
const tmpDockerbuildFilename = path.join(outDir, 'rec.dockerbuild');
|
||||
const summaryFilename = path.join(outDir, 'summary.json');
|
||||
|
||||
let dockerRunProc: ChildProcessByStdio<Writable, Readable, null> | undefined;
|
||||
let dockerRunProcKilled = false;
|
||||
await new Promise<void>((resolve, reject) => {
|
||||
const ebargs: Array<string> = ['--ref-state-dir=/buildx-refs', `--node=${builderName}/${nodeName}`];
|
||||
for (const ref of refs) {
|
||||
ebargs.push(`--ref=${ref}`);
|
||||
}
|
||||
if (typeof process.getuid === 'function') {
|
||||
ebargs.push(`--uid=${process.getuid()}`);
|
||||
}
|
||||
if (typeof process.getgid === 'function') {
|
||||
ebargs.push(`--gid=${process.getgid()}`);
|
||||
}
|
||||
// prettier-ignore
|
||||
const dockerRunArgs = [
|
||||
'run', '--rm', '-i',
|
||||
'-v', `${Buildx.refsDir}:/buildx-refs`,
|
||||
'-v', `${outDir}:/out`,
|
||||
image || process.env['DOCKER_BUILD_EXPORT_BUILD_IMAGE'] || 'docker.io/dockereng/export-build:latest',
|
||||
...ebargs
|
||||
]
|
||||
core.info(`[command]docker ${dockerRunArgs.join(' ')}`);
|
||||
dockerRunProc = spawn('docker', dockerRunArgs, {
|
||||
stdio: ['pipe', 'pipe', 'inherit'],
|
||||
env: {
|
||||
...process.env,
|
||||
DOCKER_CONTENT_TRUST: 'false'
|
||||
}
|
||||
});
|
||||
fs.createReadStream(buildxOutFifoPath).pipe(dockerRunProc.stdin);
|
||||
dockerRunProc.stdout.pipe(fs.createWriteStream(buildxInFifoPath));
|
||||
dockerRunProc.on('close', code => {
|
||||
if (code === 0) {
|
||||
if (!fs.existsSync(tmpDockerbuildFilename)) {
|
||||
reject(new Error(`Failed to export build record: ${tmpDockerbuildFilename} not found`));
|
||||
} else {
|
||||
resolve();
|
||||
}
|
||||
} else {
|
||||
reject(new Error(`Process "docker run" closed with code ${code}`));
|
||||
}
|
||||
});
|
||||
dockerRunProc.on('error', err => {
|
||||
core.error(`Error executing "docker run": ${err}`);
|
||||
reject(err);
|
||||
});
|
||||
dockerRunProc.on('exit', (code, signal) => {
|
||||
dockerRunProcKilled = true;
|
||||
if (signal) {
|
||||
core.info(`Process "docker run" was killed with signal ${signal}`);
|
||||
} else {
|
||||
core.info(`Process "docker run" exited with code ${code}`);
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(err => {
|
||||
throw err;
|
||||
})
|
||||
.finally(() => {
|
||||
if (buildxDialStdioProc && !buildxDialStdioKilled) {
|
||||
core.debug('Force terminating "buildx dial-stdio" process');
|
||||
buildxDialStdioProc.kill('SIGKILL');
|
||||
}
|
||||
if (dockerRunProc && !dockerRunProcKilled) {
|
||||
core.debug('Force terminating "docker run" process');
|
||||
dockerRunProc.kill('SIGKILL');
|
||||
}
|
||||
});
|
||||
|
||||
const dockerbuildPath = path.join(outDir, `${History.exportFilename(refs)}.dockerbuild`);
|
||||
fs.renameSync(tmpDockerbuildFilename, dockerbuildPath);
|
||||
const dockerbuildStats = fs.statSync(dockerbuildPath);
|
||||
|
||||
core.info(`Parsing ${summaryFilename}`);
|
||||
fs.statSync(summaryFilename);
|
||||
const summaries = <Summaries>JSON.parse(fs.readFileSync(summaryFilename, {encoding: 'utf-8'}));
|
||||
|
||||
return {
|
||||
dockerbuildFilename: dockerbuildPath,
|
||||
dockerbuildSize: dockerbuildStats.size,
|
||||
builderName: builderName,
|
||||
nodeName: nodeName,
|
||||
refs: refs,
|
||||
summaries: summaries
|
||||
};
|
||||
}
|
||||
|
||||
private static exportFilename(refs: Array<string>): string {
|
||||
let name = `${GitHub.context.repo.owner}~${GitHub.context.repo.repo}~${refs[0].substring(0, 6).toUpperCase()}`;
|
||||
if (refs.length > 1) {
|
||||
|
||||
@@ -14,12 +14,16 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import fs from 'fs';
|
||||
import * as core from '@actions/core';
|
||||
|
||||
import {Buildx} from './buildx.js';
|
||||
import {Context} from '../context.js';
|
||||
import {Exec} from '../exec.js';
|
||||
|
||||
import {Manifest as ImageToolsManifest} from '../types/buildx/imagetools.js';
|
||||
import {AttestationInspectOpts, CreateOpts, CreateResponse, CreateResult, InspectOpts, Manifest as ImageToolsManifest} from '../types/buildx/imagetools.js';
|
||||
import {Image} from '../types/oci/config.js';
|
||||
import {Descriptor, Platform} from '../types/oci/descriptor.js';
|
||||
import {Descriptor} from '../types/oci/descriptor.js';
|
||||
import {Digest} from '../types/oci/digest.js';
|
||||
|
||||
export interface ImageToolsOpts {
|
||||
@@ -41,16 +45,12 @@ export class ImageTools {
|
||||
return await this.getCommand(['inspect', ...args]);
|
||||
}
|
||||
|
||||
public async inspectImage(name: string): Promise<Record<string, Image> | Image> {
|
||||
const cmd = await this.getInspectCommand([name, '--format', '{{json .Image}}']);
|
||||
return await Exec.getExecOutput(cmd.command, cmd.args, {
|
||||
ignoreReturnCode: true,
|
||||
silent: true
|
||||
}).then(res => {
|
||||
if (res.stderr.length > 0 && res.exitCode != 0) {
|
||||
throw new Error(res.stderr.trim());
|
||||
}
|
||||
const parsedOutput = JSON.parse(res.stdout);
|
||||
public async getCreateCommand(args: Array<string>) {
|
||||
return await this.getCommand(['create', ...args]);
|
||||
}
|
||||
|
||||
public async inspectImage(opts: InspectOpts): Promise<Record<string, Image> | Image> {
|
||||
return await this.inspect(opts, '{{json .Image}}', parsedOutput => {
|
||||
if (typeof parsedOutput === 'object' && !Array.isArray(parsedOutput) && parsedOutput !== null) {
|
||||
if (Object.prototype.hasOwnProperty.call(parsedOutput, 'config')) {
|
||||
return <Image>parsedOutput;
|
||||
@@ -62,16 +62,8 @@ export class ImageTools {
|
||||
});
|
||||
}
|
||||
|
||||
public async inspectManifest(name: string): Promise<ImageToolsManifest | Descriptor> {
|
||||
const cmd = await this.getInspectCommand([name, '--format', '{{json .Manifest}}']);
|
||||
return await Exec.getExecOutput(cmd.command, cmd.args, {
|
||||
ignoreReturnCode: true,
|
||||
silent: true
|
||||
}).then(res => {
|
||||
if (res.stderr.length > 0 && res.exitCode != 0) {
|
||||
throw new Error(res.stderr.trim());
|
||||
}
|
||||
const parsedOutput = JSON.parse(res.stdout);
|
||||
public async inspectManifest(opts: InspectOpts): Promise<ImageToolsManifest | Descriptor> {
|
||||
return await this.inspect(opts, '{{json .Manifest}}', parsedOutput => {
|
||||
if (typeof parsedOutput === 'object' && !Array.isArray(parsedOutput) && parsedOutput !== null) {
|
||||
if (Object.prototype.hasOwnProperty.call(parsedOutput, 'manifests')) {
|
||||
return <ImageToolsManifest>parsedOutput;
|
||||
@@ -83,17 +75,18 @@ export class ImageTools {
|
||||
});
|
||||
}
|
||||
|
||||
public async attestationDescriptors(name: string, platform?: Platform): Promise<Array<Descriptor>> {
|
||||
const manifest = await this.inspectManifest(name);
|
||||
public async attestationDescriptors(opts: AttestationInspectOpts): Promise<Array<Descriptor>> {
|
||||
const manifest = await this.inspectManifest(opts);
|
||||
|
||||
if (typeof manifest !== 'object' || manifest === null || !('manifests' in manifest) || !Array.isArray(manifest.manifests)) {
|
||||
throw new Error(`No descriptor found for ${name}`);
|
||||
throw new Error(`No descriptor found for ${opts.name}`);
|
||||
}
|
||||
|
||||
const attestations = manifest.manifests.filter(m => m.annotations?.['vnd.docker.reference.type'] === 'attestation-manifest');
|
||||
if (!platform) {
|
||||
if (!opts.platform) {
|
||||
return attestations;
|
||||
}
|
||||
const platform = opts.platform;
|
||||
|
||||
const manifestByDigest = new Map<string, Descriptor>();
|
||||
for (const m of manifest.manifests) {
|
||||
@@ -115,7 +108,126 @@ export class ImageTools {
|
||||
});
|
||||
}
|
||||
|
||||
public async attestationDigests(name: string, platform?: Platform): Promise<Array<Digest>> {
|
||||
return (await this.attestationDescriptors(name, platform)).map(attestation => attestation.digest);
|
||||
public async attestationDigests(opts: AttestationInspectOpts): Promise<Array<Digest>> {
|
||||
return (await this.attestationDescriptors(opts)).map(attestation => attestation.digest);
|
||||
}
|
||||
|
||||
public async create(opts: CreateOpts): Promise<CreateResult | undefined> {
|
||||
const args: Array<string> = [];
|
||||
|
||||
const metadataFile = Context.tmpName({tmpdir: Context.tmpDir(), template: 'imagetools-metadata-XXXXXX'});
|
||||
const fileSources: Array<string> = [];
|
||||
const sources: Array<string> = [];
|
||||
for (const source of opts.sources) {
|
||||
if (source.startsWith('cwd://')) {
|
||||
const fileSource = source.substring('cwd://'.length);
|
||||
if (fileSource.length > 0) {
|
||||
fileSources.push(fileSource);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
sources.push(source);
|
||||
}
|
||||
if (opts.tags) {
|
||||
for (const tag of opts.tags) {
|
||||
args.push('--tag', tag);
|
||||
}
|
||||
}
|
||||
if (opts.platforms) {
|
||||
for (const platform of opts.platforms) {
|
||||
args.push('--platform', platform);
|
||||
}
|
||||
}
|
||||
if (opts.annotations) {
|
||||
for (const annotation of opts.annotations) {
|
||||
args.push('--annotation', annotation);
|
||||
}
|
||||
}
|
||||
if (opts.dryRun) {
|
||||
args.push('--dry-run');
|
||||
} else {
|
||||
args.push('--metadata-file', metadataFile);
|
||||
}
|
||||
for (const fileSource of fileSources) {
|
||||
args.push('--file', fileSource);
|
||||
}
|
||||
for (const source of sources) {
|
||||
args.push(source);
|
||||
}
|
||||
|
||||
const cmd = await this.getCreateCommand(args);
|
||||
if (opts.skipExec) {
|
||||
core.info(`[command]${cmd.command} ${cmd.args.join(' ')}`);
|
||||
core.info(`Skipped create command`);
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return await Exec.getExecOutput(cmd.command, cmd.args, {
|
||||
ignoreReturnCode: true,
|
||||
silent: opts.silent
|
||||
}).then(res => {
|
||||
if (res.stderr.length > 0 && res.exitCode != 0) {
|
||||
throw new Error(res.stderr.trim());
|
||||
}
|
||||
if (!opts.dryRun) {
|
||||
if (!fs.existsSync(metadataFile)) {
|
||||
return undefined;
|
||||
}
|
||||
const dt = fs.readFileSync(metadataFile, {encoding: 'utf-8'}).trim();
|
||||
if (dt === '' || dt === 'null') {
|
||||
return undefined;
|
||||
}
|
||||
const response = <CreateResponse>JSON.parse(dt);
|
||||
const descriptor = response['containerimage.descriptor'];
|
||||
if (!descriptor) {
|
||||
return undefined;
|
||||
}
|
||||
return {
|
||||
digest: response['containerimage.digest'] || descriptor.digest,
|
||||
descriptor: descriptor,
|
||||
imageNames: response['image.name'] ? response['image.name'].split(',').map(name => name.trim()) : []
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private async inspect<T>(opts: InspectOpts, format: string, parser: (parsedOutput: unknown) => T): Promise<T> {
|
||||
const cmd = await this.getInspectCommand([opts.name, '--format', format]);
|
||||
if (!opts.retryOnManifestUnknown) {
|
||||
return await this.execInspect(cmd.command, cmd.args, parser);
|
||||
}
|
||||
|
||||
const retries = opts.retryLimit ?? 15;
|
||||
let lastError: Error | undefined;
|
||||
for (let attempt = 0; attempt < retries; attempt++) {
|
||||
try {
|
||||
return await this.execInspect(cmd.command, cmd.args, parser);
|
||||
} catch (err) {
|
||||
lastError = err as Error;
|
||||
if (!ImageTools.isManifestUnknownError(lastError.message) || attempt === retries - 1) {
|
||||
throw lastError;
|
||||
}
|
||||
core.info(`buildx imagetools inspect command failed with MANIFEST_UNKNOWN, retrying attempt ${attempt + 1}/${retries}...\n${lastError.message}`);
|
||||
await new Promise(res => setTimeout(res, Math.pow(2, attempt) * 100));
|
||||
}
|
||||
}
|
||||
|
||||
throw lastError ?? new Error(`ImageTools inspect command failed for ${opts.name}`);
|
||||
}
|
||||
|
||||
private async execInspect<T>(command: string, args: Array<string>, parser: (parsedOutput: unknown) => T): Promise<T> {
|
||||
return await Exec.getExecOutput(command, args, {
|
||||
ignoreReturnCode: true,
|
||||
silent: true
|
||||
}).then(res => {
|
||||
if (res.stderr.length > 0 && res.exitCode != 0) {
|
||||
throw new Error(res.stderr.trim());
|
||||
}
|
||||
return parser(JSON.parse(res.stdout));
|
||||
});
|
||||
}
|
||||
|
||||
private static isManifestUnknownError(message: string): boolean {
|
||||
return /(MANIFEST_UNKNOWN|manifest unknown|not found: not found)/i.test(message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,9 +18,6 @@ import fs from 'fs';
|
||||
import os from 'os';
|
||||
import path from 'path';
|
||||
import * as tmp from 'tmp';
|
||||
import * as github from '@actions/github';
|
||||
|
||||
import {GitHub} from './github/github.js';
|
||||
|
||||
export class Context {
|
||||
private static readonly _tmpDir = fs.mkdtempSync(path.join(Context.ensureDirExists(process.env.RUNNER_TEMP || os.tmpdir()), 'docker-actions-toolkit-'));
|
||||
@@ -37,25 +34,4 @@ export class Context {
|
||||
public static tmpName(options?: tmp.TmpNameOptions): string {
|
||||
return tmp.tmpNameSync(options);
|
||||
}
|
||||
|
||||
public static gitRef(): string {
|
||||
return Context.parseGitRef(github.context.ref, github.context.sha);
|
||||
}
|
||||
|
||||
public static parseGitRef(ref: string, sha: string): string {
|
||||
const setPullRequestHeadRef: boolean = !!(process.env.DOCKER_DEFAULT_GIT_CONTEXT_PR_HEAD_REF && process.env.DOCKER_DEFAULT_GIT_CONTEXT_PR_HEAD_REF === 'true');
|
||||
if (sha && ref && !ref.startsWith('refs/')) {
|
||||
ref = `refs/heads/${ref}`;
|
||||
}
|
||||
if (sha && !ref.startsWith(`refs/pull/`)) {
|
||||
ref = sha;
|
||||
} else if (ref.startsWith(`refs/pull/`) && setPullRequestHeadRef) {
|
||||
ref = ref.replace(/\/merge$/g, '/head');
|
||||
}
|
||||
return ref;
|
||||
}
|
||||
|
||||
public static gitContext(): string {
|
||||
return `${GitHub.serverURL}/${github.context.repo.owner}/${github.context.repo.repo}.git#${Context.gitRef()}`;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ export interface CosignCommandError {
|
||||
}
|
||||
|
||||
export class Cosign {
|
||||
private readonly binPath: string;
|
||||
public readonly binPath: string;
|
||||
private _version: string;
|
||||
private _versionOnce: boolean;
|
||||
|
||||
|
||||
@@ -165,19 +165,19 @@ images:
|
||||
arch: "{{arch}}"
|
||||
digest: "{{digest}}"
|
||||
{{/each}}
|
||||
- location: "https://cloud-images.ubuntu.com/releases/noble/release-20250704/ubuntu-24.04-server-cloudimg-amd64.img"
|
||||
- location: "https://cloud-images.ubuntu.com/releases/noble/release-20260321/ubuntu-24.04-server-cloudimg-amd64.img"
|
||||
arch: "x86_64"
|
||||
digest: "sha256:f1652d29d497fb7c623433705c9fca6525d1311b11294a0f495eed55c7639d1f"
|
||||
digest: "sha256:5c3ddb00f60bc455dac0862fabe9d8bacec46c33ac1751143c5c3683404b110d"
|
||||
kernel:
|
||||
location: "https://cloud-images.ubuntu.com/releases/noble/release-20250704/unpacked/ubuntu-24.04-server-cloudimg-amd64-vmlinuz-generic"
|
||||
digest: "sha256:67cd9af083515de2101de032b49a64fc4b65778e5383df6ef21cf788a3f4688e"
|
||||
location: "https://cloud-images.ubuntu.com/releases/noble/release-20260321/unpacked/ubuntu-24.04-server-cloudimg-amd64-vmlinuz-generic"
|
||||
digest: "sha256:5b2a4fe174dacb18281f8f7d72ae32ac4b92801f0b7b5cb43ea55dee29fb789d"
|
||||
cmdline: "root=LABEL=cloudimg-rootfs ro console=tty1 console=ttyAMA0 no_timer_check"
|
||||
initrd:
|
||||
location: "https://cloud-images.ubuntu.com/releases/noble/release-20250704/unpacked/ubuntu-24.04-server-cloudimg-amd64-initrd-generic"
|
||||
digest: "sha256:f257d581c44f66da2d80c7c5dc3fa598ce76ef313d6e27b368683e8030a9e8fd"
|
||||
- location: "https://cloud-images.ubuntu.com/releases/noble/release-20250704/ubuntu-24.04-server-cloudimg-arm64.img"
|
||||
location: "https://cloud-images.ubuntu.com/releases/noble/release-20260321/unpacked/ubuntu-24.04-server-cloudimg-amd64-initrd-generic"
|
||||
digest: "sha256:cd0b64a5498e583a820a5b842369df83d036b4200b33bc51cadc58176184aaca"
|
||||
- location: "https://cloud-images.ubuntu.com/releases/noble/release-20260321/ubuntu-24.04-server-cloudimg-arm64.img"
|
||||
arch: "aarch64"
|
||||
digest: "sha256:bbecbb88100ee65497927ed0da247ba15af576a8855004182cf3c87265e25d35"
|
||||
digest: "sha256:1ea801e659d2f5035ac294e0faab0aac9b6ba66753df933ba5c7beab0c689bd0"
|
||||
# Fallback to the latest release image.
|
||||
# Hint: run \`limactl prune\` to invalidate the cache
|
||||
- location: https://cloud-images.ubuntu.com/releases/noble/release/ubuntu-24.04-server-cloudimg-amd64.img
|
||||
@@ -231,6 +231,7 @@ provision:
|
||||
script: |
|
||||
#!/bin/bash
|
||||
set -eux -o pipefail
|
||||
archiveInstallLog=/var/log/docker-actions-toolkit-archive-install.log
|
||||
command -v docker >/dev/null 2>&1 && exit 0
|
||||
if [ ! -e /etc/systemd/system/docker.socket.d/override.conf ]; then
|
||||
mkdir -p /etc/systemd/system/docker.socket.d
|
||||
@@ -248,19 +249,41 @@ provision:
|
||||
fi
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
if [ "{{srcType}}" == "archive" ]; then
|
||||
curl -fsSL https://get.docker.com | sh -s -- --channel {{srcArchiveChannel}} --version {{srcArchiveVersion}}
|
||||
sed -i 's|^ExecStart=.*|ExecStart=/usr/bin/dockerd -H fd://{{#if localTCPPort}} -H tcp://0.0.0.0:2375{{/if}} --containerd=/run/containerd/containerd.sock|' /usr/lib/systemd/system/docker.service
|
||||
systemctl daemon-reload
|
||||
systemctl restart docker
|
||||
systemctl status docker.socket || true
|
||||
systemctl status docker.service || true
|
||||
{
|
||||
getDockerScript=$(mktemp)
|
||||
curl --retry 3 --retry-all-errors --retry-delay 5 -fsSL -o "$getDockerScript" https://get.docker.com
|
||||
|
||||
attempt=1
|
||||
max_attempts=3
|
||||
until [ "$attempt" -gt "$max_attempts" ]; do
|
||||
echo "Docker install attempt $attempt/$max_attempts"
|
||||
if sh "$getDockerScript" --channel {{srcArchiveChannel}} --version {{srcArchiveVersion}}; then
|
||||
break
|
||||
fi
|
||||
if [ "$attempt" -eq "$max_attempts" ]; then
|
||||
echo >&2 "Docker install failed after $max_attempts attempts"
|
||||
exit 1
|
||||
fi
|
||||
echo >&2 "Docker install attempt $attempt failed, retrying after $((attempt * 30))s"
|
||||
rm -rf /var/lib/apt/lists/partial/* || true
|
||||
apt-get clean || true
|
||||
sleep $((attempt * 30))
|
||||
attempt=$((attempt + 1))
|
||||
done
|
||||
|
||||
sed -i 's|^ExecStart=.*|ExecStart=/usr/bin/dockerd -H fd://{{#if localTCPPort}} -H tcp://0.0.0.0:2375{{/if}} --containerd=/run/containerd/containerd.sock|' /usr/lib/systemd/system/docker.service
|
||||
systemctl daemon-reload
|
||||
systemctl restart docker
|
||||
systemctl status docker.socket || true
|
||||
systemctl status docker.service || true
|
||||
} 2>&1 | tee "$archiveInstallLog"
|
||||
elif [ "{{srcType}}" == "image" ]; then
|
||||
arch=$(uname -m)
|
||||
case $arch in
|
||||
x86_64) arch=amd64;;
|
||||
aarch64) arch=arm64;;
|
||||
esac
|
||||
url="https://github.com/crazy-max/undock/releases/download/v0.10.0/undock_0.10.0_linux_$arch.tar.gz"
|
||||
url="https://github.com/crazy-max/undock/releases/download/v0.12.0/undock_0.12.0_linux_$arch.tar.gz"
|
||||
|
||||
wget "$url" -O /tmp/undock.tar.gz
|
||||
tar -C /usr/local/bin -xvf /tmp/undock.tar.gz
|
||||
|
||||
@@ -326,6 +326,7 @@ export class Install {
|
||||
try {
|
||||
await Exec.exec(`limactl ${limaStartArgs.join(' ')}`, [], {env: envs});
|
||||
} catch (e) {
|
||||
await this.printDarwinDiagnostics();
|
||||
fsp
|
||||
.readdir(limaDir)
|
||||
.then(files => {
|
||||
@@ -539,11 +540,7 @@ EOF`,
|
||||
}
|
||||
|
||||
private async tearDownDarwin(): Promise<void> {
|
||||
await core.group('Docker daemon logs', async () => {
|
||||
await Exec.exec('limactl', ['shell', '--tty=false', this.limaInstanceName, 'sudo', 'journalctl', '-u', 'docker.service', '-l', '--no-pager']).catch(() => {
|
||||
core.warning(`Failed to get Docker daemon logs`);
|
||||
});
|
||||
});
|
||||
await this.printDarwinDiagnostics();
|
||||
await core.group('Stopping lima instance', async () => {
|
||||
await Exec.exec('limactl', ['stop', '--tty=false', this.limaInstanceName, '--force']);
|
||||
});
|
||||
@@ -558,6 +555,36 @@ EOF`,
|
||||
});
|
||||
}
|
||||
|
||||
private async printDarwinDiagnostics(): Promise<void> {
|
||||
await this.printDarwinGuestCommandOutput('Cloud-init output log', ['sudo', 'cat', '/var/log/cloud-init-output.log']);
|
||||
await this.printDarwinGuestCommandOutput('Cloud-init status', ['sudo', 'timeout', '300s', 'cloud-init', 'status', '--wait']);
|
||||
await this.printDarwinGuestCommandOutput('Docker unit file', ['sudo', 'systemctl', 'cat', 'docker.service']);
|
||||
await this.printDarwinGuestCommandOutput('Docker service status', ['sudo', 'systemctl', 'status', 'docker.service', 'docker.socket', '-l', '--no-pager']);
|
||||
await this.printDarwinGuestCommandOutput('Archive install script log', ['sudo', 'cat', '/var/log/docker-actions-toolkit-archive-install.log']);
|
||||
await this.printDarwinGuestCommandOutput('Docker daemon logs', ['sudo', 'journalctl', '-u', 'docker.service', '-l', '--no-pager']);
|
||||
}
|
||||
|
||||
private async printDarwinGuestCommandOutput(title: string, args: string[]): Promise<void> {
|
||||
await core.group(title, async () => {
|
||||
const res = await Exec.getExecOutput('limactl', ['shell', '--tty=false', this.limaInstanceName, ...args], {
|
||||
ignoreReturnCode: true,
|
||||
silent: true
|
||||
}).catch(error => {
|
||||
core.info(`Failed to get ${title}: ${error}`);
|
||||
return undefined;
|
||||
});
|
||||
if (!res) {
|
||||
return;
|
||||
}
|
||||
const output = [res.stdout.trim(), res.stderr.trim()].filter(Boolean).join('\n');
|
||||
if (output.length > 0) {
|
||||
core.info(output);
|
||||
} else if (res.exitCode !== 0) {
|
||||
core.info(`${title} exited with code ${res.exitCode}`);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private async tearDownLinux(): Promise<void> {
|
||||
await core.group('Docker daemon logs', async () => {
|
||||
core.info(fs.readFileSync(path.join(this.runDir, 'dockerd.log'), {encoding: 'utf8'}));
|
||||
|
||||
@@ -55,6 +55,8 @@ export interface SigstoreOpts {
|
||||
imageTools?: ImageTools;
|
||||
}
|
||||
|
||||
const COSIGN_PREDICATE_SLSA_PROVENANCE_V1 = 'slsaprovenance1';
|
||||
|
||||
export class Sigstore {
|
||||
private readonly cosign: Cosign;
|
||||
private readonly imageTools: ImageTools;
|
||||
@@ -95,7 +97,7 @@ export class Sigstore {
|
||||
if (noTransparencyLog) {
|
||||
createConfigArgs.push('--no-default-rekor=true');
|
||||
}
|
||||
await Exec.exec('cosign', createConfigArgs, {
|
||||
await Exec.exec(this.cosign.binPath, createConfigArgs, {
|
||||
env: Object.assign({}, process.env, {
|
||||
COSIGN_EXPERIMENTAL: '1'
|
||||
}) as {
|
||||
@@ -113,7 +115,11 @@ export class Sigstore {
|
||||
}
|
||||
|
||||
for (const imageName of opts.imageNames) {
|
||||
const attestationDigests = await this.imageTools.attestationDigests(`${imageName}@${opts.imageDigest}`);
|
||||
const attestationDigests = await this.imageTools.attestationDigests({
|
||||
name: `${imageName}@${opts.imageDigest}`,
|
||||
retryOnManifestUnknown: opts.retryOnManifestUnknown,
|
||||
retryLimit: opts.retryLimit
|
||||
});
|
||||
for (const attestationDigest of attestationDigests) {
|
||||
const attestationRef = `${imageName}@${attestationDigest}`;
|
||||
await core.group(`Signing attestation manifest ${attestationRef}`, async () => {
|
||||
@@ -126,8 +132,8 @@ export class Sigstore {
|
||||
'--new-bundle-format',
|
||||
...cosignExtraArgs
|
||||
];
|
||||
core.info(`[command]cosign ${[...cosignArgs, attestationRef].join(' ')}`);
|
||||
const execRes = await Exec.getExecOutput('cosign', ['--verbose', ...cosignArgs, attestationRef], {
|
||||
core.info(`[command]${this.cosign.binPath} ${[...cosignArgs, attestationRef].join(' ')}`);
|
||||
const execRes = await Exec.getExecOutput(this.cosign.binPath, ['--verbose', ...cosignArgs, attestationRef], {
|
||||
ignoreReturnCode: true,
|
||||
silent: true,
|
||||
env: Object.assign({}, process.env, {
|
||||
@@ -183,7 +189,12 @@ export class Sigstore {
|
||||
public async verifyImageAttestations(image: string, opts: VerifySignedManifestsOpts): Promise<Record<string, VerifySignedManifestsResult>> {
|
||||
const result: Record<string, VerifySignedManifestsResult> = {};
|
||||
|
||||
const attestationDigests = await this.imageTools.attestationDigests(image, opts.platform);
|
||||
const attestationDigests = await this.imageTools.attestationDigests({
|
||||
name: image,
|
||||
platform: opts.platform,
|
||||
retryOnManifestUnknown: opts.retryOnManifestUnknown,
|
||||
retryLimit: opts.retryLimit
|
||||
});
|
||||
if (attestationDigests.length === 0) {
|
||||
throw new Error(`No attestation manifests found for ${image}`);
|
||||
}
|
||||
@@ -218,8 +229,8 @@ export class Sigstore {
|
||||
}
|
||||
|
||||
if (!opts.retryOnManifestUnknown) {
|
||||
core.info(`[command]cosign ${[...cosignArgs, attestationRef].join(' ')}`);
|
||||
const execRes = await Exec.getExecOutput('cosign', ['--verbose', ...cosignArgs, attestationRef], {
|
||||
core.info(`[command]${this.cosign.binPath} ${[...cosignArgs, attestationRef].join(' ')}`);
|
||||
const execRes = await Exec.getExecOutput(this.cosign.binPath, ['--verbose', ...cosignArgs, attestationRef], {
|
||||
ignoreReturnCode: true,
|
||||
silent: true,
|
||||
env: Object.assign({}, process.env, {
|
||||
@@ -237,11 +248,11 @@ export class Sigstore {
|
||||
};
|
||||
}
|
||||
|
||||
const retries = 15;
|
||||
const retries = opts.retryLimit ?? 15;
|
||||
let lastError: Error | undefined;
|
||||
core.info(`[command]cosign ${[...cosignArgs, attestationRef].join(' ')}`);
|
||||
core.info(`[command]${this.cosign.binPath} ${[...cosignArgs, attestationRef].join(' ')}`);
|
||||
for (let attempt = 0; attempt < retries; attempt++) {
|
||||
const execRes = await Exec.getExecOutput('cosign', ['--verbose', ...cosignArgs, attestationRef], {
|
||||
const execRes = await Exec.getExecOutput(this.cosign.binPath, ['--verbose', ...cosignArgs, attestationRef], {
|
||||
ignoreReturnCode: true,
|
||||
silent: true,
|
||||
env: Object.assign({}, process.env, {
|
||||
@@ -343,13 +354,14 @@ export class Sigstore {
|
||||
'verify-blob-attestation',
|
||||
'--new-bundle-format',
|
||||
'--certificate-oidc-issuer', 'https://token.actions.githubusercontent.com',
|
||||
'--certificate-identity-regexp', opts.certificateIdentityRegexp
|
||||
'--certificate-identity-regexp', opts.certificateIdentityRegexp,
|
||||
'--type', opts.predicateType ?? COSIGN_PREDICATE_SLSA_PROVENANCE_V1
|
||||
]
|
||||
if (opts.noTransparencyLog || !signedRes.tlogID) {
|
||||
// if there is no tlog entry, we skip tlog verification but still verify the signed timestamp
|
||||
cosignArgs.push('--use-signed-timestamps', '--insecure-ignore-tlog');
|
||||
}
|
||||
const execRes = await Exec.getExecOutput('cosign', [...cosignArgs, '--bundle', signedRes.bundlePath, artifactPath], {
|
||||
const execRes = await Exec.getExecOutput(this.cosign.binPath, [...cosignArgs, '--bundle', signedRes.bundlePath, artifactPath], {
|
||||
ignoreReturnCode: true
|
||||
});
|
||||
if (execRes.stderr.length > 0 && execRes.exitCode != 0) {
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
export type GitContextFormat = 'fragment' | 'query';
|
||||
|
||||
export type BuildMetadata = {
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
[key: string]: any;
|
||||
|
||||
@@ -107,7 +107,6 @@ export interface ExportOpts {
|
||||
refs: Array<string>;
|
||||
noSummaries?: boolean;
|
||||
image?: string;
|
||||
useContainer?: boolean;
|
||||
}
|
||||
|
||||
export interface ExportResponse {
|
||||
|
||||
@@ -15,9 +15,19 @@
|
||||
*/
|
||||
|
||||
import {Versioned} from '../oci/versioned.js';
|
||||
import {Descriptor} from '../oci/descriptor.js';
|
||||
import {Descriptor, Platform} from '../oci/descriptor.js';
|
||||
import {Digest} from '../oci/digest.js';
|
||||
|
||||
export interface InspectOpts {
|
||||
name: string;
|
||||
retryOnManifestUnknown?: boolean;
|
||||
retryLimit?: number;
|
||||
}
|
||||
|
||||
export interface AttestationInspectOpts extends InspectOpts {
|
||||
platform?: Platform;
|
||||
}
|
||||
|
||||
// https://github.com/docker/buildx/blob/62857022a08552bee5cad0c3044a9a3b185f0b32/util/imagetools/printers.go#L109-L123
|
||||
export interface Manifest extends Versioned {
|
||||
mediaType?: string;
|
||||
@@ -26,3 +36,26 @@ export interface Manifest extends Versioned {
|
||||
manifests?: Descriptor[];
|
||||
annotations?: Record<string, string>;
|
||||
}
|
||||
|
||||
// https://docs.docker.com/reference/cli/docker/buildx/imagetools/create/#options
|
||||
export interface CreateOpts {
|
||||
sources: Array<string>;
|
||||
tags?: Array<string>;
|
||||
platforms?: Array<string>;
|
||||
annotations?: Array<string>;
|
||||
dryRun?: boolean;
|
||||
silent?: boolean;
|
||||
skipExec?: boolean;
|
||||
}
|
||||
|
||||
export interface CreateResponse {
|
||||
'containerimage.digest'?: Digest;
|
||||
'containerimage.descriptor'?: Descriptor;
|
||||
'image.name'?: string;
|
||||
}
|
||||
|
||||
export interface CreateResult {
|
||||
digest: Digest;
|
||||
descriptor: Descriptor;
|
||||
imageNames: Array<string>;
|
||||
}
|
||||
|
||||
@@ -40,6 +40,8 @@ export interface SignAttestationManifestsOpts {
|
||||
imageNames: Array<string>;
|
||||
imageDigest: string;
|
||||
noTransparencyLog?: boolean;
|
||||
retryOnManifestUnknown?: boolean;
|
||||
retryLimit?: number;
|
||||
}
|
||||
|
||||
export interface SignAttestationManifestsResult extends ParsedBundle {
|
||||
@@ -51,6 +53,7 @@ export interface VerifySignedManifestsOpts {
|
||||
platform?: Platform;
|
||||
noTransparencyLog?: boolean;
|
||||
retryOnManifestUnknown?: boolean;
|
||||
retryLimit?: number;
|
||||
}
|
||||
|
||||
export interface VerifySignedManifestsResult {
|
||||
@@ -70,6 +73,7 @@ export interface SignProvenanceBlobsResult extends ParsedBundle {
|
||||
}
|
||||
|
||||
export interface VerifySignedArtifactsOpts {
|
||||
predicateType?: string;
|
||||
certificateIdentityRegexp: string;
|
||||
noTransparencyLog?: boolean;
|
||||
}
|
||||
|
||||
25
src/util.ts
25
src/util.ts
@@ -17,6 +17,7 @@
|
||||
import crypto from 'crypto';
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import * as handlebars from 'handlebars';
|
||||
import * as core from '@actions/core';
|
||||
import * as io from '@actions/io';
|
||||
import {parse} from 'csv-parse/sync';
|
||||
@@ -24,12 +25,14 @@ import {parse} from 'csv-parse/sync';
|
||||
export interface ListOpts {
|
||||
ignoreComma?: boolean;
|
||||
comment?: string;
|
||||
commentNoInfix?: boolean;
|
||||
quote?: string | boolean | Buffer | null;
|
||||
trimWhitespace?: boolean;
|
||||
}
|
||||
|
||||
export class Util {
|
||||
public static getInputList(name: string, opts?: ListOpts): string[] {
|
||||
return this.getList(core.getInput(name), opts);
|
||||
return this.getList(core.getInput(name, {trimWhitespace: opts?.trimWhitespace !== false}), opts);
|
||||
}
|
||||
|
||||
public static getList(input: string, opts?: ListOpts): string[] {
|
||||
@@ -42,6 +45,7 @@ export class Util {
|
||||
columns: false,
|
||||
relaxQuotes: true,
|
||||
comment: opts?.comment,
|
||||
comment_no_infix: opts?.commentNoInfix,
|
||||
relaxColumnCount: true,
|
||||
skipEmptyLines: true,
|
||||
quote: opts?.quote
|
||||
@@ -61,7 +65,7 @@ export class Util {
|
||||
}
|
||||
}
|
||||
|
||||
return res.filter(item => item).map(pat => pat.trim());
|
||||
return res.filter(item => item).map(item => (opts?.trimWhitespace === false ? item : item.trim()));
|
||||
}
|
||||
|
||||
public static getInputNumber(name: string): number | undefined {
|
||||
@@ -155,7 +159,10 @@ export class Util {
|
||||
}
|
||||
|
||||
// https://github.com/golang/go/blob/f6b93a4c358b28b350dd8fe1780c1f78e520c09c/src/strconv/atob.go#L7-L18
|
||||
public static parseBool(str: string): boolean {
|
||||
public static parseBool(str: string | undefined): boolean {
|
||||
if (str === undefined) {
|
||||
return false;
|
||||
}
|
||||
switch (str) {
|
||||
case '1':
|
||||
case 't':
|
||||
@@ -176,6 +183,14 @@ export class Util {
|
||||
}
|
||||
}
|
||||
|
||||
public static parseBoolOrDefault(str: string | undefined, defaultValue = false): boolean {
|
||||
try {
|
||||
return this.parseBool(str);
|
||||
} catch {
|
||||
return defaultValue;
|
||||
}
|
||||
}
|
||||
|
||||
public static formatFileSize(bytes: number): string {
|
||||
if (bytes === 0) return '0 Bytes';
|
||||
const k = 1024;
|
||||
@@ -189,6 +204,10 @@ export class Util {
|
||||
return bytes.toString('hex').slice(0, length);
|
||||
}
|
||||
|
||||
public static compileHandlebars(value: string, options: Parameters<typeof handlebars.compile>[1], data: unknown): string {
|
||||
return handlebars.compile(value, options)(data);
|
||||
}
|
||||
|
||||
public static stringToUnicodeEntities(str: string) {
|
||||
return Array.from(str)
|
||||
.map(char => `&#x${char.charCodeAt(0).toString(16)};`)
|
||||
|
||||
247
yarn.lock
247
yarn.lock
@@ -12,9 +12,9 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@actions/artifact@npm:^6.2.0":
|
||||
version: 6.2.0
|
||||
resolution: "@actions/artifact@npm:6.2.0"
|
||||
"@actions/artifact@npm:^6.2.1":
|
||||
version: 6.2.1
|
||||
resolution: "@actions/artifact@npm:6.2.1"
|
||||
dependencies:
|
||||
"@actions/core": "npm:^3.0.0"
|
||||
"@actions/github": "npm:^9.0.0"
|
||||
@@ -30,7 +30,7 @@ __metadata:
|
||||
archiver: "npm:^7.0.1"
|
||||
jwt-decode: "npm:^4.0.0"
|
||||
unzip-stream: "npm:^0.3.1"
|
||||
checksum: 10/fa931b1222c0e08bca85d3cb18c2cd5ae912cce3f09ab3acd4ec3486e864337d65177089a14aef124d9696b9dd5309b273a9251e230172c79c2444af2c43443e
|
||||
checksum: 10/1fad9b079ee2ab07f964b93bf7b4fc594d115199219baed74ac3bf2a8675e0b7ea57252eccbcdaaaa8fc8375742d23585cbd054f3b2d029c091817e0f257ce93
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -61,6 +61,16 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@actions/core@npm:^3.0.1":
|
||||
version: 3.0.1
|
||||
resolution: "@actions/core@npm:3.0.1"
|
||||
dependencies:
|
||||
"@actions/exec": "npm:^3.0.0"
|
||||
"@actions/http-client": "npm:^4.0.0"
|
||||
checksum: 10/e1295f6b81299cc5655ea571e7b3eea02889fdc479e71c783ad9ca48432c613f52a1fd01fecc973a64488b053083ea925a0d23ac7af0bcd8462afc4f4371918b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@actions/exec@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "@actions/exec@npm:3.0.0"
|
||||
@@ -85,6 +95,21 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@actions/github@npm:^9.1.1":
|
||||
version: 9.1.1
|
||||
resolution: "@actions/github@npm:9.1.1"
|
||||
dependencies:
|
||||
"@actions/http-client": "npm:^3.0.2"
|
||||
"@octokit/core": "npm:^7.0.6"
|
||||
"@octokit/plugin-paginate-rest": "npm:^14.0.0"
|
||||
"@octokit/plugin-rest-endpoint-methods": "npm:^17.0.0"
|
||||
"@octokit/request": "npm:^10.0.7"
|
||||
"@octokit/request-error": "npm:^7.1.0"
|
||||
undici: "npm:^6.23.0"
|
||||
checksum: 10/eb77846e506df107208ee6a57aa38c80ce6cdd9ab499ec3518a8e3000334def8f93fcf2b43c8b512fede9b093a1ca39d184551a9c50f37cb8fc17704d09c7e70
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@actions/glob@npm:^0.6.1":
|
||||
version: 0.6.1
|
||||
resolution: "@actions/glob@npm:0.6.1"
|
||||
@@ -115,6 +140,16 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@actions/http-client@npm:^4.0.1":
|
||||
version: 4.0.1
|
||||
resolution: "@actions/http-client@npm:4.0.1"
|
||||
dependencies:
|
||||
tunnel: "npm:^0.0.6"
|
||||
undici: "npm:^6.23.0"
|
||||
checksum: 10/4fab65bf488e15143db87ce200a9d1f6f81832adfb1cbdadc380bbe2a95c86b1f5daa0d89c029533ccea4cd2b811a84ce984dfd0d6530479b82bc9860e8be704
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@actions/io@npm:^3.0.0, @actions/io@npm:^3.0.2":
|
||||
version: 3.0.2
|
||||
resolution: "@actions/io@npm:3.0.2"
|
||||
@@ -370,23 +405,23 @@ __metadata:
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@docker/actions-toolkit@workspace:."
|
||||
dependencies:
|
||||
"@actions/artifact": "npm:^6.2.0"
|
||||
"@actions/artifact": "npm:^6.2.1"
|
||||
"@actions/cache": "npm:^6.0.0"
|
||||
"@actions/core": "npm:^3.0.0"
|
||||
"@actions/core": "npm:^3.0.1"
|
||||
"@actions/exec": "npm:^3.0.0"
|
||||
"@actions/github": "npm:^9.0.0"
|
||||
"@actions/http-client": "npm:^4.0.0"
|
||||
"@actions/github": "npm:^9.1.1"
|
||||
"@actions/http-client": "npm:^4.0.1"
|
||||
"@actions/io": "npm:^3.0.2"
|
||||
"@actions/tool-cache": "npm:^4.0.0"
|
||||
"@eslint/js": "npm:^9.39.3"
|
||||
"@sigstore/bundle": "npm:^4.0.0"
|
||||
"@sigstore/sign": "npm:^4.1.0"
|
||||
"@sigstore/tuf": "npm:^4.0.1"
|
||||
"@sigstore/sign": "npm:^4.1.1"
|
||||
"@sigstore/tuf": "npm:^4.0.2"
|
||||
"@sigstore/verify": "npm:^3.1.0"
|
||||
"@types/gunzip-maybe": "npm:^1.4.3"
|
||||
"@types/he": "npm:^1.2.3"
|
||||
"@types/js-yaml": "npm:^4.0.9"
|
||||
"@types/node": "npm:^20.19.35"
|
||||
"@types/node": "npm:^24.11.0"
|
||||
"@types/semver": "npm:^7.7.1"
|
||||
"@types/tar-stream": "npm:^3.1.4"
|
||||
"@types/tmp": "npm:^0.2.6"
|
||||
@@ -395,13 +430,13 @@ __metadata:
|
||||
"@vitest/coverage-v8": "npm:^4.0.18"
|
||||
"@vitest/eslint-plugin": "npm:^1.6.9"
|
||||
async-retry: "npm:^1.3.3"
|
||||
csv-parse: "npm:^6.1.0"
|
||||
csv-parse: "npm:^6.2.1"
|
||||
eslint: "npm:^9.39.3"
|
||||
eslint-config-prettier: "npm:^10.1.8"
|
||||
eslint-plugin-prettier: "npm:^5.5.5"
|
||||
globals: "npm:^17.3.0"
|
||||
gunzip-maybe: "npm:^1.4.2"
|
||||
handlebars: "npm:^4.7.8"
|
||||
handlebars: "npm:^4.7.9"
|
||||
he: "npm:^1.2.0"
|
||||
js-yaml: "npm:^4.1.1"
|
||||
jwt-decode: "npm:^4.0.0"
|
||||
@@ -696,6 +731,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@gar/promise-retry@npm:^1.0.0, @gar/promise-retry@npm:^1.0.2":
|
||||
version: 1.0.3
|
||||
resolution: "@gar/promise-retry@npm:1.0.3"
|
||||
checksum: 10/0d13ea3bb1025755e055648f6e290d2a7e0c87affaf552218f09f66b3fcd9ea9d5c9cc5fe2aa6e285e1530437768e40f9448fe9a86f4f3417b216dcf488d3d1a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@gar/promisify@npm:^1.1.3":
|
||||
version: 1.1.3
|
||||
resolution: "@gar/promisify@npm:1.1.3"
|
||||
@@ -795,6 +837,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@nodable/entities@npm:^2.1.0":
|
||||
version: 2.1.0
|
||||
resolution: "@nodable/entities@npm:2.1.0"
|
||||
checksum: 10/355c55e82aebe45d4b962d16530951df51e19e3e63a27ea61ad3260c0807064619b270b9c83db10e8394f42760abd5b7f7c5b5117678c4246ce8364a4aafc637
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@npmcli/agent@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "@npmcli/agent@npm:4.0.0"
|
||||
@@ -837,6 +886,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@npmcli/redact@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "@npmcli/redact@npm:4.0.0"
|
||||
checksum: 10/5d52df2b5267f4369c97a2b2f7c427e3d7aa4b6a83e7a1b522e196f6e9d50024c620bd0cb2052067c74d1aaa0c330d9bc04e1d335bfb46180e705bb33423e74c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@octokit/auth-token@npm:^6.0.0":
|
||||
version: 6.0.0
|
||||
resolution: "@octokit/auth-token@npm:6.0.0"
|
||||
@@ -1234,6 +1290,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sigstore/core@npm:^3.2.0":
|
||||
version: 3.2.0
|
||||
resolution: "@sigstore/core@npm:3.2.0"
|
||||
checksum: 10/2425d20297d57a5f5a62f0e6c2f4280818015ea00b3defebdac63f13c7d01db988602c316c16e374ba091c3649dd9a22ae8c9ba3ac165f736b0503164c5da5f5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sigstore/protobuf-specs@npm:^0.5.0":
|
||||
version: 0.5.0
|
||||
resolution: "@sigstore/protobuf-specs@npm:0.5.0"
|
||||
@@ -1241,27 +1304,27 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sigstore/sign@npm:^4.1.0":
|
||||
version: 4.1.0
|
||||
resolution: "@sigstore/sign@npm:4.1.0"
|
||||
"@sigstore/sign@npm:^4.1.1":
|
||||
version: 4.1.1
|
||||
resolution: "@sigstore/sign@npm:4.1.1"
|
||||
dependencies:
|
||||
"@gar/promise-retry": "npm:^1.0.2"
|
||||
"@sigstore/bundle": "npm:^4.0.0"
|
||||
"@sigstore/core": "npm:^3.1.0"
|
||||
"@sigstore/core": "npm:^3.2.0"
|
||||
"@sigstore/protobuf-specs": "npm:^0.5.0"
|
||||
make-fetch-happen: "npm:^15.0.3"
|
||||
make-fetch-happen: "npm:^15.0.4"
|
||||
proc-log: "npm:^6.1.0"
|
||||
promise-retry: "npm:^2.0.1"
|
||||
checksum: 10/e5441d4cacf0f203f329e96bb7a3ca77682cfdf90d6448ad368344056fd8d55c01742e2b636545d55364490a87988f767f2b23168b2d9cc52ef3d8fe9e9496aa
|
||||
checksum: 10/c9424813ed83ae26111dd3a190dbfd776901cfc245ebb9aa68e133a7ffcbf8fc053f01d999a451e44805a291921ba4d2dfe80e3fd41b20cd5becd26aae5f5e7c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sigstore/tuf@npm:^4.0.1":
|
||||
version: 4.0.1
|
||||
resolution: "@sigstore/tuf@npm:4.0.1"
|
||||
"@sigstore/tuf@npm:^4.0.2":
|
||||
version: 4.0.2
|
||||
resolution: "@sigstore/tuf@npm:4.0.2"
|
||||
dependencies:
|
||||
"@sigstore/protobuf-specs": "npm:^0.5.0"
|
||||
tuf-js: "npm:^4.1.0"
|
||||
checksum: 10/1a9725aa95eba55badf24442fe8a71c6d68f8b7d17a6b2a5e4b5590117f0181881b3485cfa57ea375b7c3a38421dbffdfcbe86e6623d903e17e3a8359837e268
|
||||
checksum: 10/14882b8e71be4185ec417744b97a47392a50da00aafd4207a46bb74b40aa019ebf22d928052fd2d31a8da0da1efe7ebebac5a70898b31a74239a1ada997be754
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1368,12 +1431,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/node@npm:^20.19.35":
|
||||
version: 20.19.35
|
||||
resolution: "@types/node@npm:20.19.35"
|
||||
"@types/node@npm:^24.11.0":
|
||||
version: 24.11.0
|
||||
resolution: "@types/node@npm:24.11.0"
|
||||
dependencies:
|
||||
undici-types: "npm:~6.21.0"
|
||||
checksum: 10/f14fa74f9ae4d1109d8a8e3ec31b6518122b3d31c28fd5725cb3eef8ff64d7cf6f8da9c84c78b512e2968006ec325c82a413cc2062da7b3c3230c882e88babba
|
||||
undici-types: "npm:~7.16.0"
|
||||
checksum: 10/d2f4f898c6a0f14980e55c697904fb58681729fc46b4e264d5f64dc391b23da73c9b422cfffbca28c045e6e8eca72dab5f28ed633faa95398ef1528af5398382
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1930,12 +1993,12 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"brace-expansion@npm:^1.1.7":
|
||||
version: 1.1.12
|
||||
resolution: "brace-expansion@npm:1.1.12"
|
||||
version: 1.1.13
|
||||
resolution: "brace-expansion@npm:1.1.13"
|
||||
dependencies:
|
||||
balanced-match: "npm:^1.0.0"
|
||||
concat-map: "npm:0.0.1"
|
||||
checksum: 10/12cb6d6310629e3048cadb003e1aca4d8c9bb5c67c3c321bafdd7e7a50155de081f78ea3e0ed92ecc75a9015e784f301efc8132383132f4f7904ad1ac529c562
|
||||
checksum: 10/b5f4329fdbe9d2e25fa250c8f866ebd054ba946179426e99b86dcccddabdb1d481f0e40ee5430032e62a7d0a6c2837605ace6783d015aa1d65d85ca72154d936
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2178,10 +2241,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"csv-parse@npm:^6.1.0":
|
||||
version: 6.1.0
|
||||
resolution: "csv-parse@npm:6.1.0"
|
||||
checksum: 10/607d92611435fdfb7631242644a2582bfb218fad8c6c6d6416db31647c2e63a3110f16c9837de6baaa3edf318212765cfc6e72d672d99690fd7f565d6c93d6f4
|
||||
"csv-parse@npm:^6.2.1":
|
||||
version: 6.2.1
|
||||
resolution: "csv-parse@npm:6.2.1"
|
||||
checksum: 10/7fbde1225c6df6aaea01a202934e1f15ce16ed55e544ead0d066b0c4dc9ae1a2fc881b412889cbf115cd74cbf14ea17388b394e8a31e05cb412dd7dc6114bebd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2655,22 +2718,26 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"fast-xml-builder@npm:^1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "fast-xml-builder@npm:1.0.0"
|
||||
checksum: 10/06c04d80545e5c9f4d1d6cca00567b5cc09953a92c6328fa48cfb4d7f42630313b8c2bb62e9cb81accee7bb5e1c5312fcae06c3d20dbe52d969a5938233316da
|
||||
"fast-xml-builder@npm:^1.1.5":
|
||||
version: 1.1.5
|
||||
resolution: "fast-xml-builder@npm:1.1.5"
|
||||
dependencies:
|
||||
path-expression-matcher: "npm:^1.1.3"
|
||||
checksum: 10/377c4ef816972e67192fd32757c50d2a9d4cccf352ceac48bda6681a0ee24fb0b1f1c892810f77886db760681f23fe0b8f62c7c0cc9469c0d2863c5c529ac1d2
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"fast-xml-parser@npm:^5.0.7":
|
||||
version: 5.4.1
|
||||
resolution: "fast-xml-parser@npm:5.4.1"
|
||||
version: 5.7.1
|
||||
resolution: "fast-xml-parser@npm:5.7.1"
|
||||
dependencies:
|
||||
fast-xml-builder: "npm:^1.0.0"
|
||||
strnum: "npm:^2.1.2"
|
||||
"@nodable/entities": "npm:^2.1.0"
|
||||
fast-xml-builder: "npm:^1.1.5"
|
||||
path-expression-matcher: "npm:^1.5.0"
|
||||
strnum: "npm:^2.2.3"
|
||||
bin:
|
||||
fxparser: src/cli/cli.js
|
||||
checksum: 10/2b40067c3ad3542ca197d1353bcb0416cd5db20d5c66d74ac176b99af6ff9bd55a6182d36856a2fd477c95b8fc1f07405475f1662a31185480130ba7076c702a
|
||||
checksum: 10/ce7de013cae7707d12b9da8cb294265da3780bb8bfa36b17f98053654628a0142159d78746747b1ed38bdefca8b6817f051171183e69a527ba18e1df067e9bce
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2716,9 +2783,9 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"flatted@npm:^3.2.9":
|
||||
version: 3.3.1
|
||||
resolution: "flatted@npm:3.3.1"
|
||||
checksum: 10/7b8376061d5be6e0d3658bbab8bde587647f68797cf6bfeae9dea0e5137d9f27547ab92aaff3512dd9d1299086a6d61be98e9d48a56d17531b634f77faadbc49
|
||||
version: 3.4.2
|
||||
resolution: "flatted@npm:3.4.2"
|
||||
checksum: 10/a9e78fe5c2c1fcd98209a015ccee3a6caa953e01729778e83c1fe92e68601a63e1e69cd4e573010ca99eaf585a581b80ccf1018b99283e6cbc2117bcba1e030f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2924,9 +2991,9 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"handlebars@npm:^4.7.8":
|
||||
version: 4.7.8
|
||||
resolution: "handlebars@npm:4.7.8"
|
||||
"handlebars@npm:^4.7.9":
|
||||
version: 4.7.9
|
||||
resolution: "handlebars@npm:4.7.9"
|
||||
dependencies:
|
||||
minimist: "npm:^1.2.5"
|
||||
neo-async: "npm:^2.6.2"
|
||||
@@ -2938,7 +3005,7 @@ __metadata:
|
||||
optional: true
|
||||
bin:
|
||||
handlebars: bin/handlebars
|
||||
checksum: 10/bd528f4dd150adf67f3f857118ef0fa43ff79a153b1d943fa0a770f2599e38b25a7a0dbac1a3611a4ec86970fd2325a81310fb788b5c892308c9f8743bd02e11
|
||||
checksum: 10/e755433d652e8a15fc02f83d7478e652359e7a4d354c4328818853ed4f8a39d4a09e1d22dad3c7213c5240864a65b3c840970b8b181745575dd957dd258f2b8d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3352,9 +3419,9 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"lodash@npm:^4.17.15":
|
||||
version: 4.17.23
|
||||
resolution: "lodash@npm:4.17.23"
|
||||
checksum: 10/82504c88250f58da7a5a4289f57a4f759c44946c005dd232821c7688b5fcfbf4a6268f6a6cdde4b792c91edd2f3b5398c1d2a0998274432cff76def48735e233
|
||||
version: 4.18.1
|
||||
resolution: "lodash@npm:4.18.1"
|
||||
checksum: 10/306fea53dfd39dad1f03d45ba654a2405aebd35797b673077f401edb7df2543623dc44b9effbb98f69b32152295fff725a4cec99c684098947430600c6af0c3f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3457,7 +3524,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"make-fetch-happen@npm:^15.0.1, make-fetch-happen@npm:^15.0.3":
|
||||
"make-fetch-happen@npm:^15.0.1":
|
||||
version: 15.0.3
|
||||
resolution: "make-fetch-happen@npm:15.0.3"
|
||||
dependencies:
|
||||
@@ -3476,6 +3543,26 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"make-fetch-happen@npm:^15.0.4":
|
||||
version: 15.0.5
|
||||
resolution: "make-fetch-happen@npm:15.0.5"
|
||||
dependencies:
|
||||
"@gar/promise-retry": "npm:^1.0.0"
|
||||
"@npmcli/agent": "npm:^4.0.0"
|
||||
"@npmcli/redact": "npm:^4.0.0"
|
||||
cacache: "npm:^20.0.1"
|
||||
http-cache-semantics: "npm:^4.1.1"
|
||||
minipass: "npm:^7.0.2"
|
||||
minipass-fetch: "npm:^5.0.0"
|
||||
minipass-flush: "npm:^1.0.5"
|
||||
minipass-pipeline: "npm:^1.2.4"
|
||||
negotiator: "npm:^1.0.0"
|
||||
proc-log: "npm:^6.0.0"
|
||||
ssri: "npm:^13.0.0"
|
||||
checksum: 10/d2649effb06c00cb2b266057cb1c8c1e99cfc8d1378e7d9c26cc8f00be41bc63d59b77a5576ed28f8105acc57fb16220b64217f8d3a6a066a594c004aa163afa
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"minimatch@npm:^10.0.3":
|
||||
version: 10.0.3
|
||||
resolution: "minimatch@npm:10.0.3"
|
||||
@@ -3897,6 +3984,20 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"path-expression-matcher@npm:^1.1.3":
|
||||
version: 1.1.3
|
||||
resolution: "path-expression-matcher@npm:1.1.3"
|
||||
checksum: 10/9a607d0bf9807cf86b0a29fb4263f0c00285c13bedafb6ad3efc8bc87ae878da2faf657a9138ac918726cb19f147235a0ca695aec3e4ea1ee04641b6520e6c9e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"path-expression-matcher@npm:^1.5.0":
|
||||
version: 1.5.0
|
||||
resolution: "path-expression-matcher@npm:1.5.0"
|
||||
checksum: 10/28303bb9ee6831e6df14c10cd3f3f7b2d7c8d7f788d8bdb7440136fd696064c82a3e264999a0764d28e39f698275fc03a5493bec93c57ef4a22566280367dd64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"path-is-absolute@npm:^1.0.0":
|
||||
version: 1.0.1
|
||||
resolution: "path-is-absolute@npm:1.0.1"
|
||||
@@ -3967,9 +4068,9 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"picomatch@npm:^4.0.3":
|
||||
version: 4.0.3
|
||||
resolution: "picomatch@npm:4.0.3"
|
||||
checksum: 10/57b99055f40b16798f2802916d9c17e9744e620a0db136554af01d19598b96e45e2f00014c91d1b8b13874b80caa8c295b3d589a3f72373ec4aaf54baa5962d5
|
||||
version: 4.0.4
|
||||
resolution: "picomatch@npm:4.0.4"
|
||||
checksum: 10/f6ef80a3590827ce20378ae110ac78209cc4f74d39236370f1780f957b7ee41c12acde0e4651b90f39983506fd2f5e449994716f516db2e9752924aff8de93ce
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -4577,10 +4678,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"strnum@npm:^2.1.2":
|
||||
version: 2.1.2
|
||||
resolution: "strnum@npm:2.1.2"
|
||||
checksum: 10/7d894dff385e3a5c5b29c012cf0a7ea7962a92c6a299383c3d6db945ad2b6f3e770511356a9774dbd54444c56af1dc7c435dad6466c47293c48173274dd6c631
|
||||
"strnum@npm:^2.2.3":
|
||||
version: 2.2.3
|
||||
resolution: "strnum@npm:2.2.3"
|
||||
checksum: 10/fb70206301858c319f59ed34fecedf90ac3b821692c2accd403d9d4a3384223a09df8fd92b130bbd4e885b67b7790715c003405ce5f959d9cabbf07d41d62aa8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -4781,17 +4882,17 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"undici-types@npm:~6.21.0":
|
||||
version: 6.21.0
|
||||
resolution: "undici-types@npm:6.21.0"
|
||||
checksum: 10/ec8f41aa4359d50f9b59fa61fe3efce3477cc681908c8f84354d8567bb3701fafdddf36ef6bff307024d3feb42c837cf6f670314ba37fc8145e219560e473d14
|
||||
"undici-types@npm:~7.16.0":
|
||||
version: 7.16.0
|
||||
resolution: "undici-types@npm:7.16.0"
|
||||
checksum: 10/db43439f69c2d94cc29f75cbfe9de86df87061d6b0c577ebe9bb3255f49b22c50162a7d7eb413b0458b6510b8ca299ac7cff38c3a29fbd31af9f504bcf7fbc0d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"undici@npm:^6.23.0":
|
||||
version: 6.23.0
|
||||
resolution: "undici@npm:6.23.0"
|
||||
checksum: 10/56950995e7b628e62c996430445d17995ca9b70f6f2afe760a63da54205660d968bd08f0741b6f4fb008f40aa35c69cce979cd96ced399585d8c897a76a4f1d1
|
||||
version: 6.24.1
|
||||
resolution: "undici@npm:6.24.1"
|
||||
checksum: 10/4f84e6045520eef9ba8eabb96360b50c759f59905c1703b12187c2dbcc6d1584c5d7ecddeb45b0ed6cac84ca2d132b21bfd8a38f77fa30378b1ac5d2ae390fd9
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -4865,8 +4966,8 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"vite@npm:^6.0.0 || ^7.0.0":
|
||||
version: 7.3.1
|
||||
resolution: "vite@npm:7.3.1"
|
||||
version: 7.3.2
|
||||
resolution: "vite@npm:7.3.2"
|
||||
dependencies:
|
||||
esbuild: "npm:^0.27.0"
|
||||
fdir: "npm:^6.5.0"
|
||||
@@ -4915,7 +5016,7 @@ __metadata:
|
||||
optional: true
|
||||
bin:
|
||||
vite: bin/vite.js
|
||||
checksum: 10/62e48ffa4283b688f0049005405a004447ad38ffc99a0efea4c3aa9b7eed739f7402b43f00668c0ee5a895b684dc953d62f0722d8a92c5b2f6c95f051bceb208
|
||||
checksum: 10/c5f7a9a60011c41c836cedf31c8ee7624102aff9b6a7f3aab2ff47639721bba0916f81994c3a3ea6577a16c4f0dfee1e7dbd244e0da8edd5954e3c6d48daaaa2
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
Reference in New Issue
Block a user