Compare commits

..

164 Commits

Author SHA1 Message Date
CrazyMax
7ee633887d Merge pull request #844 from docker/dependabot/npm_and_yarn/sigstore/sign-4.0.1
Some checks failed
publish / publish (push) Has been cancelled
build(deps): bump @sigstore/sign from 3.1.0 to 4.0.1
2025-11-05 12:31:11 +01:00
dependabot[bot]
9c7140767c build(deps): bump @sigstore/sign from 3.1.0 to 4.0.1
Bumps [@sigstore/sign](https://github.com/sigstore/sigstore-js) from 3.1.0 to 4.0.1.
- [Release notes](https://github.com/sigstore/sigstore-js/releases)
- [Commits](https://github.com/sigstore/sigstore-js/compare/@sigstore/sign@3.1.0...@sigstore/sign@4.0.1)

---
updated-dependencies:
- dependency-name: "@sigstore/sign"
  dependency-version: 4.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-05 11:16:10 +00:00
CrazyMax
7cb0fac5c0 Merge pull request #840 from docker/dependabot/npm_and_yarn/sigstore/bundle-4.0.0
build(deps): bump @sigstore/bundle from 3.1.0 to 4.0.0
2025-11-05 12:13:25 +01:00
dependabot[bot]
9b9d27dc4c build(deps): bump @sigstore/bundle from 3.1.0 to 4.0.0
Bumps [@sigstore/bundle](https://github.com/sigstore/sigstore-js) from 3.1.0 to 4.0.0.
- [Release notes](https://github.com/sigstore/sigstore-js/releases)
- [Commits](https://github.com/sigstore/sigstore-js/compare/@sigstore/bundle@3.1.0...@sigstore/bundle@4.0.0)

---
updated-dependencies:
- dependency-name: "@sigstore/bundle"
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-05 10:45:32 +00:00
CrazyMax
a84516d0dd Merge pull request #843 from crazy-max/rm-actions-attest
sigstore: remove @actions/attest dependency
2025-11-05 11:43:19 +01:00
CrazyMax
85dfc7a573 sigstore: remove @actions/attest dependency
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-05 11:11:57 +01:00
CrazyMax
5c04d3904d Merge pull request #842 from crazy-max/cache-failsafe
cache: gracefully handle cache restore failures with warning
2025-11-05 10:27:59 +01:00
CrazyMax
d8def31251 cache: gracefully handle cache restore failures with warning
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-05 10:02:21 +01:00
CrazyMax
7ab28f9678 Merge pull request #841 from crazy-max/sigstore-multi-images
Some checks failed
publish / publish (push) Has been cancelled
sigstore: multi image names support for signing
2025-11-04 14:03:26 +01:00
CrazyMax
6bd8db31fe sigstore: multi image names support for signing
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-04 13:36:03 +01:00
CrazyMax
b449e6efd0 Merge pull request #836 from docker/dependabot/npm_and_yarn/npm_and_yarn-a40929283c
build(deps): bump the npm_and_yarn group across 1 directory with 2 updates
2025-11-03 23:03:40 +01:00
dependabot[bot]
764b218deb build(deps): bump the npm_and_yarn group across 1 directory with 2 updates
Bumps the npm_and_yarn group with 2 updates in the / directory: [@octokit/request-error](https://github.com/octokit/request-error.js) and [@octokit/request](https://github.com/octokit/request.js).


Updates `@octokit/request-error` from 5.0.0 to 5.1.1
- [Release notes](https://github.com/octokit/request-error.js/releases)
- [Commits](https://github.com/octokit/request-error.js/compare/v5.0.0...v5.1.1)

Updates `@octokit/request` from 8.1.1 to 8.4.1
- [Release notes](https://github.com/octokit/request.js/releases)
- [Commits](https://github.com/octokit/request.js/compare/v8.1.1...v8.4.1)

---
updated-dependencies:
- dependency-name: "@octokit/request-error"
  dependency-version: 5.1.1
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: "@octokit/request"
  dependency-version: 8.4.1
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 16:45:09 +00:00
CrazyMax
f592739bbc Merge pull request #838 from crazy-max/fix-toolkit-class
Some checks failed
publish / publish (push) Has been cancelled
toolkit: add missing classes
2025-11-03 12:34:58 +01:00
CrazyMax
dd7595981f Merge pull request #839 from crazy-max/lima-timeout-env
docker(install): LIMA_START_TIMEOUT env var
2025-11-03 12:34:39 +01:00
CrazyMax
8ba2bc9036 docker(install): LIMA_START_TIMEOUT env var
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-03 12:29:57 +01:00
CrazyMax
18535e8207 toolkit: add missing classes
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-03 12:27:34 +01:00
CrazyMax
8032ed96f6 Merge pull request #837 from crazy-max/lima-dns
docker(install): don't use local system resolver with lima and increase timeouts
2025-11-03 12:10:21 +01:00
CrazyMax
efa21ec9ac Merge pull request #830 from crazy-max/signing-manifest
sigstore: sign and verify BuildKit attestation manifests
2025-11-03 11:42:27 +01:00
CrazyMax
3588cc8ad4 docker(install): increase lima start timeout
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-03 11:39:42 +01:00
CrazyMax
bbd652b087 docker(install): increase dockerd startup timeout
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-03 11:39:31 +01:00
CrazyMax
e85f11c5bd docker(install): don't use local system resolver with lima
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-03 11:09:16 +01:00
CrazyMax
5d9b7822a6 sigstore: sign and verify BuildKit attestation manifests
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-03 09:35:07 +01:00
CrazyMax
b4f8e5f0f9 Merge pull request #820 from crazy-max/signing
sigstore class to sign and verify buildkit provenance blobs
2025-11-03 09:34:37 +01:00
CrazyMax
3ed33f61c4 Merge pull request #835 from docker/bot/docker-releases-json
Update `.github/docker-releases.json`
2025-11-02 01:58:56 +01:00
crazy-max
a61e8fdb65 github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-01 00:35:16 +00:00
CrazyMax
364d8e8cda sigstore: verifySignedArtifacts func
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-10-30 15:52:34 +01:00
CrazyMax
1c0dc52a0e sigstore: always set TSA server endpoint to provide trusted timestamping
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-10-30 15:52:34 +01:00
CrazyMax
36cc95143c sigstore class to sign buildkit provenance blobs
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-10-30 15:52:33 +01:00
CrazyMax
24b234cb06 Merge pull request #823 from crazy-max/buildx-attestations-digest
buildx(imagetools): return attestations digests
2025-10-30 15:52:12 +01:00
CrazyMax
b2a04264d7 Merge pull request #829 from docker/bot/compose-releases-json
Update `.github/compose-releases.json`
2025-10-30 13:20:56 +01:00
crazy-max
019e7ff457 github: update .github/compose-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-30 12:10:27 +00:00
CrazyMax
0ea9d89ee1 Merge pull request #828 from crazy-max/cosign-skip-state
cosign(install): skipState opt to directly upload to GHA cache
2025-10-30 13:09:52 +01:00
CrazyMax
1764424b68 cosign(install): skipState opt to directly upload to GHA cache
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-10-30 12:17:33 +01:00
CrazyMax
dfe6c8d9e5 Merge pull request #827 from crazy-max/cosign-version
cosign version
2025-10-30 09:56:24 +01:00
CrazyMax
0f9a1c9368 cosign version
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-10-29 18:24:42 +01:00
CrazyMax
6b0ff671bc Merge pull request #826 from crazy-max/cosign-install
cosign install
2025-10-29 18:24:27 +01:00
CrazyMax
5b8fb95ca3 cosign install
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-10-29 16:18:29 +01:00
CrazyMax
9ada6fdf12 Merge pull request #825 from docker/bot/cosign-releases-json
Update `.github/cosign-releases.json`
2025-10-29 14:46:33 +01:00
crazy-max
b0b427d52f github: update .github/cosign-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-29 13:46:15 +00:00
CrazyMax
0a93f2f5be Merge pull request #824 from crazy-max/cosign-releases-json
ci: cosign releases json workflow
2025-10-29 14:45:48 +01:00
CrazyMax
1de1c446bf ci: cosign releases json workflow
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-10-29 14:44:20 +01:00
CrazyMax
16d264a310 Merge pull request #821 from crazy-max/update-lima-images
docker(install): update lima images
2025-10-29 13:31:59 +01:00
CrazyMax
1dc98594b3 Merge pull request #819 from crazy-max/install-cdn-token
use github token to fetch releases JSON from CDN if available
2025-10-29 11:07:18 +01:00
CrazyMax
e436a08992 docker(install): update lima images
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-10-29 10:39:38 +01:00
CrazyMax
75cde1582a Merge pull request #822 from crazy-max/ci-macos-15-intel
ci(test): update to macos-15-intel
2025-10-28 13:40:24 +01:00
CrazyMax
2bef6ba8d9 ci(test): update to macos-15-intel
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-10-28 12:31:25 +01:00
CrazyMax
437b1870cc buildx(imagetools): return attestations digests
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-10-28 11:35:08 +01:00
CrazyMax
2acf5409f8 Merge pull request #817 from docker/dependabot/github_actions/actions/download-artifact-6
build(deps): bump actions/download-artifact from 5 to 6
2025-10-28 10:43:19 +01:00
CrazyMax
0d894f0870 Merge pull request #818 from docker/dependabot/npm_and_yarn/actions/artifact-4.0.0
build(deps): bump @actions/artifact from 2.3.2 to 4.0.0
2025-10-28 10:30:53 +01:00
CrazyMax
f8d7170ef4 ci: update crazy-max/.github/.github/workflows/releases-json to 34fd436
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-10-28 09:46:22 +01:00
CrazyMax
d970614050 github: use github token to fetch releases JSON from CDN if available
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-10-28 09:35:50 +01:00
CrazyMax
503a033f4a github: use github token to download releases with actions/tool-cache if available
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-10-28 09:35:50 +01:00
CrazyMax
8e64b4303b releases: mutualize releases handling logic and move it to github class
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-10-28 09:35:50 +01:00
dependabot[bot]
3249537c32 build(deps): bump @actions/artifact from 2.3.2 to 4.0.0
Bumps [@actions/artifact](https://github.com/actions/toolkit/tree/HEAD/packages/artifact) from 2.3.2 to 4.0.0.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/artifact/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/@actions/cache@4.0.0/packages/artifact)

---
updated-dependencies:
- dependency-name: "@actions/artifact"
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-24 22:07:10 +00:00
dependabot[bot]
dd7082cfe3 build(deps): bump actions/download-artifact from 5 to 6
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-24 22:06:06 +00:00
CrazyMax
5568d95611 Merge pull request #816 from docker/bot/compose-releases-json
Update `.github/compose-releases.json`
2025-10-23 09:12:28 +02:00
crazy-max
3c7308e1e3 github: update .github/compose-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-23 00:34:20 +00:00
CrazyMax
08239d0545 Merge pull request #814 from docker/bot/compose-releases-json
Update `.github/compose-releases.json`
2025-10-22 13:22:12 +02:00
crazy-max
660f4c287e github: update .github/compose-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-18 00:31:51 +00:00
Paweł Gronowski
779136b849 Merge pull request #813 from crazy-max/docker-install-fix-version
Some checks failed
publish / publish (push) Has been cancelled
docker(install): fix source archive version
2025-10-16 12:01:01 +02:00
CrazyMax
0c5ce444d7 docker(install): fix source archive version
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-10-15 12:38:08 +02:00
CrazyMax
907e9d8118 Merge pull request #812 from docker/bot/docker-releases-json
Update `.github/docker-releases.json`
2025-10-15 12:17:46 +02:00
crazy-max
c9db613fce github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-15 10:15:16 +00:00
CrazyMax
73904748dc Merge pull request #811 from crazy-max/moby-releases-json-fix
ci: fix docker releases json workflow
2025-10-15 12:14:47 +02:00
CrazyMax
40cb100aa4 ci: fix docker releases json workflow
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-10-15 11:13:31 +02:00
CrazyMax
6b7c32c45e Merge pull request #810 from docker/dependabot/github_actions/actions/setup-node-6
build(deps): bump actions/setup-node from 5 to 6
2025-10-15 10:21:48 +02:00
dependabot[bot]
e6b5804ee1 build(deps): bump actions/setup-node from 5 to 6
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 5 to 6.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-14 22:05:03 +00:00
CrazyMax
f219785672 Merge pull request #739 from docker/dependabot/npm_and_yarn/csv-parse-6.1.0
build(deps): bump csv-parse from 5.6.0 to 6.1.0
2025-10-13 16:27:25 +02:00
CrazyMax
87262f28a1 Merge pull request #808 from docker/bot/docker-releases-json
Update `.github/docker-releases.json`
2025-10-09 11:04:10 +02:00
crazy-max
dd8f44d9e0 github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-09 00:30:26 +00:00
CrazyMax
edee0fa2c0 Merge pull request #806 from docker/dependabot/github_actions/github/codeql-action-4
build(deps): bump github/codeql-action from 3 to 4
2025-10-08 08:55:06 +02:00
CrazyMax
fa3bc45740 Merge pull request #807 from docker/dependabot/npm_and_yarn/multi-c9330d5d78
build(deps): bump semver and @types/semver
2025-10-08 08:54:49 +02:00
dependabot[bot]
69c6b19130 build(deps): bump semver and @types/semver
Bumps [semver](https://github.com/npm/node-semver) and [@types/semver](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver). These dependencies needed to be updated together.

Updates `semver` from 7.7.2 to 7.7.3
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.7.2...v7.7.3)

Updates `@types/semver` from 7.7.0 to 7.7.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/semver)

---
updated-dependencies:
- dependency-name: semver
  dependency-version: 7.7.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: "@types/semver"
  dependency-version: 7.7.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-07 22:06:45 +00:00
dependabot[bot]
445300bbc6 build(deps): bump github/codeql-action from 3 to 4
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-07 22:05:23 +00:00
CrazyMax
d57a631bdc Merge pull request #805 from docker/bot/compose-releases-json
Update `.github/compose-releases.json`
2025-10-06 15:53:39 +02:00
crazy-max
2169fa7066 github: update .github/compose-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-06 12:14:18 +00:00
CrazyMax
7b4f4f5e38 Merge pull request #804 from docker/bot/compose-releases-json
Update `.github/compose-releases.json`
2025-10-03 15:34:52 +02:00
crazy-max
46ecfc67a8 github: update .github/compose-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-03 13:25:49 +00:00
CrazyMax
063e15b4d1 Merge pull request #803 from crazy-max/buildx-0.29.1
update buildx to 0.29.1
2025-10-03 15:25:15 +02:00
CrazyMax
eff67f5f78 update buildx to 0.29.1
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-10-03 15:06:55 +02:00
CrazyMax
45a37f0bfd Merge pull request #801 from docker/bot/docker-releases-json
Update `.github/docker-releases.json`
2025-10-03 14:41:34 +02:00
CrazyMax
4422472369 Merge pull request #802 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2025-10-03 14:41:20 +02:00
crazy-max
e5b030e66b github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-03 12:40:58 +00:00
crazy-max
97dcad9699 github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-03 00:29:34 +00:00
CrazyMax
01f6429e21 Merge pull request #794 from docker/dependabot/npm_and_yarn/actions/cache-4.1.0
build(deps): bump @actions/cache from 4.0.5 to 4.1.0
2025-10-02 11:52:06 +02:00
CrazyMax
29e291e74b Merge pull request #800 from jsternberg/buildkit-update
update buildkit to 0.25.0 and buildx to 0.29.0
2025-10-02 11:51:45 +02:00
CrazyMax
94f3c26bb6 Merge pull request #799 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2025-10-02 11:43:39 +02:00
Jonathan A. Sternberg
7caef13745 update buildkit to 0.25.0 and buildx to 0.29.0
Signed-off-by: Jonathan A. Sternberg <jonathan.sternberg@docker.com>
2025-10-01 10:27:40 -05:00
crazy-max
063adad3cf github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-01 00:26:00 +00:00
CrazyMax
05c231f81d Merge pull request #795 from docker/bot/docker-releases-json
Update `.github/docker-releases.json`
2025-09-29 09:26:22 +02:00
CrazyMax
de12a30676 Merge pull request #793 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2025-09-29 09:26:05 +02:00
crazy-max
73653a12a4 github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-29 07:26:05 +00:00
CrazyMax
395917aada Merge pull request #792 from docker/bot/compose-releases-json
Update `.github/compose-releases.json`
2025-09-29 09:25:45 +02:00
dependabot[bot]
e93e6442aa build(deps): bump @actions/cache from 4.0.5 to 4.1.0
Bumps [@actions/cache](https://github.com/actions/toolkit/tree/HEAD/packages/cache) from 4.0.5 to 4.1.0.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/cache/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/cache)

---
updated-dependencies:
- dependency-name: "@actions/cache"
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-24 22:06:37 +00:00
crazy-max
237511a26b github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-24 12:09:05 +00:00
crazy-max
fb411f67b8 github: update .github/compose-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-19 12:13:14 +00:00
CrazyMax
41c2b21211 Merge pull request #789 from docker/bot/compose-releases-json
Update `.github/compose-releases.json`
2025-09-09 14:27:47 +02:00
crazy-max
1599ebac93 github: update .github/compose-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-09 12:14:31 +00:00
CrazyMax
f52ee8216e Merge pull request #788 from crazy-max/fix-setup-node
ci: fix setup node on windows
2025-09-05 15:01:41 +02:00
CrazyMax
73cdd9ca0c ci: fix setup node on windows
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-09-05 14:27:10 +02:00
CrazyMax
73a0026f5d Merge pull request #785 from docker/dependabot/github_actions/actions/setup-node-5
build(deps): bump actions/setup-node from 4 to 5
2025-09-05 14:17:54 +02:00
CrazyMax
47fe3b74db Merge pull request #784 from docker/dependabot/github_actions/actions/github-script-8
build(deps): bump actions/github-script from 7 to 8
2025-09-05 14:17:36 +02:00
CrazyMax
f8afff957a Merge pull request #786 from docker/bot/docker-releases-json
Update `.github/docker-releases.json`
2025-09-05 14:17:13 +02:00
crazy-max
da5c7028c4 github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-05 12:16:55 +00:00
CrazyMax
ddbc043c1b Merge pull request #787 from docker/bot/buildx-lab-releases-json
Update `.github/buildx-lab-releases.json`
2025-09-05 14:16:31 +02:00
crazy-max
14bc533241 github: update .github/buildx-lab-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-05 12:07:53 +00:00
dependabot[bot]
0c7d839e0b build(deps): bump actions/setup-node from 4 to 5
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 5.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-04 22:05:44 +00:00
dependabot[bot]
58031512a9 build(deps): bump actions/github-script from 7 to 8
Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 8.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-04 22:05:40 +00:00
CrazyMax
1172cc928e Merge pull request #777 from crazy-max/buildx-0.28.0
update buildkit to 0.24.0 and buildx to 0.28.0
2025-09-04 10:40:47 +02:00
CrazyMax
65f39025a8 Merge pull request #783 from docker/bot/docker-releases-json
Update `.github/docker-releases.json`
2025-09-04 10:27:44 +02:00
CrazyMax
4f494c037c update buildkit to 0.24.0 and buildx to 0.28.0
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-09-04 10:26:04 +02:00
tonistiigi
d4aa70d4c0 github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-04 00:13:09 +00:00
Tõnis Tiigi
6e168cc25e Merge pull request #782 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2025-09-03 17:12:46 -07:00
tonistiigi
35991a06a0 github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-04 00:12:00 +00:00
CrazyMax
50543349b4 Merge pull request #781 from docker/bot/docker-releases-json
Update `.github/docker-releases.json`
2025-09-02 14:49:56 +02:00
crazy-max
00e0ea4a5b github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-02 12:12:58 +00:00
CrazyMax
e804718f2d Merge pull request #780 from docker/bot/docker-releases-json
Update `.github/docker-releases.json`
2025-09-01 16:56:36 +02:00
crazy-max
266da332cd github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-01 12:12:34 +00:00
CrazyMax
bd65081400 update buildkit to 0.24.0-rc2 and buildx to 0.28.0-rc2
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-08-31 08:39:45 +02:00
CrazyMax
ea6ea13a87 Merge pull request #779 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2025-08-31 08:36:44 +02:00
CrazyMax
ea895c7e4e Merge pull request #778 from docker/bot/regclient-releases-json
Update `.github/regclient-releases.json`
2025-08-31 08:36:27 +02:00
crazy-max
7e457f7c85 github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-30 00:21:31 +00:00
crazy-max
db3ff5c1eb github: update .github/regclient-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-30 00:11:11 +00:00
CrazyMax
b2ffab917f update buildkit to 0.24.0-rc1 and buildx to 0.28.0-rc1
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-08-28 10:25:29 +02:00
CrazyMax
83a325be96 Merge pull request #775 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2025-08-28 10:21:04 +02:00
crazy-max
af8a156cc2 github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-28 00:22:41 +00:00
dependabot[bot]
cda43ae9ae build(deps): bump csv-parse from 5.6.0 to 6.1.0
Bumps [csv-parse](https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-parse) from 5.6.0 to 6.1.0.
- [Changelog](https://github.com/adaltas/node-csv/blob/master/packages/csv-parse/CHANGELOG.md)
- [Commits](https://github.com/adaltas/node-csv/commits/csv-parse@6.1.0/packages/csv-parse)

---
updated-dependencies:
- dependency-name: csv-parse
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-27 14:20:18 +00:00
CrazyMax
b11e480862 Merge pull request #774 from docker/bot/regclient-releases-json
Update `.github/regclient-releases.json`
2025-08-27 16:17:34 +02:00
crazy-max
1c5138ccdd github: update .github/regclient-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-25 00:12:25 +00:00
CrazyMax
c006aedf93 Merge pull request #773 from docker/bot/buildx-lab-releases-json
Update `.github/buildx-lab-releases.json`
2025-08-23 17:02:28 +02:00
crazy-max
f06b6e729c github: update .github/buildx-lab-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-23 00:20:05 +00:00
CrazyMax
2bf380ec27 Merge pull request #770 from crazy-max/buildx-0.27.0
update buildx to 0.27.0
2025-08-20 14:25:17 +02:00
CrazyMax
6d37992f6f update buildx to 0.27.0
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-08-20 11:53:01 +02:00
CrazyMax
ee56fb8ef5 Merge pull request #771 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2025-08-20 11:52:12 +02:00
crazy-max
118c87c80f github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-20 09:51:20 +00:00
CrazyMax
138224b138 update buildx to 0.27.0-rc1
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-08-14 10:51:40 +02:00
CrazyMax
633bcf1936 Merge pull request #767 from crazy-max/ci-node24
ci: test node 24
2025-08-14 10:48:01 +02:00
CrazyMax
414bfa4864 Merge pull request #769 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2025-08-14 10:47:47 +02:00
crazy-max
126f70ef0b github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-14 08:47:30 +00:00
CrazyMax
349c31e4be ci: test node 24
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-08-12 11:00:49 +02:00
CrazyMax
8b99173e2f Merge pull request #766 from docker/dependabot/github_actions/actions/checkout-5
build(deps): bump actions/checkout from 4 to 5
2025-08-12 09:38:58 +02:00
dependabot[bot]
7f18246934 build(deps): bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-12 06:27:06 +00:00
CrazyMax
5cab49bf34 Merge pull request #764 from docker/dependabot/npm_and_yarn/tmp-0.2.5
build(deps): bump tmp from 0.2.4 to 0.2.5
2025-08-09 19:45:03 +02:00
CrazyMax
4c0aba7764 Merge pull request #765 from docker/bot/compose-releases-json
Update `.github/compose-releases.json`
2025-08-09 19:44:47 +02:00
crazy-max
20f83fbb18 github: update .github/compose-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-09 00:35:41 +00:00
dependabot[bot]
6c1bec71a0 build(deps): bump tmp from 0.2.4 to 0.2.5
Bumps [tmp](https://github.com/raszi/node-tmp) from 0.2.4 to 0.2.5.
- [Changelog](https://github.com/raszi/node-tmp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/raszi/node-tmp/compare/v0.2.4...v0.2.5)

---
updated-dependencies:
- dependency-name: tmp
  dependency-version: 0.2.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-08 22:31:25 +00:00
CrazyMax
2e23307cfd Merge pull request #763 from crazy-max/docker-install-xdg
docker(install): set missing XDG_RUNTIME_DIR env
2025-08-08 10:26:35 +02:00
CrazyMax
7f3d74b83d docker(install): set missing XDG_RUNTIME_DIR env
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-08-08 10:11:33 +02:00
CrazyMax
b58200a858 Merge pull request #762 from docker/dependabot/npm_and_yarn/actions/cache-4.0.5
build(deps): bump @actions/cache from 4.0.3 to 4.0.5
2025-08-08 08:09:56 +02:00
dependabot[bot]
e0b40bb755 build(deps): bump @actions/cache from 4.0.3 to 4.0.5
Bumps [@actions/cache](https://github.com/actions/toolkit/tree/HEAD/packages/cache) from 4.0.3 to 4.0.5.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/cache/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/cache)

---
updated-dependencies:
- dependency-name: "@actions/cache"
  dependency-version: 4.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-07 22:49:20 +00:00
CrazyMax
70344da3c1 Merge pull request #758 from crazy-max/update-docker
dockerfile: update docker to 28.3
2025-08-06 20:56:26 +02:00
CrazyMax
28eac7018d dockerfile: update docker to 28.3
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-08-06 20:36:34 +02:00
CrazyMax
62d7dc4060 Merge pull request #759 from crazy-max/update-compose
dockerfile: update compose to 2.39.1
2025-08-06 20:30:23 +02:00
CrazyMax
06b1747c94 dockerfile: update compose to 2.39.1
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-08-06 18:56:54 +02:00
CrazyMax
6ffec23867 Merge pull request #757 from docker/dependabot/npm_and_yarn/brace-expansion-1.1.12
build(deps): bump brace-expansion from 1.1.11 to 1.1.12
2025-08-06 17:23:21 +02:00
CrazyMax
70bdb203ef Merge pull request #755 from docker/dependabot/npm_and_yarn/tar-6.2.1
build(deps): bump tar from 6.1.13 to 6.2.1
2025-08-06 17:18:54 +02:00
CrazyMax
e80250a7ec Merge pull request #756 from docker/dependabot/npm_and_yarn/undici-5.29.0
build(deps): bump undici from 5.28.4 to 5.29.0
2025-08-06 17:18:37 +02:00
dependabot[bot]
49eec7eec9 build(deps): bump brace-expansion from 1.1.11 to 1.1.12
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.11 to 1.1.12.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/1.1.11...v1.1.12)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 1.1.12
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-06 15:07:37 +00:00
dependabot[bot]
42e32959ef build(deps): bump undici from 5.28.4 to 5.29.0
Bumps [undici](https://github.com/nodejs/undici) from 5.28.4 to 5.29.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.28.4...v5.29.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 5.29.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-06 15:07:32 +00:00
dependabot[bot]
0723bdfc3e build(deps): bump tar from 6.1.13 to 6.2.1
Bumps [tar](https://github.com/isaacs/node-tar) from 6.1.13 to 6.2.1.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v6.1.13...v6.2.1)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 6.2.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-06 15:07:31 +00:00
CrazyMax
512e9bf560 Merge pull request #752 from docker/dependabot/github_actions/actions/download-artifact-5
build(deps): bump actions/download-artifact from 4 to 5
2025-08-06 15:23:05 +02:00
CrazyMax
2dc44d5d81 Merge pull request #753 from docker/dependabot/github_actions/peter-evans/create-pull-request-7.0.8
build(deps): bump peter-evans/create-pull-request from 7.0.5 to 7.0.8
2025-08-06 14:10:11 +02:00
dependabot[bot]
5fa7bea59b build(deps): bump peter-evans/create-pull-request from 7.0.5 to 7.0.8
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 7.0.5 to 7.0.8.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](5e914681df...271a8d0340)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-version: 7.0.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-06 11:58:36 +00:00
dependabot[bot]
a6055db0a1 build(deps): bump actions/download-artifact from 4 to 5
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-06 11:58:24 +00:00
69 changed files with 12987 additions and 793 deletions

View File

@@ -1,61 +1,238 @@
{
"latest": {
"id": 226626248,
"tag_name": "v0.25.0-desktop.1",
"html_url": "https://github.com/docker/buildx-desktop/releases/tag/v0.25.0-desktop.1",
"id": 234386442,
"tag_name": "v0.26.1-desktop.1",
"html_url": "https://github.com/docker/buildx-desktop/releases/tag/v0.26.1-desktop.1",
"assets": [
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.darwin-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.darwin-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.freebsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.freebsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-arm-v6",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-arm-v7",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-ppc64le",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-riscv64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-s390x",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.netbsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.netbsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.netbsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.netbsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.netbsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.netbsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.openbsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.openbsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.windows-amd64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.windows-arm64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/checksums.txt"
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.darwin-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.darwin-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.freebsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.freebsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-arm-v6",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-arm-v7",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-ppc64le",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-riscv64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-s390x",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.netbsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.netbsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.netbsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.netbsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.netbsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.netbsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.openbsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.openbsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.windows-amd64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.windows-arm64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/checksums.txt"
]
},
"edge": {
"id": 245038026,
"tag_name": "v0.28.0-desktop.1",
"html_url": "https://github.com/docker/buildx-desktop/releases/tag/v0.28.0-desktop.1",
"assets": [
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.darwin-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.darwin-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.freebsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.freebsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-arm-v6",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-arm-v7",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-ppc64le",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-riscv64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-s390x",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.netbsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.netbsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.netbsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.netbsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.netbsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.netbsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.openbsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.openbsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.windows-amd64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.windows-arm64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/checksums.txt"
]
},
"v0.28.0-desktop.1": {
"id": 245038026,
"tag_name": "v0.28.0-desktop.1",
"html_url": "https://github.com/docker/buildx-desktop/releases/tag/v0.28.0-desktop.1",
"assets": [
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.darwin-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.darwin-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.freebsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.freebsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-arm-v6",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-arm-v7",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-ppc64le",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-riscv64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-s390x",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.netbsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.netbsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.netbsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.netbsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.netbsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.netbsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.openbsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.openbsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.windows-amd64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.windows-arm64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/buildx-v0.28.0-desktop.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.28.0-desktop.1/checksums.txt"
]
},
"v0.26.1-desktop.1": {
"id": 234386442,
"tag_name": "v0.26.1-desktop.1",
"html_url": "https://github.com/docker/buildx-desktop/releases/tag/v0.26.1-desktop.1",
"assets": [
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.darwin-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.darwin-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.freebsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.freebsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-arm-v6",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-arm-v7",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-ppc64le",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-riscv64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-s390x",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.netbsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.netbsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.netbsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.netbsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.netbsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.netbsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.openbsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.openbsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.windows-amd64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.windows-arm64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/buildx-v0.26.1-desktop.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.26.1-desktop.1/checksums.txt"
]
},
"v0.25.0-desktop.1": {
@@ -235,65 +412,6 @@
"https://github.com/docker/buildx-desktop/releases/download/v0.23.0-desktop.1/checksums.txt"
]
},
"edge": {
"id": 226626248,
"tag_name": "v0.25.0-desktop.1",
"html_url": "https://github.com/docker/buildx-desktop/releases/tag/v0.25.0-desktop.1",
"assets": [
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.darwin-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.darwin-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.freebsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.freebsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-arm-v6",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-arm-v7",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-ppc64le",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-riscv64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-s390x",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.netbsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.netbsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.netbsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.netbsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.netbsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.netbsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.openbsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.openbsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.windows-amd64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.windows-arm64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/buildx-v0.25.0-desktop.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.25.0-desktop.1/checksums.txt"
]
},
"v0.23.0-desktop.3": {
"id": 219348332,
"tag_name": "v0.23.0-desktop.3",

View File

@@ -1,61 +1,592 @@
{
"latest": {
"id": 234295988,
"tag_name": "v0.26.1",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.26.1",
"id": 251985372,
"tag_name": "v0.29.1",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.29.1",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.netbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.netbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.netbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.netbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.netbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.netbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/checksums.txt"
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.netbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.netbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.netbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.netbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.netbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.netbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/checksums.txt"
]
},
"v0.29.1": {
"id": 251985372,
"tag_name": "v0.29.1",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.29.1",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.netbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.netbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.netbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.netbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.netbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.netbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/checksums.txt"
]
},
"v0.29.0": {
"id": 251235026,
"tag_name": "v0.29.0",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.29.0",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.netbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.netbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.netbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.netbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.netbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.netbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/buildx-v0.29.0.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0/checksums.txt"
]
},
"edge": {
"id": 251985372,
"tag_name": "v0.29.1",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.29.1",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.netbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.netbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.netbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.netbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.netbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.netbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.1/checksums.txt"
]
},
"v0.29.0-rc1": {
"id": 249510086,
"tag_name": "v0.29.0-rc1",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.29.0-rc1",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.netbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.netbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.netbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.netbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.netbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.netbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/buildx-v0.29.0-rc1.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.29.0-rc1/checksums.txt"
]
},
"v0.28.0": {
"id": 244608065,
"tag_name": "v0.28.0",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.28.0",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.netbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.netbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.netbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.netbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.netbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.netbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/buildx-v0.28.0.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0/checksums.txt"
]
},
"v0.28.0-rc2": {
"id": 243606958,
"tag_name": "v0.28.0-rc2",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.28.0-rc2",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.netbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.netbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.netbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.netbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.netbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.netbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc2/checksums.txt"
]
},
"v0.28.0-rc1": {
"id": 243006616,
"tag_name": "v0.28.0-rc1",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.28.0-rc1",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.netbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.netbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.netbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.netbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.netbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.netbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/buildx-v0.28.0-rc1.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.28.0-rc1/checksums.txt"
]
},
"v0.27.0": {
"id": 241140766,
"tag_name": "v0.27.0",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.27.0",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.netbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.netbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.netbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.netbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.netbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.netbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/buildx-v0.27.0.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0/checksums.txt"
]
},
"v0.27.0-rc1": {
"id": 239792291,
"tag_name": "v0.27.0-rc1",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.27.0-rc1",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.netbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.netbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.netbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.netbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.netbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.netbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/buildx-v0.27.0-rc1.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.27.0-rc1/checksums.txt"
]
},
"v0.26.1": {
@@ -176,65 +707,6 @@
"https://github.com/docker/buildx/releases/download/v0.26.0/checksums.txt"
]
},
"edge": {
"id": 234295988,
"tag_name": "v0.26.1",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.26.1",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.netbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.netbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.netbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.netbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.netbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.netbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/buildx-v0.26.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.26.1/checksums.txt"
]
},
"v0.26.0-rc1": {
"id": 232616921,
"tag_name": "v0.26.0-rc1",

View File

@@ -1,54 +1,418 @@
{
"latest": {
"id": 234953428,
"tag_name": "v2.39.1",
"html_url": "https://github.com/docker/compose/releases/tag/v2.39.1",
"id": 258406598,
"tag_name": "v2.40.3",
"html_url": "https://github.com/docker/compose/releases/tag/v2.40.3",
"assets": [
"https://github.com/docker/compose/releases/download/v2.39.1/checksums.txt",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-darwin-aarch64",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-darwin-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-darwin-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-darwin-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-darwin-x86_64",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-darwin-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-darwin-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-darwin-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-aarch64",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-armv6",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-armv6.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-armv6.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-armv6.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-armv7",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-armv7.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-armv7.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-armv7.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-ppc64le",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-ppc64le.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-ppc64le.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-ppc64le.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-riscv64",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-riscv64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-riscv64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-riscv64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-s390x",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-s390x.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-s390x.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-s390x.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-x86_64",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-windows-aarch64.exe",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-windows-aarch64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-windows-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-windows-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-windows-x86_64.exe",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-windows-x86_64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-windows-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-windows-x86_64.sbom.json"
"https://github.com/docker/compose/releases/download/v2.40.3/checksums.txt",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-aarch64",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-x86_64",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-aarch64",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv6",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv6.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv6.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv6.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv7",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv7.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv7.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv7.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-ppc64le",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-ppc64le.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-ppc64le.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-ppc64le.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-riscv64",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-riscv64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-riscv64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-riscv64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-s390x",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-s390x.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-s390x.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-s390x.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-x86_64",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-aarch64.exe",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-aarch64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-x86_64.exe",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-x86_64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-x86_64.sbom.json"
]
},
"v2.40.3": {
"id": 258406598,
"tag_name": "v2.40.3",
"html_url": "https://github.com/docker/compose/releases/tag/v2.40.3",
"assets": [
"https://github.com/docker/compose/releases/download/v2.40.3/checksums.txt",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-aarch64",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-x86_64",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-aarch64",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv6",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv6.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv6.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv6.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv7",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv7.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv7.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv7.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-ppc64le",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-ppc64le.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-ppc64le.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-ppc64le.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-riscv64",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-riscv64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-riscv64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-riscv64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-s390x",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-s390x.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-s390x.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-s390x.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-x86_64",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-aarch64.exe",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-aarch64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-x86_64.exe",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-x86_64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-x86_64.sbom.json"
]
},
"v2.40.2": {
"id": 256436939,
"tag_name": "v2.40.2",
"html_url": "https://github.com/docker/compose/releases/tag/v2.40.2",
"assets": [
"https://github.com/docker/compose/releases/download/v2.40.2/checksums.txt",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-darwin-aarch64",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-darwin-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-darwin-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-darwin-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-darwin-x86_64",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-darwin-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-darwin-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-darwin-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-aarch64",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-armv6",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-armv6.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-armv6.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-armv6.sha256",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-armv7",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-armv7.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-armv7.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-armv7.sha256",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-ppc64le",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-ppc64le.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-ppc64le.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-ppc64le.sha256",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-riscv64",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-riscv64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-riscv64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-riscv64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-s390x",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-s390x.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-s390x.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-s390x.sha256",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-x86_64",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-linux-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-windows-aarch64.exe",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-windows-aarch64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-windows-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-windows-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-windows-x86_64.exe",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-windows-x86_64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-windows-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.2/docker-compose-windows-x86_64.sbom.json"
]
},
"v2.40.1": {
"id": 255315577,
"tag_name": "v2.40.1",
"html_url": "https://github.com/docker/compose/releases/tag/v2.40.1",
"assets": [
"https://github.com/docker/compose/releases/download/v2.40.1/checksums.txt",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-darwin-aarch64",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-darwin-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-darwin-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-darwin-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-darwin-x86_64",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-darwin-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-darwin-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-darwin-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-aarch64",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-armv6",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-armv6.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-armv6.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-armv6.sha256",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-armv7",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-armv7.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-armv7.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-armv7.sha256",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-ppc64le",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-ppc64le.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-ppc64le.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-ppc64le.sha256",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-riscv64",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-riscv64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-riscv64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-riscv64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-s390x",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-s390x.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-s390x.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-s390x.sha256",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-x86_64",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-windows-aarch64.exe",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-windows-aarch64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-windows-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-windows-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-windows-x86_64.exe",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-windows-x86_64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-windows-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-windows-x86_64.sbom.json"
]
},
"v2.40.0": {
"id": 251953773,
"tag_name": "v2.40.0",
"html_url": "https://github.com/docker/compose/releases/tag/v2.40.0",
"assets": [
"https://github.com/docker/compose/releases/download/v2.40.0/checksums.txt",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-darwin-aarch64",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-darwin-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-darwin-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-darwin-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-darwin-x86_64",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-darwin-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-darwin-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-darwin-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-aarch64",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-armv6",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-armv6.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-armv6.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-armv6.sha256",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-armv7",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-armv7.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-armv7.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-armv7.sha256",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-ppc64le",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-ppc64le.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-ppc64le.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-ppc64le.sha256",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-riscv64",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-riscv64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-riscv64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-riscv64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-s390x",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-s390x.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-s390x.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-s390x.sha256",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-x86_64",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-windows-aarch64.exe",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-windows-aarch64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-windows-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-windows-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-windows-x86_64.exe",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-windows-x86_64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-windows-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-windows-x86_64.sbom.json"
]
},
"v2.39.4": {
"id": 248531866,
"tag_name": "v2.39.4",
"html_url": "https://github.com/docker/compose/releases/tag/v2.39.4",
"assets": [
"https://github.com/docker/compose/releases/download/v2.39.4/checksums.txt",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-darwin-aarch64",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-darwin-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-darwin-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-darwin-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-darwin-x86_64",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-darwin-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-darwin-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-darwin-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-aarch64",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-armv6",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-armv6.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-armv6.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-armv6.sha256",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-armv7",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-armv7.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-armv7.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-armv7.sha256",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-ppc64le",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-ppc64le.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-ppc64le.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-ppc64le.sha256",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-riscv64",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-riscv64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-riscv64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-riscv64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-s390x",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-s390x.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-s390x.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-s390x.sha256",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-x86_64",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-windows-aarch64.exe",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-windows-aarch64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-windows-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-windows-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-windows-x86_64.exe",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-windows-x86_64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-windows-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-windows-x86_64.sbom.json"
]
},
"v2.39.3": {
"id": 245743457,
"tag_name": "v2.39.3",
"html_url": "https://github.com/docker/compose/releases/tag/v2.39.3",
"assets": [
"https://github.com/docker/compose/releases/download/v2.39.3/checksums.txt",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-darwin-aarch64",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-darwin-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-darwin-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-darwin-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-darwin-x86_64",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-darwin-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-darwin-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-darwin-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-aarch64",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-armv6",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-armv6.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-armv6.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-armv6.sha256",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-armv7",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-armv7.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-armv7.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-armv7.sha256",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-ppc64le",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-ppc64le.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-ppc64le.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-ppc64le.sha256",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-riscv64",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-riscv64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-riscv64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-riscv64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-s390x",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-s390x.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-s390x.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-s390x.sha256",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-x86_64",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-linux-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-windows-aarch64.exe",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-windows-aarch64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-windows-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-windows-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-windows-x86_64.exe",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-windows-x86_64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-windows-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.3/docker-compose-windows-x86_64.sbom.json"
]
},
"v2.39.2": {
"id": 238647190,
"tag_name": "v2.39.2",
"html_url": "https://github.com/docker/compose/releases/tag/v2.39.2",
"assets": [
"https://github.com/docker/compose/releases/download/v2.39.2/checksums.txt",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-darwin-aarch64",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-darwin-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-darwin-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-darwin-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-darwin-x86_64",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-darwin-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-darwin-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-darwin-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-aarch64",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-armv6",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-armv6.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-armv6.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-armv6.sha256",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-armv7",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-armv7.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-armv7.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-armv7.sha256",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-ppc64le",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-ppc64le.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-ppc64le.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-ppc64le.sha256",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-riscv64",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-riscv64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-riscv64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-riscv64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-s390x",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-s390x.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-s390x.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-s390x.sha256",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-x86_64",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-windows-aarch64.exe",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-windows-aarch64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-windows-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-windows-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-windows-x86_64.exe",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-windows-x86_64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-windows-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-windows-x86_64.sbom.json"
]
},
"v2.39.1": {
@@ -2033,55 +2397,55 @@
]
},
"edge": {
"id": 234953428,
"tag_name": "v2.39.1",
"html_url": "https://github.com/docker/compose/releases/tag/v2.39.1",
"id": 258406598,
"tag_name": "v2.40.3",
"html_url": "https://github.com/docker/compose/releases/tag/v2.40.3",
"assets": [
"https://github.com/docker/compose/releases/download/v2.39.1/checksums.txt",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-darwin-aarch64",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-darwin-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-darwin-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-darwin-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-darwin-x86_64",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-darwin-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-darwin-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-darwin-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-aarch64",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-armv6",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-armv6.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-armv6.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-armv6.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-armv7",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-armv7.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-armv7.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-armv7.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-ppc64le",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-ppc64le.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-ppc64le.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-ppc64le.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-riscv64",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-riscv64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-riscv64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-riscv64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-s390x",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-s390x.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-s390x.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-s390x.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-x86_64",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-windows-aarch64.exe",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-windows-aarch64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-windows-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-windows-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-windows-x86_64.exe",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-windows-x86_64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-windows-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-windows-x86_64.sbom.json"
"https://github.com/docker/compose/releases/download/v2.40.3/checksums.txt",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-aarch64",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-x86_64",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-darwin-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-aarch64",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-aarch64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv6",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv6.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv6.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv6.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv7",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv7.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv7.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-armv7.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-ppc64le",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-ppc64le.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-ppc64le.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-ppc64le.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-riscv64",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-riscv64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-riscv64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-riscv64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-s390x",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-s390x.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-s390x.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-s390x.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-x86_64",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-x86_64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-x86_64.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-aarch64.exe",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-aarch64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-aarch64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-aarch64.sbom.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-x86_64.exe",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-x86_64.exe.sha256",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-x86_64.provenance.json",
"https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-windows-x86_64.sbom.json"
]
},
"v2.24.0-birthday.10": {

6526
.github/cosign-releases.json vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,68 @@
{
"latest": {
"id": 235196329,
"tag_name": "v28.3.3",
"html_url": "https://github.com/moby/moby/releases/tag/v28.3.3",
"id": 252833798,
"tag_name": "v28.5.1",
"html_url": "https://github.com/moby/moby/releases/tag/v28.5.1",
"assets": []
},
"edge": {
"id": 258289954,
"tag_name": "docker-v29.0.0-rc.2",
"html_url": "https://github.com/moby/moby/releases/tag/docker-v29.0.0-rc.2",
"assets": []
},
"v29.0.0-rc.2": {
"id": 258289954,
"tag_name": "docker-v29.0.0-rc.2",
"html_url": "https://github.com/moby/moby/releases/tag/docker-v29.0.0-rc.2",
"assets": []
},
"v29.0.0-rc.1": {
"id": 252020476,
"tag_name": "docker-v29.0.0-rc.1",
"html_url": "https://github.com/moby/moby/releases/tag/docker-v29.0.0-rc.1",
"assets": []
},
"v28.5.1": {
"id": 252833798,
"tag_name": "v28.5.1",
"html_url": "https://github.com/moby/moby/releases/tag/v28.5.1",
"assets": []
},
"v28.5.0": {
"id": 251798390,
"tag_name": "v28.5.0",
"html_url": "https://github.com/moby/moby/releases/tag/v28.5.0",
"assets": []
},
"v28.5.0-rc.1": {
"id": 249763924,
"tag_name": "v28.5.0-rc.1",
"html_url": "https://github.com/moby/moby/releases/tag/v28.5.0-rc.1",
"assets": []
},
"v28.4.0": {
"id": 244504005,
"tag_name": "v28.4.0",
"html_url": "https://github.com/moby/moby/releases/tag/v28.4.0",
"assets": []
},
"v28.4.0-rc.2": {
"id": 244065281,
"tag_name": "v28.4.0-rc.2",
"html_url": "https://github.com/moby/moby/releases/tag/v28.4.0-rc.2",
"assets": []
},
"v28.4.0-rc.1": {
"id": 243821467,
"tag_name": "v28.4.0-rc.1",
"html_url": "https://github.com/moby/moby/releases/tag/v28.4.0-rc.1",
"assets": []
},
"v25.0.13": {
"id": 244806783,
"tag_name": "v25.0.13",
"html_url": "https://github.com/moby/moby/releases/tag/v25.0.13",
"assets": []
},
"v28.3.3": {
@@ -35,12 +95,6 @@
"html_url": "https://github.com/moby/moby/releases/tag/v28.3.0",
"assets": []
},
"edge": {
"id": 235196329,
"tag_name": "v28.3.3",
"html_url": "https://github.com/moby/moby/releases/tag/v28.3.3",
"assets": []
},
"v28.3.0-rc.2": {
"id": 226745561,
"tag_name": "v28.3.0-rc.2",

View File

@@ -1,31 +1,89 @@
{
"latest": {
"id": 228803167,
"tag_name": "v0.9.0",
"html_url": "https://github.com/regclient/regclient/releases/tag/v0.9.0",
"id": 243486094,
"tag_name": "v0.9.2",
"html_url": "https://github.com/regclient/regclient/releases/tag/v0.9.2",
"assets": [
"https://github.com/regclient/regclient/releases/download/v0.9.0/metadata.tgz",
"https://github.com/regclient/regclient/releases/download/v0.9.0/regbot-darwin-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.0/regbot-darwin-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.0/regbot-linux-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.0/regbot-linux-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.0/regbot-linux-ppc64le",
"https://github.com/regclient/regclient/releases/download/v0.9.0/regbot-linux-s390x",
"https://github.com/regclient/regclient/releases/download/v0.9.0/regbot-windows-amd64.exe",
"https://github.com/regclient/regclient/releases/download/v0.9.0/regctl-darwin-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.0/regctl-darwin-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.0/regctl-linux-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.0/regctl-linux-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.0/regctl-linux-ppc64le",
"https://github.com/regclient/regclient/releases/download/v0.9.0/regctl-linux-s390x",
"https://github.com/regclient/regclient/releases/download/v0.9.0/regctl-windows-amd64.exe",
"https://github.com/regclient/regclient/releases/download/v0.9.0/regsync-darwin-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.0/regsync-darwin-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.0/regsync-linux-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.0/regsync-linux-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.0/regsync-linux-ppc64le",
"https://github.com/regclient/regclient/releases/download/v0.9.0/regsync-linux-s390x",
"https://github.com/regclient/regclient/releases/download/v0.9.0/regsync-windows-amd64.exe"
"https://github.com/regclient/regclient/releases/download/v0.9.2/metadata.tgz",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regbot-darwin-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regbot-darwin-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regbot-linux-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regbot-linux-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regbot-linux-ppc64le",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regbot-linux-s390x",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regbot-windows-amd64.exe",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regctl-darwin-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regctl-darwin-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regctl-linux-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regctl-linux-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regctl-linux-ppc64le",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regctl-linux-s390x",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regctl-windows-amd64.exe",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regsync-darwin-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regsync-darwin-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regsync-linux-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regsync-linux-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regsync-linux-ppc64le",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regsync-linux-s390x",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regsync-windows-amd64.exe"
]
},
"v0.9.2": {
"id": 243486094,
"tag_name": "v0.9.2",
"html_url": "https://github.com/regclient/regclient/releases/tag/v0.9.2",
"assets": [
"https://github.com/regclient/regclient/releases/download/v0.9.2/metadata.tgz",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regbot-darwin-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regbot-darwin-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regbot-linux-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regbot-linux-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regbot-linux-ppc64le",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regbot-linux-s390x",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regbot-windows-amd64.exe",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regctl-darwin-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regctl-darwin-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regctl-linux-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regctl-linux-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regctl-linux-ppc64le",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regctl-linux-s390x",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regctl-windows-amd64.exe",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regsync-darwin-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regsync-darwin-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regsync-linux-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regsync-linux-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regsync-linux-ppc64le",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regsync-linux-s390x",
"https://github.com/regclient/regclient/releases/download/v0.9.2/regsync-windows-amd64.exe"
]
},
"v0.9.1": {
"id": 242120089,
"tag_name": "v0.9.1",
"html_url": "https://github.com/regclient/regclient/releases/tag/v0.9.1",
"assets": [
"https://github.com/regclient/regclient/releases/download/v0.9.1/metadata.tgz",
"https://github.com/regclient/regclient/releases/download/v0.9.1/regbot-darwin-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.1/regbot-darwin-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.1/regbot-linux-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.1/regbot-linux-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.1/regbot-linux-ppc64le",
"https://github.com/regclient/regclient/releases/download/v0.9.1/regbot-linux-s390x",
"https://github.com/regclient/regclient/releases/download/v0.9.1/regbot-windows-amd64.exe",
"https://github.com/regclient/regclient/releases/download/v0.9.1/regctl-darwin-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.1/regctl-darwin-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.1/regctl-linux-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.1/regctl-linux-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.1/regctl-linux-ppc64le",
"https://github.com/regclient/regclient/releases/download/v0.9.1/regctl-linux-s390x",
"https://github.com/regclient/regclient/releases/download/v0.9.1/regctl-windows-amd64.exe",
"https://github.com/regclient/regclient/releases/download/v0.9.1/regsync-darwin-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.1/regsync-darwin-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.1/regsync-linux-amd64",
"https://github.com/regclient/regclient/releases/download/v0.9.1/regsync-linux-arm64",
"https://github.com/regclient/regclient/releases/download/v0.9.1/regsync-linux-ppc64le",
"https://github.com/regclient/regclient/releases/download/v0.9.1/regsync-linux-s390x",
"https://github.com/regclient/regclient/releases/download/v0.9.1/regsync-windows-amd64.exe"
]
},
"v0.9.0": {

View File

@@ -19,6 +19,7 @@ jobs:
fail-fast: false
matrix:
node_version:
- 24
- 20
- 18
steps:

View File

@@ -17,7 +17,7 @@ on:
jobs:
generate:
uses: crazy-max/.github/.github/workflows/releases-json.yml@7f83a5a887650a38e4d0e05d5262309cfaa31459
uses: crazy-max/.github/.github/workflows/releases-json.yml@34fd436075cac6431d2036d5f6f1c3f3d4687ac5
with:
repository: docker/buildx-desktop
artifact_name: buildx-lab-releases-json
@@ -32,10 +32,10 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
-
name: Download
uses: actions/download-artifact@v4
uses: actions/download-artifact@v6
with:
name: buildx-lab-releases-json
path: .github
@@ -45,7 +45,7 @@ jobs:
git add -A .
-
name: Create PR
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
with:
base: main
branch: bot/buildx-lab-releases-json

View File

@@ -17,7 +17,7 @@ on:
jobs:
generate:
uses: crazy-max/.github/.github/workflows/releases-json.yml@7f83a5a887650a38e4d0e05d5262309cfaa31459
uses: crazy-max/.github/.github/workflows/releases-json.yml@34fd436075cac6431d2036d5f6f1c3f3d4687ac5
with:
repository: docker/buildx
artifact_name: buildx-releases-json
@@ -32,10 +32,10 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
-
name: Download
uses: actions/download-artifact@v4
uses: actions/download-artifact@v6
with:
name: buildx-releases-json
path: .github
@@ -45,7 +45,7 @@ jobs:
git add -A .
-
name: Create PR
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
with:
base: main
branch: bot/buildx-releases-json

View File

@@ -20,7 +20,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
-
name: Enable corepack
run: |
@@ -28,19 +28,19 @@ jobs:
yarn --version
-
name: Set up Node
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: ${{ env.NODE_VERSION }}
-
name: Initialize CodeQL
uses: github/codeql-action/init@v3
uses: github/codeql-action/init@v4
with:
languages: javascript-typescript
-
name: Autobuild
uses: github/codeql-action/autobuild@v3
uses: github/codeql-action/autobuild@v4
-
name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
uses: github/codeql-action/analyze@v4
with:
category: "/language:javascript-typescript"

View File

@@ -17,7 +17,7 @@ on:
jobs:
generate:
uses: crazy-max/.github/.github/workflows/releases-json.yml@7f83a5a887650a38e4d0e05d5262309cfaa31459
uses: crazy-max/.github/.github/workflows/releases-json.yml@34fd436075cac6431d2036d5f6f1c3f3d4687ac5
with:
repository: docker/compose-desktop
artifact_name: compose-lab-releases-json
@@ -32,10 +32,10 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
-
name: Download
uses: actions/download-artifact@v4
uses: actions/download-artifact@v6
with:
name: compose-lab-releases-json
path: .github
@@ -45,7 +45,7 @@ jobs:
git add -A .
-
name: Create PR
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
with:
base: main
branch: bot/compose-lab-releases-json

View File

@@ -17,7 +17,7 @@ on:
jobs:
generate:
uses: crazy-max/.github/.github/workflows/releases-json.yml@7f83a5a887650a38e4d0e05d5262309cfaa31459
uses: crazy-max/.github/.github/workflows/releases-json.yml@34fd436075cac6431d2036d5f6f1c3f3d4687ac5
with:
repository: docker/compose
artifact_name: compose-releases-json
@@ -32,10 +32,10 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
-
name: Download
uses: actions/download-artifact@v4
uses: actions/download-artifact@v6
with:
name: compose-releases-json
path: .github
@@ -45,7 +45,7 @@ jobs:
git add -A .
-
name: Create PR
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
with:
base: main
branch: bot/compose-releases-json

View File

@@ -0,0 +1,58 @@
name: cosign-releases-json
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
workflow_dispatch:
schedule:
- cron: '0 */12 * * *'
push:
branches:
- 'main'
pull_request:
paths:
- '.github/workflows/cosign-releases-json.yml'
jobs:
generate:
uses: crazy-max/.github/.github/workflows/releases-json.yml@34fd436075cac6431d2036d5f6f1c3f3d4687ac5
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'
needs:
- generate
steps:
-
name: Checkout
uses: actions/checkout@v5
-
name: Download
uses: actions/download-artifact@v6
with:
name: cosign-releases-json
path: .github
-
name: Commit changes
run: |
git add -A .
-
name: Create PR
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
with:
base: main
branch: bot/cosign-releases-json
commit-message: "github: update .github/cosign-releases.json"
signoff: true
delete-branch: true
title: "Update `.github/cosign-releases.json`"
body: |
Update `.github/cosign-releases.json` to keep in sync with [https://github.com/sigstore/cosign](https://github.com/sigstore/cosign).
draft: false

View File

@@ -17,11 +17,12 @@ on:
jobs:
generate:
uses: crazy-max/.github/.github/workflows/releases-json.yml@7f83a5a887650a38e4d0e05d5262309cfaa31459
uses: crazy-max/.github/.github/workflows/releases-json.yml@34fd436075cac6431d2036d5f6f1c3f3d4687ac5
with:
repository: moby/moby
artifact_name: docker-releases-json
filename: docker-releases.json
tag_pattern: '^docker-(.*)$'
secrets: inherit
open-pr:
@@ -32,10 +33,10 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
-
name: Download
uses: actions/download-artifact@v4
uses: actions/download-artifact@v6
with:
name: docker-releases-json
path: .github
@@ -45,7 +46,7 @@ jobs:
git add -A .
-
name: Create PR
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
with:
base: main
branch: bot/docker-releases-json

View File

@@ -17,7 +17,7 @@ on:
jobs:
generate:
uses: crazy-max/.github/.github/workflows/releases-json.yml@7f83a5a887650a38e4d0e05d5262309cfaa31459
uses: crazy-max/.github/.github/workflows/releases-json.yml@34fd436075cac6431d2036d5f6f1c3f3d4687ac5
with:
repository: regclient/regclient
artifact_name: regclient-releases-json
@@ -32,10 +32,10 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
-
name: Download
uses: actions/download-artifact@v4
uses: actions/download-artifact@v6
with:
name: regclient-releases-json
path: .github
@@ -45,7 +45,7 @@ jobs:
git add -A .
-
name: Create PR
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
with:
base: main
branch: bot/regclient-releases-json

View File

@@ -16,7 +16,7 @@ on:
env:
NODE_VERSION: "20"
BUILDX_VERSION: "edge"
BUILDKIT_IMAGE: "moby/buildkit:v0.23.2"
BUILDKIT_IMAGE: "moby/buildkit:v0.25.0"
jobs:
test:
@@ -28,12 +28,13 @@ jobs:
- ubuntu-latest
- ubuntu-24.04-arm
node_version:
- 24
- 20
- 18
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
-
name: Test
uses: docker/bake-action@v6
@@ -68,7 +69,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
-
name: Enable corepack
run: |
@@ -76,7 +77,7 @@ jobs:
yarn --version
-
name: Setup Node
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'yarn'
@@ -86,7 +87,7 @@ jobs:
-
name: Create includes
id: set
uses: actions/github-script@v7
uses: actions/github-script@v8
with:
script: |
let tests = [];
@@ -105,7 +106,7 @@ jobs:
});
await core.group(`Set includes`, async () => {
let includes = [];
for (const os of ['ubuntu-latest', 'ubuntu-24.04-arm', 'macos-13', 'windows-latest']) {
for (const os of ['ubuntu-latest', 'ubuntu-24.04-arm', 'macos-15-intel', 'windows-latest']) {
for (const test of tests) {
if (test === 'docker/install.test.itg.ts') {
if (os !== 'windows-latest') {
@@ -115,6 +116,7 @@ jobs:
}
includes.push({ os: os, test: test, test_name: 'root', docker_install_type: 'archive', docker_install_version: 'v26.1.4' });
includes.push({ os: os, test: test, test_name: 'root', docker_install_type: 'archive', docker_install_version: 'latest' });
includes.push({ os: os, test: test, test_name: 'root', docker_install_type: 'archive', docker_install_version: 'v29.0.0-rc.1', docker_install_channel: 'test' });
if (os === 'ubuntu-latest') {
includes.push({ os: os, test: test, test_name: 'rootless', docker_install_type: 'image', docker_install_version: 'latest' });
includes.push({ os: os, test: test, test_name: 'rootless', docker_install_type: 'archive', docker_install_version: 'latest' });
@@ -144,20 +146,24 @@ jobs:
fail-fast: false
matrix:
include: ${{ fromJson(needs.prepare-itg.outputs.includes) }}
permissions:
contents: read
id-token: write # needed for signing with GitHub OIDC Token
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
-
name: Expose GitHub Runtime
uses: crazy-max/ghaction-github-runtime@v3
-
# FIXME: Needs to setup node twice on Windows due to a bug with runner
# 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@v4
uses: actions/setup-node@v6
with:
node-version: ${{ env.NODE_VERSION }}
package-manager-cache: false
-
name: Enable corepack
run: |
@@ -165,7 +171,7 @@ jobs:
yarn --version
-
name: Setup Node
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'yarn'
@@ -190,7 +196,7 @@ jobs:
run: yarn install
-
name: Test
uses: actions/github-script@v7
uses: actions/github-script@v8
with:
script: |
const testName = `${{ matrix.test_name }}`;
@@ -206,6 +212,7 @@ jobs:
TEST_FOR_SUMMARY: ${{ secrets.TEST_FOR_SUMMARY }}
DOCKER_INSTALL_TYPE: ${{ matrix.docker_install_type }}
DOCKER_INSTALL_VERSION: ${{ matrix.docker_install_version }}
DOCKER_INSTALL_CHANNEL: ${{ matrix.docker_install_channel }}
-
name: Check coverage
run: |

View File

@@ -17,7 +17,7 @@ on:
jobs:
generate:
uses: crazy-max/.github/.github/workflows/releases-json.yml@7f83a5a887650a38e4d0e05d5262309cfaa31459
uses: crazy-max/.github/.github/workflows/releases-json.yml@34fd436075cac6431d2036d5f6f1c3f3d4687ac5
with:
repository: crazy-max/undock
artifact_name: undock-releases-json
@@ -32,10 +32,10 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
-
name: Download
uses: actions/download-artifact@v4
uses: actions/download-artifact@v6
with:
name: undock-releases-json
path: .github
@@ -45,7 +45,7 @@ jobs:
git add -A .
-
name: Create PR
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
with:
base: main
branch: bot/undock-releases-json

View File

@@ -21,7 +21,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
-
name: List targets
id: generate

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,96 @@
2025/10/31 13:57:03 --> GET https://index.docker.io/v2/
2025/10/31 13:57:03 GET /v2/ HTTP/1.1
Host: index.docker.io
User-Agent: cosign/v3.0.2 (linux; amd64) go-containerregistry/v0.20.6
Accept-Encoding: gzip
2025/10/31 13:57:03 <-- 401 https://index.docker.io/v2/ (191.948348ms)
2025/10/31 13:57:03 HTTP/2.0 401 Unauthorized
Content-Length: 87
Content-Type: application/json
Date: Fri, 31 Oct 2025 13:57:03 GMT
Docker-Distribution-Api-Version: registry/2.0
Strict-Transport-Security: max-age=31536000
Www-Authenticate: ***"https://auth.docker.io/token",service="registry.docker.io"
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":null}]}
2025/10/31 13:57:03 --> GET https://auth.docker.io/token?scope=repository%3Acrazymax%2Fgithub-builder-test%3Apull&service=registry.docker.io [body redacted: basic token response contains credentials]
2025/10/31 13:57:03 GET /token?scope=repository%3Acrazymax%2Fgithub-builder-test%3Apull&service=registry.docker.io HTTP/1.1
Host: auth.docker.io
User-Agent: cosign/v3.0.2 (linux; amd64) go-containerregistry/v0.20.6
Authorization: <redacted>
Accept-Encoding: gzip
2025/10/31 13:57:03 <-- 200 https://auth.docker.io/token?scope=repository%3Acrazymax%2Fgithub-builder-test%3Apull&service=registry.docker.io (180.01561ms) [body redacted: basic token response contains credentials]
2025/10/31 13:57:03 HTTP/2.0 200 OK
Connection: close
Content-Type: application/json
Date: Fri, 31 Oct 2025 13:57:03 GMT
Strict-Transport-Security: max-age=31536000
X-Trace-Id: 8d63fbce36baf5f2a0c5f2542efa7a7a
X-Trace-Sampled: false
2025/10/31 13:57:03 --> GET https://index.docker.io/v2/crazymax/github-builder-test/referrers/sha256:6cc021c733ae2760b2493f449d9885b1606002962b51a9c4f0d0d1568b6dc5c0
2025/10/31 13:57:03 GET /v2/crazymax/github-builder-test/referrers/sha256:6cc021c733ae2760b2493f449d9885b1606002962b51a9c4f0d0d1568b6dc5c0 HTTP/1.1
Host: index.docker.io
User-Agent: cosign/v3.0.2 (linux; amd64) go-containerregistry/v0.20.6
Accept: application/vnd.oci.image.index.v1+json
Authorization: <redacted>
Accept-Encoding: gzip
2025/10/31 13:57:03 <-- 200 https://index.docker.io/v2/crazymax/github-builder-test/referrers/sha256:6cc021c733ae2760b2493f449d9885b1606002962b51a9c4f0d0d1568b6dc5c0 (84.160823ms)
2025/10/31 13:57:03 HTTP/2.0 200 OK
Content-Length: 89
Content-Type: application/vnd.oci.image.index.v1+json
Date: Fri, 31 Oct 2025 13:57:03 GMT
Docker-Distribution-Api-Version: registry/2.0
Strict-Transport-Security: max-age=31536000
{"schemaVersion":2,"mediaType":"application/vnd.oci.image.index.v1+json","manifests":[]}
2025/10/31 13:57:03 --> GET https://index.docker.io/v2/crazymax/github-builder-test/referrers/sha256:6cc021c733ae2760b2493f449d9885b1606002962b51a9c4f0d0d1568b6dc5c0
2025/10/31 13:57:03 GET /v2/crazymax/github-builder-test/referrers/sha256:6cc021c733ae2760b2493f449d9885b1606002962b51a9c4f0d0d1568b6dc5c0 HTTP/1.1
Host: index.docker.io
User-Agent: cosign/v3.0.2 (linux; amd64) go-containerregistry/v0.20.6
Accept: application/vnd.oci.image.index.v1+json
Authorization: <redacted>
Accept-Encoding: gzip
2025/10/31 13:57:03 <-- 200 https://index.docker.io/v2/crazymax/github-builder-test/referrers/sha256:6cc021c733ae2760b2493f449d9885b1606002962b51a9c4f0d0d1568b6dc5c0 (95.303988ms)
2025/10/31 13:57:03 HTTP/2.0 200 OK
Content-Length: 89
Content-Type: application/vnd.oci.image.index.v1+json
Date: Fri, 31 Oct 2025 13:57:03 GMT
Docker-Distribution-Api-Version: registry/2.0
Strict-Transport-Security: max-age=31536000
{"schemaVersion":2,"mediaType":"application/vnd.oci.image.index.v1+json","manifests":[]}
2025/10/31 13:57:03 --> GET https://index.docker.io/v2/crazymax/github-builder-test/manifests/sha256-6cc021c733ae2760b2493f449d9885b1606002962b51a9c4f0d0d1568b6dc5c0.sig
2025/10/31 13:57:03 GET /v2/crazymax/github-builder-test/manifests/sha256-6cc021c733ae2760b2493f449d9885b1606002962b51a9c4f0d0d1568b6dc5c0.sig HTTP/1.1
Host: index.docker.io
User-Agent: cosign/v3.0.2 (linux; amd64) go-containerregistry/v0.20.6
Accept: application/vnd.docker.distribution.manifest.v1+json,application/vnd.docker.distribution.manifest.v1+prettyjws,application/vnd.docker.distribution.manifest.v2+json,application/vnd.oci.image.manifest.v1+json,application/vnd.docker.distribution.manifest.list.v2+json,application/vnd.oci.image.index.v1+json
Authorization: <redacted>
Accept-Encoding: gzip
2025/10/31 13:57:03 <-- 404 https://index.docker.io/v2/crazymax/github-builder-test/manifests/sha256-6cc021c733ae2760b2493f449d9885b1606002962b51a9c4f0d0d1568b6dc5c0.sig (66.155995ms)
2025/10/31 13:57:03 HTTP/2.0 404 Not Found
Content-Length: 169
Content-Type: application/json
Date: Fri, 31 Oct 2025 13:57:03 GMT
Docker-Distribution-Api-Version: registry/2.0
Docker-Ratelimit-Source: d2fd3209-1e2e-451f-b428-29c5bbf3b4b7
Strict-Transport-Security: max-age=31536000
{"errors":[{"code":"MANIFEST_UNKNOWN","message":"manifest unknown","detail":"unknown tag=sha256-6cc021c733ae2760b2493f449d9885b1606002962b51a9c4f0d0d1568b6dc5c0.sig"}]}
Error: no signatures found
error during command execution: no signatures found

View File

@@ -0,0 +1,5 @@
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:dccc69dd895968c4f21aa9e43e715f25f0cedfce4b17f1014c88c307928e22fc",
"size": 1599
}

View File

@@ -0,0 +1,141 @@
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.index.v1+json",
"digest": "sha256:79cc6476ab1a3371c9afd8b44e7c55610057c43e18d9b39b68e2b0c2475cc1b6",
"size": 4654,
"manifests": [
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:dccc69dd895968c4f21aa9e43e715f25f0cedfce4b17f1014c88c307928e22fc",
"size": 1599,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:1b6bce668653f08e2d0f9f7c9b646675b2cbce94ce8abdf4eb0eabaef4353045",
"size": 1599,
"platform": {
"architecture": "arm",
"os": "linux",
"variant": "v7"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:8f251fda6057e9dffc54f7874b249920f15f1813e9b1406a0cebeca5e4ab1ad9",
"size": 1599,
"platform": {
"architecture": "arm64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:d306cbc2d506547f136c8e0ea040b929743f298fb2813d9030efdb9d9eee4d51",
"size": 1599,
"platform": {
"architecture": "s390x",
"os": "linux"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:9d195ff2dc9ef347bb52ebb1c2a6e6587d4bd87019d2ea11df3e7046a3d19708",
"size": 1599,
"platform": {
"architecture": "ppc64le",
"os": "linux"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:72410c2c4529fca9339ebbcc8db2a1d5cb4d72d72c669f50b6d45d8a0f79fc22",
"size": 1599,
"platform": {
"architecture": "riscv64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:2ba4ad6eae1efcafee73a971953093c7c32b6938f2f9fd4998c8bf4d0fbe76f2",
"size": 1113,
"annotations": {
"vnd.docker.reference.digest": "sha256:dccc69dd895968c4f21aa9e43e715f25f0cedfce4b17f1014c88c307928e22fc",
"vnd.docker.reference.type": "attestation-manifest"
},
"platform": {
"architecture": "unknown",
"os": "unknown"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:0709528fae1747ce17638ad2978ee7936b38a294136eaadaf692e415f64b1e03",
"size": 1113,
"annotations": {
"vnd.docker.reference.digest": "sha256:1b6bce668653f08e2d0f9f7c9b646675b2cbce94ce8abdf4eb0eabaef4353045",
"vnd.docker.reference.type": "attestation-manifest"
},
"platform": {
"architecture": "unknown",
"os": "unknown"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:241b7159129d53923c89708bcc052b3398086a826519896be2f025545916e43e",
"size": 1113,
"annotations": {
"vnd.docker.reference.digest": "sha256:8f251fda6057e9dffc54f7874b249920f15f1813e9b1406a0cebeca5e4ab1ad9",
"vnd.docker.reference.type": "attestation-manifest"
},
"platform": {
"architecture": "unknown",
"os": "unknown"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:97f4a222a7992dba6dc1a43991d0cca1fcffdc25593033c6a3a7ff14c8651cbf",
"size": 1113,
"annotations": {
"vnd.docker.reference.digest": "sha256:d306cbc2d506547f136c8e0ea040b929743f298fb2813d9030efdb9d9eee4d51",
"vnd.docker.reference.type": "attestation-manifest"
},
"platform": {
"architecture": "unknown",
"os": "unknown"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:aa933713d8094b2708120e889acb6f7153dee4e0f3298ccd3e37a584cd0c260d",
"size": 1113,
"annotations": {
"vnd.docker.reference.digest": "sha256:9d195ff2dc9ef347bb52ebb1c2a6e6587d4bd87019d2ea11df3e7046a3d19708",
"vnd.docker.reference.type": "attestation-manifest"
},
"platform": {
"architecture": "unknown",
"os": "unknown"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:d95ca72d4f2a6bc416d4b2f3003b2af9d5f4dea99acec6ad3ab0c2082000a98c",
"size": 1113,
"annotations": {
"vnd.docker.reference.digest": "sha256:72410c2c4529fca9339ebbcc8db2a1d5cb4d72d72c669f50b6d45d8a0f79fc22",
"vnd.docker.reference.type": "attestation-manifest"
},
"platform": {
"architecture": "unknown",
"os": "unknown"
}
}
]
}

View File

@@ -0,0 +1,80 @@
[
{
"mediaType":"application/vnd.oci.image.manifest.v1+json",
"digest":"sha256:2ba4ad6eae1efcafee73a971953093c7c32b6938f2f9fd4998c8bf4d0fbe76f2",
"size":1113,
"annotations":{
"vnd.docker.reference.digest":"sha256:dccc69dd895968c4f21aa9e43e715f25f0cedfce4b17f1014c88c307928e22fc",
"vnd.docker.reference.type":"attestation-manifest"
},
"platform":{
"architecture":"unknown",
"os":"unknown"
}
},
{
"mediaType":"application/vnd.oci.image.manifest.v1+json",
"digest":"sha256:0709528fae1747ce17638ad2978ee7936b38a294136eaadaf692e415f64b1e03",
"size":1113,
"annotations":{
"vnd.docker.reference.digest":"sha256:1b6bce668653f08e2d0f9f7c9b646675b2cbce94ce8abdf4eb0eabaef4353045",
"vnd.docker.reference.type":"attestation-manifest"
},
"platform":{
"architecture":"unknown",
"os":"unknown"
}
},
{
"mediaType":"application/vnd.oci.image.manifest.v1+json",
"digest":"sha256:241b7159129d53923c89708bcc052b3398086a826519896be2f025545916e43e",
"size":1113,
"annotations":{
"vnd.docker.reference.digest":"sha256:8f251fda6057e9dffc54f7874b249920f15f1813e9b1406a0cebeca5e4ab1ad9",
"vnd.docker.reference.type":"attestation-manifest"
},
"platform":{
"architecture":"unknown",
"os":"unknown"
}
},
{
"mediaType":"application/vnd.oci.image.manifest.v1+json",
"digest":"sha256:97f4a222a7992dba6dc1a43991d0cca1fcffdc25593033c6a3a7ff14c8651cbf",
"size":1113,
"annotations":{
"vnd.docker.reference.digest":"sha256:d306cbc2d506547f136c8e0ea040b929743f298fb2813d9030efdb9d9eee4d51",
"vnd.docker.reference.type":"attestation-manifest"
},
"platform":{
"architecture":"unknown",
"os":"unknown"
}
},
{
"mediaType":"application/vnd.oci.image.manifest.v1+json",
"digest":"sha256:aa933713d8094b2708120e889acb6f7153dee4e0f3298ccd3e37a584cd0c260d",
"size":1113,
"annotations":{
"vnd.docker.reference.digest":"sha256:9d195ff2dc9ef347bb52ebb1c2a6e6587d4bd87019d2ea11df3e7046a3d19708",
"vnd.docker.reference.type":"attestation-manifest"
},
"platform":{
"architecture":"unknown",
"os":"unknown"
}
},
{
"mediaType":"application/vnd.oci.image.manifest.v1+json",
"digest":"sha256:d95ca72d4f2a6bc416d4b2f3003b2af9d5f4dea99acec6ad3ab0c2082000a98c",
"size":1113,
"annotations":{
"vnd.docker.reference.digest":"sha256:72410c2c4529fca9339ebbcc8db2a1d5cb4d72d72c669f50b6d45d8a0f79fc22",
"vnd.docker.reference.type":"attestation-manifest"
},
"platform":{
"architecture":"unknown",
"os":"unknown"
}
}
]

View File

@@ -0,0 +1 @@
Hello, World! This is linux/amd64

View File

@@ -0,0 +1,462 @@
{
"_type": "https://in-toto.io/Statement/v0.1",
"predicateType": "https://slsa.dev/provenance/v1",
"subject": [
{
"name": "hello.txt",
"digest": {
"sha256": "1b37929e66644beb58b3d28d44fba0d82aa90cab03c55a492adb81fe6e833ec8"
}
}
],
"predicate": {
"buildDefinition": {
"buildType": "https://github.com/moby/buildkit/blob/master/docs/attestations/slsa-definitions.md",
"resolvedDependencies": [
{
"uri": "pkg:docker/docker/buildkit-syft-scanner@stable-1",
"digest": {
"sha256": "e930c2697be77cb7271d316ecfa78768b5eac73de3b16018ed38eb0ea0b5a7cb"
}
},
{
"uri": "pkg:docker/alpine@latest?platform=linux%2Famd64",
"digest": {
"sha256": "4b7ce07002c69e8f3d704a9c5d6fd3053be500b7f1c69fc0d80990c2ad8dd412"
}
},
{
"uri": "https://github.com/docker/github-builder-test.git#bdb96fcfe8cc9e3a54800bc2537a4d4a14f0c5fe",
"digest": {
"sha1": "bdb96fcfe8cc9e3a54800bc2537a4d4a14f0c5fe"
}
}
],
"externalParameters": {
"configSource": {
"uri": "https://github.com/docker/github-builder-test.git#bdb96fcfe8cc9e3a54800bc2537a4d4a14f0c5fe",
"digest": {
"sha1": "bdb96fcfe8cc9e3a54800bc2537a4d4a14f0c5fe"
},
"path": "hello.Dockerfile"
},
"request": {
"frontend": "dockerfile.v0",
"secrets": [
{
"id": "GIT_AUTH_HEADER",
"optional": true
},
{
"id": "GIT_AUTH_TOKEN",
"optional": true
}
]
}
},
"internalParameters": {
"buildConfig": {
"digestMapping": {
"sha256:23dcbc3cce701a8a9bbb1e33f2ea88304527a4a935c89c4564af698095463ac2": "step3",
"sha256:3192c1bd53f90cca959db778dcee30edc9a79f8cd3f9a2c54adc4606507fd3b6": "step0",
"sha256:7f1c9e959980ea3e2cf4af8ef97b6c3797a0926752b436bff11474e436defe7f": "step1",
"sha256:c8737331fb8e5f5bcb6b22320012d975057514982c788e63db13332a4219b984": "step2"
},
"llbDefinition": [
{
"id": "step0",
"op": {
"Op": {
"source": {
"identifier": "docker-image://docker.io/library/alpine:latest@sha256:4b7ce07002c69e8f3d704a9c5d6fd3053be500b7f1c69fc0d80990c2ad8dd412"
}
},
"constraints": {},
"platform": {
"Architecture": "amd64",
"OS": "linux"
}
}
},
{
"id": "step1",
"inputs": [
"step0:0"
],
"op": {
"Op": {
"exec": {
"meta": {
"args": [
"/bin/sh",
"-c",
"echo \"Hello, World! This is ${TARGETPLATFORM}\" \u003e /hello.txt"
],
"cwd": "/",
"env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"TARGETPLATFORM=linux/amd64"
],
"removeMountStubsRecursive": true
},
"mounts": [
{
"dest": "/"
}
]
}
},
"constraints": {},
"platform": {
"Architecture": "amd64",
"OS": "linux"
}
}
},
{
"id": "step2",
"inputs": [
"step1:0"
],
"op": {
"Op": {
"file": {
"actions": [
{
"Action": {
"copy": {
"allowEmptyWildcard": true,
"allowWildcard": true,
"createDestPath": true,
"dest": "/",
"dirCopyContents": true,
"followSymlink": true,
"mode": -1,
"src": "/hello.txt",
"timestamp": -1
}
},
"input": -1,
"output": 0,
"secondaryInput": 0
}
]
}
},
"constraints": {}
}
},
{
"id": "step3",
"inputs": [
"step2:0"
],
"op": {
"Op": {}
}
}
]
},
"builderPlatform": "linux/amd64",
"github_actor": "crazy-max",
"github_actor_id": "1951866",
"github_event_name": "workflow_dispatch",
"github_event_payload": {
"enterprise": {
"avatar_url": "https://avatars.githubusercontent.com/b/19176?v=4",
"created_at": "2022-12-30T23:53:17Z",
"description": null,
"html_url": "https://github.com/enterprises/docker",
"id": 19176,
"name": "Docker",
"node_id": "E_kgDNSug",
"slug": "docker",
"updated_at": "2025-10-20T20:39:05Z",
"website_url": null
},
"inputs": null,
"organization": {
"avatar_url": "https://avatars.githubusercontent.com/u/5429470?v=4",
"description": "Docker helps developers bring their ideas to life by conquering the complexity of app development.",
"events_url": "https://api.github.com/orgs/docker/events",
"hooks_url": "https://api.github.com/orgs/docker/hooks",
"id": 5429470,
"issues_url": "https://api.github.com/orgs/docker/issues",
"login": "docker",
"members_url": "https://api.github.com/orgs/docker/members{/member}",
"node_id": "MDEyOk9yZ2FuaXphdGlvbjU0Mjk0NzA=",
"public_members_url": "https://api.github.com/orgs/docker/public_members{/member}",
"repos_url": "https://api.github.com/orgs/docker/repos",
"url": "https://api.github.com/orgs/docker"
},
"ref": "refs/heads/main",
"repository": {
"allow_forking": true,
"archive_url": "https://api.github.com/repos/docker/github-builder-test/{archive_format}{/ref}",
"archived": false,
"assignees_url": "https://api.github.com/repos/docker/github-builder-test/assignees{/user}",
"blobs_url": "https://api.github.com/repos/docker/github-builder-test/git/blobs{/sha}",
"branches_url": "https://api.github.com/repos/docker/github-builder-test/branches{/branch}",
"clone_url": "https://github.com/docker/github-builder-test.git",
"collaborators_url": "https://api.github.com/repos/docker/github-builder-test/collaborators{/collaborator}",
"comments_url": "https://api.github.com/repos/docker/github-builder-test/comments{/number}",
"commits_url": "https://api.github.com/repos/docker/github-builder-test/commits{/sha}",
"compare_url": "https://api.github.com/repos/docker/github-builder-test/compare/{base}...{head}",
"contents_url": "https://api.github.com/repos/docker/github-builder-test/contents/{+path}",
"contributors_url": "https://api.github.com/repos/docker/github-builder-test/contributors",
"created_at": "2025-08-19T08:08:29Z",
"custom_properties": {},
"default_branch": "main",
"deployments_url": "https://api.github.com/repos/docker/github-builder-test/deployments",
"description": "Test repo for https://github.com/docker/github-builder-experimental",
"disabled": false,
"downloads_url": "https://api.github.com/repos/docker/github-builder-test/downloads",
"events_url": "https://api.github.com/repos/docker/github-builder-test/events",
"fork": false,
"forks": 0,
"forks_count": 0,
"forks_url": "https://api.github.com/repos/docker/github-builder-test/forks",
"full_name": "docker/github-builder-test",
"git_commits_url": "https://api.github.com/repos/docker/github-builder-test/git/commits{/sha}",
"git_refs_url": "https://api.github.com/repos/docker/github-builder-test/git/refs{/sha}",
"git_tags_url": "https://api.github.com/repos/docker/github-builder-test/git/tags{/sha}",
"git_url": "git://github.com/docker/github-builder-test.git",
"has_discussions": false,
"has_downloads": true,
"has_issues": false,
"has_pages": false,
"has_projects": false,
"has_wiki": false,
"homepage": null,
"hooks_url": "https://api.github.com/repos/docker/github-builder-test/hooks",
"html_url": "https://github.com/docker/github-builder-test",
"id": 1040594287,
"is_template": false,
"issue_comment_url": "https://api.github.com/repos/docker/github-builder-test/issues/comments{/number}",
"issue_events_url": "https://api.github.com/repos/docker/github-builder-test/issues/events{/number}",
"issues_url": "https://api.github.com/repos/docker/github-builder-test/issues{/number}",
"keys_url": "https://api.github.com/repos/docker/github-builder-test/keys{/key_id}",
"labels_url": "https://api.github.com/repos/docker/github-builder-test/labels{/name}",
"language": "Dockerfile",
"languages_url": "https://api.github.com/repos/docker/github-builder-test/languages",
"license": null,
"merges_url": "https://api.github.com/repos/docker/github-builder-test/merges",
"milestones_url": "https://api.github.com/repos/docker/github-builder-test/milestones{/number}",
"mirror_url": null,
"name": "github-builder-test",
"node_id": "R_kgDOPgY1bw",
"notifications_url": "https://api.github.com/repos/docker/github-builder-test/notifications{?since,all,participating}",
"open_issues": 0,
"open_issues_count": 0,
"owner": {
"avatar_url": "https://avatars.githubusercontent.com/u/5429470?v=4",
"events_url": "https://api.github.com/users/docker/events{/privacy}",
"followers_url": "https://api.github.com/users/docker/followers",
"following_url": "https://api.github.com/users/docker/following{/other_user}",
"gists_url": "https://api.github.com/users/docker/gists{/gist_id}",
"gravatar_id": "",
"html_url": "https://github.com/docker",
"id": 5429470,
"login": "docker",
"node_id": "MDEyOk9yZ2FuaXphdGlvbjU0Mjk0NzA=",
"organizations_url": "https://api.github.com/users/docker/orgs",
"received_events_url": "https://api.github.com/users/docker/received_events",
"repos_url": "https://api.github.com/users/docker/repos",
"site_admin": false,
"starred_url": "https://api.github.com/users/docker/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/docker/subscriptions",
"type": "Organization",
"url": "https://api.github.com/users/docker",
"user_view_type": "public"
},
"private": true,
"pulls_url": "https://api.github.com/repos/docker/github-builder-test/pulls{/number}",
"pushed_at": "2025-10-30T10:04:10Z",
"releases_url": "https://api.github.com/repos/docker/github-builder-test/releases{/id}",
"size": 25,
"ssh_url": "git@github.com:docker/github-builder-test.git",
"stargazers_count": 0,
"stargazers_url": "https://api.github.com/repos/docker/github-builder-test/stargazers",
"statuses_url": "https://api.github.com/repos/docker/github-builder-test/statuses/{sha}",
"subscribers_url": "https://api.github.com/repos/docker/github-builder-test/subscribers",
"subscription_url": "https://api.github.com/repos/docker/github-builder-test/subscription",
"svn_url": "https://github.com/docker/github-builder-test",
"tags_url": "https://api.github.com/repos/docker/github-builder-test/tags",
"teams_url": "https://api.github.com/repos/docker/github-builder-test/teams",
"topics": [],
"trees_url": "https://api.github.com/repos/docker/github-builder-test/git/trees{/sha}",
"updated_at": "2025-10-30T10:04:14Z",
"url": "https://api.github.com/repos/docker/github-builder-test",
"visibility": "internal",
"watchers": 0,
"watchers_count": 0,
"web_commit_signoff_required": false
},
"sender": {
"avatar_url": "https://avatars.githubusercontent.com/u/1951866?v=4",
"events_url": "https://api.github.com/users/crazy-max/events{/privacy}",
"followers_url": "https://api.github.com/users/crazy-max/followers",
"following_url": "https://api.github.com/users/crazy-max/following{/other_user}",
"gists_url": "https://api.github.com/users/crazy-max/gists{/gist_id}",
"gravatar_id": "",
"html_url": "https://github.com/crazy-max",
"id": 1951866,
"login": "crazy-max",
"node_id": "MDQ6VXNlcjE5NTE4NjY=",
"organizations_url": "https://api.github.com/users/crazy-max/orgs",
"received_events_url": "https://api.github.com/users/crazy-max/received_events",
"repos_url": "https://api.github.com/users/crazy-max/repos",
"site_admin": false,
"starred_url": "https://api.github.com/users/crazy-max/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/crazy-max/subscriptions",
"type": "User",
"url": "https://api.github.com/users/crazy-max",
"user_view_type": "public"
},
"workflow": ".github/workflows/ci.yml"
},
"github_job": "build",
"github_ref": "refs/heads/main",
"github_ref_name": "main",
"github_ref_protected": "false",
"github_ref_type": "branch",
"github_repository": "docker/github-builder-test",
"github_repository_id": "1040594287",
"github_repository_owner": "docker",
"github_repository_owner_id": "5429470",
"github_run_attempt": "1",
"github_run_id": "18937328894",
"github_run_number": "183",
"github_runner_arch": "X64",
"github_runner_environment": "github-hosted",
"github_runner_image_os": "ubuntu24",
"github_runner_image_version": "20250929.60.1",
"github_runner_name": "GitHub Actions 1002376925",
"github_runner_os": "Linux",
"github_runner_tracking_id": "github_7c0a7521-2999-41e5-af30-b7f0681f204f",
"github_server_url": "https://github.com",
"github_triggering_actor": "crazy-max",
"github_workflow": "ci",
"github_workflow_ref": "docker/github-builder-test/.github/workflows/ci.yml@refs/heads/main",
"github_workflow_sha": "bdb96fcfe8cc9e3a54800bc2537a4d4a14f0c5fe"
}
},
"runDetails": {
"builder": {
"id": "https://github.com/docker/github-builder-test/actions/runs/18937328894/attempts/1"
},
"metadata": {
"invocationID": "7qg2yuux3iklv02ktbmbtwgeb",
"startedOn": "2025-10-30T10:19:52.868710505Z",
"finishedOn": "2025-10-30T10:19:57.635810119Z",
"buildkit_metadata": {
"source": {
"locations": {
"step0": {
"locations": [
{
"ranges": [
{
"start": {
"line": 1
},
"end": {
"line": 1
}
}
]
}
]
},
"step1": {
"locations": [
{
"ranges": [
{
"start": {
"line": 3
},
"end": {
"line": 3
}
}
]
}
]
},
"step2": {
"locations": [
{
"ranges": [
{
"start": {
"line": 7
},
"end": {
"line": 7
}
}
]
}
]
}
},
"infos": [
{
"filename": "hello.Dockerfile",
"language": "Dockerfile",
"data": "RlJPTSBhbHBpbmUgQVMgYmFzZQpBUkcgVEFSR0VUUExBVEZPUk0KUlVOIGVjaG8gIkhlbGxvLCBXb3JsZCEgVGhpcyBpcyAke1RBUkdFVFBMQVRGT1JNfSIgPiAvaGVsbG8udHh0CkFSRyBCVUlMREtJVF9TQk9NX1NDQU5fU1RBR0U9dHJ1ZQoKRlJPTSBzY3JhdGNoCkNPUFkgLS1mcm9tPWJhc2UgL2hlbGxvLnR4dCAvCg==",
"llbDefinition": [
{
"id": "step0",
"op": {
"Op": {
"source": {
"identifier": "git://github.com/docker/github-builder-test.git#bdb96fcfe8cc9e3a54800bc2537a4d4a14f0c5fe",
"attrs": {
"git.authheadersecret": "GIT_AUTH_HEADER",
"git.authtokensecret": "GIT_AUTH_TOKEN",
"git.fullurl": "https://github.com/docker/github-builder-test.git"
}
}
},
"constraints": {}
}
},
{
"id": "step1",
"op": {
"Op": {}
},
"inputs": [
"step0:0"
]
}
],
"digestMapping": {
"sha256:47540f0959d81a7ff2fc9742b9ef0bb37d7eca99c13aa6df83b883d06e808ef2": "step0",
"sha256:96933c546ff00debd500304305864192fcb51d348e8c41b6a6e1569a051e66ed": "step1"
}
}
]
},
"layers": {
"step0:0": [
[
{
"mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
"digest": "sha256:2d35ebdb57d9971fea0cac1582aa78935adf8058b2cc32db163c98822e5dfa1b",
"size": 3802452
}
]
]
}
},
"buildkit_completeness": {
"request": true,
"resolvedDependencies": true
}
}
}
}
}

View File

@@ -0,0 +1 @@
Hello, World! This is linux/arm64

View File

@@ -0,0 +1,462 @@
{
"_type": "https://in-toto.io/Statement/v0.1",
"predicateType": "https://slsa.dev/provenance/v1",
"subject": [
{
"name": "hello.txt",
"digest": {
"sha256": "870e0065e68cbdeacbf9cec21b598bb579b0ef55bc48b65b71509667edb570bd"
}
}
],
"predicate": {
"buildDefinition": {
"buildType": "https://github.com/moby/buildkit/blob/master/docs/attestations/slsa-definitions.md",
"resolvedDependencies": [
{
"uri": "pkg:docker/docker/buildkit-syft-scanner@stable-1",
"digest": {
"sha256": "e930c2697be77cb7271d316ecfa78768b5eac73de3b16018ed38eb0ea0b5a7cb"
}
},
{
"uri": "pkg:docker/alpine@latest?platform=linux%2Farm64",
"digest": {
"sha256": "4b7ce07002c69e8f3d704a9c5d6fd3053be500b7f1c69fc0d80990c2ad8dd412"
}
},
{
"uri": "https://github.com/docker/github-builder-test.git#bdb96fcfe8cc9e3a54800bc2537a4d4a14f0c5fe",
"digest": {
"sha1": "bdb96fcfe8cc9e3a54800bc2537a4d4a14f0c5fe"
}
}
],
"externalParameters": {
"configSource": {
"uri": "https://github.com/docker/github-builder-test.git#bdb96fcfe8cc9e3a54800bc2537a4d4a14f0c5fe",
"digest": {
"sha1": "bdb96fcfe8cc9e3a54800bc2537a4d4a14f0c5fe"
},
"path": "hello.Dockerfile"
},
"request": {
"frontend": "dockerfile.v0",
"secrets": [
{
"id": "GIT_AUTH_HEADER",
"optional": true
},
{
"id": "GIT_AUTH_TOKEN",
"optional": true
}
]
}
},
"internalParameters": {
"buildConfig": {
"digestMapping": {
"sha256:69f88b22af1cbbe236f4b5d834dfe9c4adb9535c1c602f726fd90212c302a7da": "step0",
"sha256:98c0e3a8b1a38f5aa8db558b99aace8e7645a18b0e24d6807018146d21788ae2": "step2",
"sha256:a560219f1e0cfb232a9727b9bbf9d6735c0b2190f8e00364f844cfc82bd42479": "step1",
"sha256:c7edeef726371083a69f15a3565d6c62be55a91e820f251d9a965f8e36fe3e32": "step3"
},
"llbDefinition": [
{
"id": "step0",
"op": {
"Op": {
"source": {
"identifier": "docker-image://docker.io/library/alpine:latest@sha256:4b7ce07002c69e8f3d704a9c5d6fd3053be500b7f1c69fc0d80990c2ad8dd412"
}
},
"constraints": {},
"platform": {
"Architecture": "arm64",
"OS": "linux"
}
}
},
{
"id": "step1",
"inputs": [
"step0:0"
],
"op": {
"Op": {
"exec": {
"meta": {
"args": [
"/bin/sh",
"-c",
"echo \"Hello, World! This is ${TARGETPLATFORM}\" \u003e /hello.txt"
],
"cwd": "/",
"env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"TARGETPLATFORM=linux/arm64"
],
"removeMountStubsRecursive": true
},
"mounts": [
{
"dest": "/"
}
]
}
},
"constraints": {},
"platform": {
"Architecture": "arm64",
"OS": "linux"
}
}
},
{
"id": "step2",
"inputs": [
"step1:0"
],
"op": {
"Op": {
"file": {
"actions": [
{
"Action": {
"copy": {
"allowEmptyWildcard": true,
"allowWildcard": true,
"createDestPath": true,
"dest": "/",
"dirCopyContents": true,
"followSymlink": true,
"mode": -1,
"src": "/hello.txt",
"timestamp": -1
}
},
"input": -1,
"output": 0,
"secondaryInput": 0
}
]
}
},
"constraints": {}
}
},
{
"id": "step3",
"inputs": [
"step2:0"
],
"op": {
"Op": {}
}
}
]
},
"builderPlatform": "linux/amd64",
"github_actor": "crazy-max",
"github_actor_id": "1951866",
"github_event_name": "workflow_dispatch",
"github_event_payload": {
"enterprise": {
"avatar_url": "https://avatars.githubusercontent.com/b/19176?v=4",
"created_at": "2022-12-30T23:53:17Z",
"description": null,
"html_url": "https://github.com/enterprises/docker",
"id": 19176,
"name": "Docker",
"node_id": "E_kgDNSug",
"slug": "docker",
"updated_at": "2025-10-20T20:39:05Z",
"website_url": null
},
"inputs": null,
"organization": {
"avatar_url": "https://avatars.githubusercontent.com/u/5429470?v=4",
"description": "Docker helps developers bring their ideas to life by conquering the complexity of app development.",
"events_url": "https://api.github.com/orgs/docker/events",
"hooks_url": "https://api.github.com/orgs/docker/hooks",
"id": 5429470,
"issues_url": "https://api.github.com/orgs/docker/issues",
"login": "docker",
"members_url": "https://api.github.com/orgs/docker/members{/member}",
"node_id": "MDEyOk9yZ2FuaXphdGlvbjU0Mjk0NzA=",
"public_members_url": "https://api.github.com/orgs/docker/public_members{/member}",
"repos_url": "https://api.github.com/orgs/docker/repos",
"url": "https://api.github.com/orgs/docker"
},
"ref": "refs/heads/main",
"repository": {
"allow_forking": true,
"archive_url": "https://api.github.com/repos/docker/github-builder-test/{archive_format}{/ref}",
"archived": false,
"assignees_url": "https://api.github.com/repos/docker/github-builder-test/assignees{/user}",
"blobs_url": "https://api.github.com/repos/docker/github-builder-test/git/blobs{/sha}",
"branches_url": "https://api.github.com/repos/docker/github-builder-test/branches{/branch}",
"clone_url": "https://github.com/docker/github-builder-test.git",
"collaborators_url": "https://api.github.com/repos/docker/github-builder-test/collaborators{/collaborator}",
"comments_url": "https://api.github.com/repos/docker/github-builder-test/comments{/number}",
"commits_url": "https://api.github.com/repos/docker/github-builder-test/commits{/sha}",
"compare_url": "https://api.github.com/repos/docker/github-builder-test/compare/{base}...{head}",
"contents_url": "https://api.github.com/repos/docker/github-builder-test/contents/{+path}",
"contributors_url": "https://api.github.com/repos/docker/github-builder-test/contributors",
"created_at": "2025-08-19T08:08:29Z",
"custom_properties": {},
"default_branch": "main",
"deployments_url": "https://api.github.com/repos/docker/github-builder-test/deployments",
"description": "Test repo for https://github.com/docker/github-builder-experimental",
"disabled": false,
"downloads_url": "https://api.github.com/repos/docker/github-builder-test/downloads",
"events_url": "https://api.github.com/repos/docker/github-builder-test/events",
"fork": false,
"forks": 0,
"forks_count": 0,
"forks_url": "https://api.github.com/repos/docker/github-builder-test/forks",
"full_name": "docker/github-builder-test",
"git_commits_url": "https://api.github.com/repos/docker/github-builder-test/git/commits{/sha}",
"git_refs_url": "https://api.github.com/repos/docker/github-builder-test/git/refs{/sha}",
"git_tags_url": "https://api.github.com/repos/docker/github-builder-test/git/tags{/sha}",
"git_url": "git://github.com/docker/github-builder-test.git",
"has_discussions": false,
"has_downloads": true,
"has_issues": false,
"has_pages": false,
"has_projects": false,
"has_wiki": false,
"homepage": null,
"hooks_url": "https://api.github.com/repos/docker/github-builder-test/hooks",
"html_url": "https://github.com/docker/github-builder-test",
"id": 1040594287,
"is_template": false,
"issue_comment_url": "https://api.github.com/repos/docker/github-builder-test/issues/comments{/number}",
"issue_events_url": "https://api.github.com/repos/docker/github-builder-test/issues/events{/number}",
"issues_url": "https://api.github.com/repos/docker/github-builder-test/issues{/number}",
"keys_url": "https://api.github.com/repos/docker/github-builder-test/keys{/key_id}",
"labels_url": "https://api.github.com/repos/docker/github-builder-test/labels{/name}",
"language": "Dockerfile",
"languages_url": "https://api.github.com/repos/docker/github-builder-test/languages",
"license": null,
"merges_url": "https://api.github.com/repos/docker/github-builder-test/merges",
"milestones_url": "https://api.github.com/repos/docker/github-builder-test/milestones{/number}",
"mirror_url": null,
"name": "github-builder-test",
"node_id": "R_kgDOPgY1bw",
"notifications_url": "https://api.github.com/repos/docker/github-builder-test/notifications{?since,all,participating}",
"open_issues": 0,
"open_issues_count": 0,
"owner": {
"avatar_url": "https://avatars.githubusercontent.com/u/5429470?v=4",
"events_url": "https://api.github.com/users/docker/events{/privacy}",
"followers_url": "https://api.github.com/users/docker/followers",
"following_url": "https://api.github.com/users/docker/following{/other_user}",
"gists_url": "https://api.github.com/users/docker/gists{/gist_id}",
"gravatar_id": "",
"html_url": "https://github.com/docker",
"id": 5429470,
"login": "docker",
"node_id": "MDEyOk9yZ2FuaXphdGlvbjU0Mjk0NzA=",
"organizations_url": "https://api.github.com/users/docker/orgs",
"received_events_url": "https://api.github.com/users/docker/received_events",
"repos_url": "https://api.github.com/users/docker/repos",
"site_admin": false,
"starred_url": "https://api.github.com/users/docker/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/docker/subscriptions",
"type": "Organization",
"url": "https://api.github.com/users/docker",
"user_view_type": "public"
},
"private": true,
"pulls_url": "https://api.github.com/repos/docker/github-builder-test/pulls{/number}",
"pushed_at": "2025-10-30T10:04:10Z",
"releases_url": "https://api.github.com/repos/docker/github-builder-test/releases{/id}",
"size": 25,
"ssh_url": "git@github.com:docker/github-builder-test.git",
"stargazers_count": 0,
"stargazers_url": "https://api.github.com/repos/docker/github-builder-test/stargazers",
"statuses_url": "https://api.github.com/repos/docker/github-builder-test/statuses/{sha}",
"subscribers_url": "https://api.github.com/repos/docker/github-builder-test/subscribers",
"subscription_url": "https://api.github.com/repos/docker/github-builder-test/subscription",
"svn_url": "https://github.com/docker/github-builder-test",
"tags_url": "https://api.github.com/repos/docker/github-builder-test/tags",
"teams_url": "https://api.github.com/repos/docker/github-builder-test/teams",
"topics": [],
"trees_url": "https://api.github.com/repos/docker/github-builder-test/git/trees{/sha}",
"updated_at": "2025-10-30T10:04:14Z",
"url": "https://api.github.com/repos/docker/github-builder-test",
"visibility": "internal",
"watchers": 0,
"watchers_count": 0,
"web_commit_signoff_required": false
},
"sender": {
"avatar_url": "https://avatars.githubusercontent.com/u/1951866?v=4",
"events_url": "https://api.github.com/users/crazy-max/events{/privacy}",
"followers_url": "https://api.github.com/users/crazy-max/followers",
"following_url": "https://api.github.com/users/crazy-max/following{/other_user}",
"gists_url": "https://api.github.com/users/crazy-max/gists{/gist_id}",
"gravatar_id": "",
"html_url": "https://github.com/crazy-max",
"id": 1951866,
"login": "crazy-max",
"node_id": "MDQ6VXNlcjE5NTE4NjY=",
"organizations_url": "https://api.github.com/users/crazy-max/orgs",
"received_events_url": "https://api.github.com/users/crazy-max/received_events",
"repos_url": "https://api.github.com/users/crazy-max/repos",
"site_admin": false,
"starred_url": "https://api.github.com/users/crazy-max/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/crazy-max/subscriptions",
"type": "User",
"url": "https://api.github.com/users/crazy-max",
"user_view_type": "public"
},
"workflow": ".github/workflows/ci.yml"
},
"github_job": "build",
"github_ref": "refs/heads/main",
"github_ref_name": "main",
"github_ref_protected": "false",
"github_ref_type": "branch",
"github_repository": "docker/github-builder-test",
"github_repository_id": "1040594287",
"github_repository_owner": "docker",
"github_repository_owner_id": "5429470",
"github_run_attempt": "1",
"github_run_id": "18937328894",
"github_run_number": "183",
"github_runner_arch": "X64",
"github_runner_environment": "github-hosted",
"github_runner_image_os": "ubuntu24",
"github_runner_image_version": "20250929.60.1",
"github_runner_name": "GitHub Actions 1002376925",
"github_runner_os": "Linux",
"github_runner_tracking_id": "github_7c0a7521-2999-41e5-af30-b7f0681f204f",
"github_server_url": "https://github.com",
"github_triggering_actor": "crazy-max",
"github_workflow": "ci",
"github_workflow_ref": "docker/github-builder-test/.github/workflows/ci.yml@refs/heads/main",
"github_workflow_sha": "bdb96fcfe8cc9e3a54800bc2537a4d4a14f0c5fe"
}
},
"runDetails": {
"builder": {
"id": "https://github.com/docker/github-builder-test/actions/runs/18937328894/attempts/1"
},
"metadata": {
"invocationID": "7qg2yuux3iklv02ktbmbtwgeb",
"startedOn": "2025-10-30T10:19:52.868710505Z",
"finishedOn": "2025-10-30T10:19:57.635810119Z",
"buildkit_metadata": {
"source": {
"locations": {
"step0": {
"locations": [
{
"ranges": [
{
"start": {
"line": 1
},
"end": {
"line": 1
}
}
]
}
]
},
"step1": {
"locations": [
{
"ranges": [
{
"start": {
"line": 3
},
"end": {
"line": 3
}
}
]
}
]
},
"step2": {
"locations": [
{
"ranges": [
{
"start": {
"line": 7
},
"end": {
"line": 7
}
}
]
}
]
}
},
"infos": [
{
"filename": "hello.Dockerfile",
"language": "Dockerfile",
"data": "RlJPTSBhbHBpbmUgQVMgYmFzZQpBUkcgVEFSR0VUUExBVEZPUk0KUlVOIGVjaG8gIkhlbGxvLCBXb3JsZCEgVGhpcyBpcyAke1RBUkdFVFBMQVRGT1JNfSIgPiAvaGVsbG8udHh0CkFSRyBCVUlMREtJVF9TQk9NX1NDQU5fU1RBR0U9dHJ1ZQoKRlJPTSBzY3JhdGNoCkNPUFkgLS1mcm9tPWJhc2UgL2hlbGxvLnR4dCAvCg==",
"llbDefinition": [
{
"id": "step0",
"op": {
"Op": {
"source": {
"identifier": "git://github.com/docker/github-builder-test.git#bdb96fcfe8cc9e3a54800bc2537a4d4a14f0c5fe",
"attrs": {
"git.authheadersecret": "GIT_AUTH_HEADER",
"git.authtokensecret": "GIT_AUTH_TOKEN",
"git.fullurl": "https://github.com/docker/github-builder-test.git"
}
}
},
"constraints": {}
}
},
{
"id": "step1",
"op": {
"Op": {}
},
"inputs": [
"step0:0"
]
}
],
"digestMapping": {
"sha256:47540f0959d81a7ff2fc9742b9ef0bb37d7eca99c13aa6df83b883d06e808ef2": "step0",
"sha256:96933c546ff00debd500304305864192fcb51d348e8c41b6a6e1569a051e66ed": "step1"
}
}
]
},
"layers": {
"step0:0": [
[
{
"mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
"digest": "sha256:6b59a28fa20117e6048ad0616b8d8c901877ef15ff4c7f18db04e4f01f43bc39",
"size": 4138069
}
]
]
}
},
"buildkit_completeness": {
"request": true,
"resolvedDependencies": true
}
}
}
}
}

View File

@@ -0,0 +1 @@
Hello, World! This is linux/amd64

View File

@@ -0,0 +1,462 @@
{
"_type": "https://in-toto.io/Statement/v0.1",
"predicateType": "https://slsa.dev/provenance/v1",
"subject": [
{
"name": "hello.txt",
"digest": {
"sha256": "1b37929e66644beb58b3d28d44fba0d82aa90cab03c55a492adb81fe6e833ec8"
}
}
],
"predicate": {
"buildDefinition": {
"buildType": "https://github.com/moby/buildkit/blob/master/docs/attestations/slsa-definitions.md",
"resolvedDependencies": [
{
"uri": "pkg:docker/docker/buildkit-syft-scanner@stable-1",
"digest": {
"sha256": "e930c2697be77cb7271d316ecfa78768b5eac73de3b16018ed38eb0ea0b5a7cb"
}
},
{
"uri": "pkg:docker/alpine@latest?platform=linux%2Famd64",
"digest": {
"sha256": "4b7ce07002c69e8f3d704a9c5d6fd3053be500b7f1c69fc0d80990c2ad8dd412"
}
},
{
"uri": "https://github.com/docker/github-builder-test.git#bdb96fcfe8cc9e3a54800bc2537a4d4a14f0c5fe",
"digest": {
"sha1": "bdb96fcfe8cc9e3a54800bc2537a4d4a14f0c5fe"
}
}
],
"externalParameters": {
"configSource": {
"uri": "https://github.com/docker/github-builder-test.git#bdb96fcfe8cc9e3a54800bc2537a4d4a14f0c5fe",
"digest": {
"sha1": "bdb96fcfe8cc9e3a54800bc2537a4d4a14f0c5fe"
},
"path": "hello.Dockerfile"
},
"request": {
"frontend": "dockerfile.v0",
"secrets": [
{
"id": "GIT_AUTH_HEADER",
"optional": true
},
{
"id": "GIT_AUTH_TOKEN",
"optional": true
}
]
}
},
"internalParameters": {
"buildConfig": {
"digestMapping": {
"sha256:23dcbc3cce701a8a9bbb1e33f2ea88304527a4a935c89c4564af698095463ac2": "step3",
"sha256:3192c1bd53f90cca959db778dcee30edc9a79f8cd3f9a2c54adc4606507fd3b6": "step0",
"sha256:7f1c9e959980ea3e2cf4af8ef97b6c3797a0926752b436bff11474e436defe7f": "step1",
"sha256:c8737331fb8e5f5bcb6b22320012d975057514982c788e63db13332a4219b984": "step2"
},
"llbDefinition": [
{
"id": "step0",
"op": {
"Op": {
"source": {
"identifier": "docker-image://docker.io/library/alpine:latest@sha256:4b7ce07002c69e8f3d704a9c5d6fd3053be500b7f1c69fc0d80990c2ad8dd412"
}
},
"constraints": {},
"platform": {
"Architecture": "amd64",
"OS": "linux"
}
}
},
{
"id": "step1",
"inputs": [
"step0:0"
],
"op": {
"Op": {
"exec": {
"meta": {
"args": [
"/bin/sh",
"-c",
"echo \"Hello, World! This is ${TARGETPLATFORM}\" \u003e /hello.txt"
],
"cwd": "/",
"env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"TARGETPLATFORM=linux/amd64"
],
"removeMountStubsRecursive": true
},
"mounts": [
{
"dest": "/"
}
]
}
},
"constraints": {},
"platform": {
"Architecture": "amd64",
"OS": "linux"
}
}
},
{
"id": "step2",
"inputs": [
"step1:0"
],
"op": {
"Op": {
"file": {
"actions": [
{
"Action": {
"copy": {
"allowEmptyWildcard": true,
"allowWildcard": true,
"createDestPath": true,
"dest": "/",
"dirCopyContents": true,
"followSymlink": true,
"mode": -1,
"src": "/hello.txt",
"timestamp": -1
}
},
"input": -1,
"output": 0,
"secondaryInput": 0
}
]
}
},
"constraints": {}
}
},
{
"id": "step3",
"inputs": [
"step2:0"
],
"op": {
"Op": {}
}
}
]
},
"builderPlatform": "linux/amd64",
"github_actor": "crazy-max",
"github_actor_id": "1951866",
"github_event_name": "workflow_dispatch",
"github_event_payload": {
"enterprise": {
"avatar_url": "https://avatars.githubusercontent.com/b/19176?v=4",
"created_at": "2022-12-30T23:53:17Z",
"description": null,
"html_url": "https://github.com/enterprises/docker",
"id": 19176,
"name": "Docker",
"node_id": "E_kgDNSug",
"slug": "docker",
"updated_at": "2025-10-20T20:39:05Z",
"website_url": null
},
"inputs": null,
"organization": {
"avatar_url": "https://avatars.githubusercontent.com/u/5429470?v=4",
"description": "Docker helps developers bring their ideas to life by conquering the complexity of app development.",
"events_url": "https://api.github.com/orgs/docker/events",
"hooks_url": "https://api.github.com/orgs/docker/hooks",
"id": 5429470,
"issues_url": "https://api.github.com/orgs/docker/issues",
"login": "docker",
"members_url": "https://api.github.com/orgs/docker/members{/member}",
"node_id": "MDEyOk9yZ2FuaXphdGlvbjU0Mjk0NzA=",
"public_members_url": "https://api.github.com/orgs/docker/public_members{/member}",
"repos_url": "https://api.github.com/orgs/docker/repos",
"url": "https://api.github.com/orgs/docker"
},
"ref": "refs/heads/main",
"repository": {
"allow_forking": true,
"archive_url": "https://api.github.com/repos/docker/github-builder-test/{archive_format}{/ref}",
"archived": false,
"assignees_url": "https://api.github.com/repos/docker/github-builder-test/assignees{/user}",
"blobs_url": "https://api.github.com/repos/docker/github-builder-test/git/blobs{/sha}",
"branches_url": "https://api.github.com/repos/docker/github-builder-test/branches{/branch}",
"clone_url": "https://github.com/docker/github-builder-test.git",
"collaborators_url": "https://api.github.com/repos/docker/github-builder-test/collaborators{/collaborator}",
"comments_url": "https://api.github.com/repos/docker/github-builder-test/comments{/number}",
"commits_url": "https://api.github.com/repos/docker/github-builder-test/commits{/sha}",
"compare_url": "https://api.github.com/repos/docker/github-builder-test/compare/{base}...{head}",
"contents_url": "https://api.github.com/repos/docker/github-builder-test/contents/{+path}",
"contributors_url": "https://api.github.com/repos/docker/github-builder-test/contributors",
"created_at": "2025-08-19T08:08:29Z",
"custom_properties": {},
"default_branch": "main",
"deployments_url": "https://api.github.com/repos/docker/github-builder-test/deployments",
"description": "Test repo for https://github.com/docker/github-builder-experimental",
"disabled": false,
"downloads_url": "https://api.github.com/repos/docker/github-builder-test/downloads",
"events_url": "https://api.github.com/repos/docker/github-builder-test/events",
"fork": false,
"forks": 0,
"forks_count": 0,
"forks_url": "https://api.github.com/repos/docker/github-builder-test/forks",
"full_name": "docker/github-builder-test",
"git_commits_url": "https://api.github.com/repos/docker/github-builder-test/git/commits{/sha}",
"git_refs_url": "https://api.github.com/repos/docker/github-builder-test/git/refs{/sha}",
"git_tags_url": "https://api.github.com/repos/docker/github-builder-test/git/tags{/sha}",
"git_url": "git://github.com/docker/github-builder-test.git",
"has_discussions": false,
"has_downloads": true,
"has_issues": false,
"has_pages": false,
"has_projects": false,
"has_wiki": false,
"homepage": null,
"hooks_url": "https://api.github.com/repos/docker/github-builder-test/hooks",
"html_url": "https://github.com/docker/github-builder-test",
"id": 1040594287,
"is_template": false,
"issue_comment_url": "https://api.github.com/repos/docker/github-builder-test/issues/comments{/number}",
"issue_events_url": "https://api.github.com/repos/docker/github-builder-test/issues/events{/number}",
"issues_url": "https://api.github.com/repos/docker/github-builder-test/issues{/number}",
"keys_url": "https://api.github.com/repos/docker/github-builder-test/keys{/key_id}",
"labels_url": "https://api.github.com/repos/docker/github-builder-test/labels{/name}",
"language": "Dockerfile",
"languages_url": "https://api.github.com/repos/docker/github-builder-test/languages",
"license": null,
"merges_url": "https://api.github.com/repos/docker/github-builder-test/merges",
"milestones_url": "https://api.github.com/repos/docker/github-builder-test/milestones{/number}",
"mirror_url": null,
"name": "github-builder-test",
"node_id": "R_kgDOPgY1bw",
"notifications_url": "https://api.github.com/repos/docker/github-builder-test/notifications{?since,all,participating}",
"open_issues": 0,
"open_issues_count": 0,
"owner": {
"avatar_url": "https://avatars.githubusercontent.com/u/5429470?v=4",
"events_url": "https://api.github.com/users/docker/events{/privacy}",
"followers_url": "https://api.github.com/users/docker/followers",
"following_url": "https://api.github.com/users/docker/following{/other_user}",
"gists_url": "https://api.github.com/users/docker/gists{/gist_id}",
"gravatar_id": "",
"html_url": "https://github.com/docker",
"id": 5429470,
"login": "docker",
"node_id": "MDEyOk9yZ2FuaXphdGlvbjU0Mjk0NzA=",
"organizations_url": "https://api.github.com/users/docker/orgs",
"received_events_url": "https://api.github.com/users/docker/received_events",
"repos_url": "https://api.github.com/users/docker/repos",
"site_admin": false,
"starred_url": "https://api.github.com/users/docker/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/docker/subscriptions",
"type": "Organization",
"url": "https://api.github.com/users/docker",
"user_view_type": "public"
},
"private": true,
"pulls_url": "https://api.github.com/repos/docker/github-builder-test/pulls{/number}",
"pushed_at": "2025-10-30T10:04:10Z",
"releases_url": "https://api.github.com/repos/docker/github-builder-test/releases{/id}",
"size": 25,
"ssh_url": "git@github.com:docker/github-builder-test.git",
"stargazers_count": 0,
"stargazers_url": "https://api.github.com/repos/docker/github-builder-test/stargazers",
"statuses_url": "https://api.github.com/repos/docker/github-builder-test/statuses/{sha}",
"subscribers_url": "https://api.github.com/repos/docker/github-builder-test/subscribers",
"subscription_url": "https://api.github.com/repos/docker/github-builder-test/subscription",
"svn_url": "https://github.com/docker/github-builder-test",
"tags_url": "https://api.github.com/repos/docker/github-builder-test/tags",
"teams_url": "https://api.github.com/repos/docker/github-builder-test/teams",
"topics": [],
"trees_url": "https://api.github.com/repos/docker/github-builder-test/git/trees{/sha}",
"updated_at": "2025-10-30T10:04:14Z",
"url": "https://api.github.com/repos/docker/github-builder-test",
"visibility": "internal",
"watchers": 0,
"watchers_count": 0,
"web_commit_signoff_required": false
},
"sender": {
"avatar_url": "https://avatars.githubusercontent.com/u/1951866?v=4",
"events_url": "https://api.github.com/users/crazy-max/events{/privacy}",
"followers_url": "https://api.github.com/users/crazy-max/followers",
"following_url": "https://api.github.com/users/crazy-max/following{/other_user}",
"gists_url": "https://api.github.com/users/crazy-max/gists{/gist_id}",
"gravatar_id": "",
"html_url": "https://github.com/crazy-max",
"id": 1951866,
"login": "crazy-max",
"node_id": "MDQ6VXNlcjE5NTE4NjY=",
"organizations_url": "https://api.github.com/users/crazy-max/orgs",
"received_events_url": "https://api.github.com/users/crazy-max/received_events",
"repos_url": "https://api.github.com/users/crazy-max/repos",
"site_admin": false,
"starred_url": "https://api.github.com/users/crazy-max/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/crazy-max/subscriptions",
"type": "User",
"url": "https://api.github.com/users/crazy-max",
"user_view_type": "public"
},
"workflow": ".github/workflows/ci.yml"
},
"github_job": "build",
"github_ref": "refs/heads/main",
"github_ref_name": "main",
"github_ref_protected": "false",
"github_ref_type": "branch",
"github_repository": "docker/github-builder-test",
"github_repository_id": "1040594287",
"github_repository_owner": "docker",
"github_repository_owner_id": "5429470",
"github_run_attempt": "1",
"github_run_id": "18937328894",
"github_run_number": "183",
"github_runner_arch": "X64",
"github_runner_environment": "github-hosted",
"github_runner_image_os": "ubuntu24",
"github_runner_image_version": "20250929.60.1",
"github_runner_name": "GitHub Actions 1002376925",
"github_runner_os": "Linux",
"github_runner_tracking_id": "github_7c0a7521-2999-41e5-af30-b7f0681f204f",
"github_server_url": "https://github.com",
"github_triggering_actor": "crazy-max",
"github_workflow": "ci",
"github_workflow_ref": "docker/github-builder-test/.github/workflows/ci.yml@refs/heads/main",
"github_workflow_sha": "bdb96fcfe8cc9e3a54800bc2537a4d4a14f0c5fe"
}
},
"runDetails": {
"builder": {
"id": "https://github.com/docker/github-builder-test/actions/runs/18937328894/attempts/1"
},
"metadata": {
"invocationID": "7qg2yuux3iklv02ktbmbtwgeb",
"startedOn": "2025-10-30T10:19:52.868710505Z",
"finishedOn": "2025-10-30T10:19:57.635810119Z",
"buildkit_metadata": {
"source": {
"locations": {
"step0": {
"locations": [
{
"ranges": [
{
"start": {
"line": 1
},
"end": {
"line": 1
}
}
]
}
]
},
"step1": {
"locations": [
{
"ranges": [
{
"start": {
"line": 3
},
"end": {
"line": 3
}
}
]
}
]
},
"step2": {
"locations": [
{
"ranges": [
{
"start": {
"line": 7
},
"end": {
"line": 7
}
}
]
}
]
}
},
"infos": [
{
"filename": "hello.Dockerfile",
"language": "Dockerfile",
"data": "RlJPTSBhbHBpbmUgQVMgYmFzZQpBUkcgVEFSR0VUUExBVEZPUk0KUlVOIGVjaG8gIkhlbGxvLCBXb3JsZCEgVGhpcyBpcyAke1RBUkdFVFBMQVRGT1JNfSIgPiAvaGVsbG8udHh0CkFSRyBCVUlMREtJVF9TQk9NX1NDQU5fU1RBR0U9dHJ1ZQoKRlJPTSBzY3JhdGNoCkNPUFkgLS1mcm9tPWJhc2UgL2hlbGxvLnR4dCAvCg==",
"llbDefinition": [
{
"id": "step0",
"op": {
"Op": {
"source": {
"identifier": "git://github.com/docker/github-builder-test.git#bdb96fcfe8cc9e3a54800bc2537a4d4a14f0c5fe",
"attrs": {
"git.authheadersecret": "GIT_AUTH_HEADER",
"git.authtokensecret": "GIT_AUTH_TOKEN",
"git.fullurl": "https://github.com/docker/github-builder-test.git"
}
}
},
"constraints": {}
}
},
{
"id": "step1",
"op": {
"Op": {}
},
"inputs": [
"step0:0"
]
}
],
"digestMapping": {
"sha256:47540f0959d81a7ff2fc9742b9ef0bb37d7eca99c13aa6df83b883d06e808ef2": "step0",
"sha256:96933c546ff00debd500304305864192fcb51d348e8c41b6a6e1569a051e66ed": "step1"
}
}
]
},
"layers": {
"step0:0": [
[
{
"mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
"digest": "sha256:2d35ebdb57d9971fea0cac1582aa78935adf8058b2cc32db163c98822e5dfa1b",
"size": 3802452
}
]
]
}
},
"buildkit_completeness": {
"request": true,
"resolvedDependencies": true
}
}
}
}
}

View File

@@ -19,7 +19,10 @@ import * as fs from 'fs';
import * as path from 'path';
import {ImageTools} from '../../src/buildx/imagetools';
import {Manifest as ImageToolsManifest} from '../../src/types/buildx/imagetools';
import {Image} from '../../src/types/oci/config';
import {Descriptor} from '../../src/types/oci/descriptor';
const fixturesDir = path.join(__dirname, '..', '.fixtures');
@@ -37,3 +40,39 @@ maybe('inspectImage', () => {
expect(image).toEqual(expectedImage);
});
});
maybe('inspectManifest', () => {
it('inspect descriptor', async () => {
const manifest = await new ImageTools().inspectManifest('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 expectedManifest = <ImageToolsManifest>JSON.parse(fs.readFileSync(path.join(fixturesDir, 'imagetools-04.json'), {encoding: 'utf-8'}).trim());
expect(manifest).toEqual(expectedManifest);
});
});
maybe('attestationDescriptors', () => {
it('returns buildkit attestations descriptors', async () => {
const attestations = await new ImageTools().attestationDescriptors('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);
});
});
maybe('attestationDigests', () => {
it('returns buildkit attestations digests', async () => {
const digests = await new ImageTools().attestationDigests('moby/buildkit:latest@sha256:79cc6476ab1a3371c9afd8b44e7c55610057c43e18d9b39b68e2b0c2475cc1b6');
// prettier-ignore
expect(digests).toEqual([
'sha256:2ba4ad6eae1efcafee73a971953093c7c32b6938f2f9fd4998c8bf4d0fbe76f2',
'sha256:0709528fae1747ce17638ad2978ee7936b38a294136eaadaf692e415f64b1e03',
'sha256:241b7159129d53923c89708bcc052b3398086a826519896be2f025545916e43e',
'sha256:97f4a222a7992dba6dc1a43991d0cca1fcffdc25593033c6a3a7ff14c8651cbf',
'sha256:aa933713d8094b2708120e889acb6f7153dee4e0f3298ccd3e37a584cd0c260d',
'sha256:d95ca72d4f2a6bc416d4b2f3003b2af9d5f4dea99acec6ad3ab0c2082000a98c'
]);
});
});

View File

@@ -119,7 +119,12 @@ describe('getDownloadVersion', () => {
expect(version.key).toEqual('official');
expect(version.version).toEqual('latest');
expect(version.downloadURL).toEqual('https://github.com/docker/buildx/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/buildx-releases.json');
expect(version.contentOpts).toEqual({
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/buildx-releases.json'
});
});
it('returns official v0.10.1 download version', async () => {
@@ -127,7 +132,12 @@ describe('getDownloadVersion', () => {
expect(version.key).toEqual('official');
expect(version.version).toEqual('v0.10.1');
expect(version.downloadURL).toEqual('https://github.com/docker/buildx/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/buildx-releases.json');
expect(version.contentOpts).toEqual({
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/buildx-releases.json'
});
});
it('returns cloud latest download version', async () => {
@@ -135,7 +145,12 @@ describe('getDownloadVersion', () => {
expect(version.key).toEqual('cloud');
expect(version.version).toEqual('latest');
expect(version.downloadURL).toEqual('https://github.com/docker/buildx-desktop/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/buildx-lab-releases.json');
expect(version.contentOpts).toEqual({
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/buildx-lab-releases.json'
});
});
it('returns cloud v0.11.2-desktop.2 download version', async () => {
@@ -143,7 +158,12 @@ describe('getDownloadVersion', () => {
expect(version.key).toEqual('cloud');
expect(version.version).toEqual('v0.11.2-desktop.2');
expect(version.downloadURL).toEqual('https://github.com/docker/buildx-desktop/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/buildx-lab-releases.json');
expect(version.contentOpts).toEqual({
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/buildx-lab-releases.json'
});
});
it('returns cloud for lab version', async () => {
@@ -151,7 +171,12 @@ describe('getDownloadVersion', () => {
expect(version.key).toEqual('cloud');
expect(version.version).toEqual('latest');
expect(version.downloadURL).toEqual('https://github.com/docker/buildx-desktop/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/buildx-lab-releases.json');
expect(version.contentOpts).toEqual({
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/buildx-lab-releases.json'
});
});
it('unknown repo', async () => {
@@ -187,6 +212,6 @@ describe('getRelease', () => {
it('unknown release', async () => {
const version = await Install.getDownloadVersion('foo');
await expect(Install.getRelease(version)).rejects.toThrow(new Error('Cannot find Buildx release foo in https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/buildx-releases.json'));
await expect(Install.getRelease(version)).rejects.toThrow(new Error('Cannot find Buildx release foo in releases JSON'));
});
});

View File

@@ -99,28 +99,48 @@ describe('getDownloadVersion', () => {
expect(version.key).toEqual('official');
expect(version.version).toEqual('latest');
expect(version.downloadURL).toEqual('https://github.com/docker/compose/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/compose-releases.json');
expect(version.contentOpts).toEqual({
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/compose-releases.json'
});
});
it('returns official v2.24.3 download version', async () => {
const version = await Install.getDownloadVersion('v2.24.3');
expect(version.key).toEqual('official');
expect(version.version).toEqual('v2.24.3');
expect(version.downloadURL).toEqual('https://github.com/docker/compose/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/compose-releases.json');
expect(version.contentOpts).toEqual({
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/compose-releases.json'
});
});
it('returns cloud latest download version', async () => {
const version = await Install.getDownloadVersion('cloud:latest');
expect(version.key).toEqual('cloud');
expect(version.version).toEqual('latest');
expect(version.downloadURL).toEqual('https://github.com/docker/compose-desktop/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/compose-lab-releases.json');
expect(version.contentOpts).toEqual({
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/compose-lab-releases.json'
});
});
it('returns cloud v2.27.1-desktop.1 download version', async () => {
const version = await Install.getDownloadVersion('cloud:v2.27.1-desktop.1');
expect(version.key).toEqual('cloud');
expect(version.version).toEqual('v2.27.1-desktop.1');
expect(version.downloadURL).toEqual('https://github.com/docker/compose-desktop/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/compose-lab-releases.json');
expect(version.contentOpts).toEqual({
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/compose-lab-releases.json'
});
});
it('unknown repo', async () => {
await expect(Install.getDownloadVersion('foo:bar')).rejects.toThrow(new Error('Cannot find compose version for foo:bar'));
@@ -152,6 +172,6 @@ describe('getRelease', () => {
});
it('unknown release', async () => {
const version = await Install.getDownloadVersion('foo');
await expect(Install.getRelease(version)).rejects.toThrow(new Error('Cannot find Compose release foo in https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/compose-releases.json'));
await expect(Install.getRelease(version)).rejects.toThrow(new Error('Cannot find Compose release foo in releases JSON'));
});
});

View File

@@ -0,0 +1,90 @@
/**
* Copyright 2025 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 {describe, expect, it, jest, test} from '@jest/globals';
import fs from 'fs';
import path from 'path';
import * as semver from 'semver';
import {Exec} from '../../src/exec';
import {Cosign} from '../../src/cosign/cosign';
const fixturesDir = path.join(__dirname, '..', '.fixtures');
describe('isAvailable', () => {
it('checks Cosign is available', async () => {
const execSpy = jest.spyOn(Exec, 'getExecOutput');
const cosign = new Cosign();
await cosign.isAvailable();
// eslint-disable-next-line jest/no-standalone-expect
expect(execSpy).toHaveBeenCalledWith(`cosign`, [], {
silent: true,
ignoreReturnCode: true
});
});
});
describe('printVersion', () => {
it('prints Cosign version', async () => {
const execSpy = jest.spyOn(Exec, 'exec');
const cosign = new Cosign();
await cosign.printVersion();
expect(execSpy).toHaveBeenCalledWith(`cosign`, ['version', '--json'], {
failOnStdErr: false
});
});
});
describe('version', () => {
it('valid', async () => {
const cosign = new Cosign();
expect(semver.valid(await cosign.version())).not.toBeUndefined();
});
});
describe('versionSatisfies', () => {
test.each([
['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) => {
const cosign = new Cosign();
expect(await cosign.versionSatisfies(range, version)).toBe(expected);
});
});
describe('parseCommandOutput', () => {
// prettier-ignore
test.each([
[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) => {
const signResult = Cosign.parseCommandOutput(fs.readFileSync(fixturePath, 'utf-8'));
expect(signResult).toBeDefined();
expect(signResult.bundle).toBeDefined();
});
// prettier-ignore
test.each([
[path.join(fixturesDir, 'cosign', 'verify-output-err1.txt')],
])('parsing %p', async (fixturePath: string) => {
const signResult = Cosign.parseCommandOutput(fs.readFileSync(fixturePath, 'utf-8'));
expect(signResult).toBeDefined();
expect(signResult.bundle).toBeUndefined();
expect(signResult.errors).toBeDefined();
});
});

View File

@@ -0,0 +1,50 @@
/**
* Copyright 2025 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 {describe, expect, it, test} from '@jest/globals';
import * as fs from 'fs';
import {Install} from '../../src/cosign/install';
const maybe = !process.env.GITHUB_ACTIONS || (process.env.GITHUB_ACTIONS === 'true' && process.env.ImageOS && process.env.ImageOS.startsWith('ubuntu')) ? describe : describe.skip;
describe('download', () => {
// prettier-ignore
test.each(['latest'])(
'install cosign %s', async (version) => {
await expect((async () => {
const install = new Install();
const toolPath = await install.download(version);
if (!fs.existsSync(toolPath)) {
throw new Error('toolPath does not exist');
}
const binPath = await install.install(toolPath);
if (!fs.existsSync(binPath)) {
throw new Error('binPath does not exist');
}
})()).resolves.not.toThrow();
}, 60000);
});
maybe('build', () => {
it.skip('builds refs/pull/4492/head', async () => {
const install = new Install();
const toolPath = await install.build('https://github.com/sigstore/cosign.git#refs/pull/4492/head');
expect(fs.existsSync(toolPath)).toBe(true);
const buildxBin = await install.install(toolPath);
expect(fs.existsSync(buildxBin)).toBe(true);
}, 500000);
});

View File

@@ -0,0 +1,132 @@
/**
* Copyright 2025 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 {describe, expect, it, jest, test, afterEach} from '@jest/globals';
import fs from 'fs';
import os from 'os';
import path from 'path';
import * as rimraf from 'rimraf';
import osm = require('os');
import {Install} from '../../src/cosign/install';
const tmpDir = fs.mkdtempSync(path.join(process.env.TEMP || os.tmpdir(), 'cosign-install-'));
afterEach(function () {
rimraf.sync(tmpDir);
});
describe('download', () => {
// prettier-ignore
test.each([
['v2.6.1'],
['v3.0.1'],
['latest']
])(
'acquires %p of cosign', async (version) => {
const install = new Install();
const toolPath = await install.download(version);
expect(fs.existsSync(toolPath)).toBe(true);
const cosignBin = await install.install(toolPath, tmpDir);
expect(fs.existsSync(cosignBin)).toBe(true);
}, 100000);
// prettier-ignore
test.each([
// following versions are already cached to htc from previous test cases
['v2.6.1'],
['v3.0.1'],
])(
'acquires %p of cosign with cache', async (version) => {
const install = new Install();
const toolPath = await install.download(version);
expect(fs.existsSync(toolPath)).toBe(true);
}, 100000);
// prettier-ignore
test.each([
['v2.5.3'],
['v2.6.0'],
])(
'acquires %p of cosign without cache', async (version) => {
const install = new Install();
const toolPath = await install.download(version, true);
expect(fs.existsSync(toolPath)).toBe(true);
}, 100000);
// TODO: add tests for arm
// prettier-ignore
test.each([
['win32', 'x64'],
['darwin', 'x64'],
['darwin', 'arm64'],
['linux', 'x64'],
['linux', 'arm64']
])(
'acquires undock for %s/%s', async (os, arch) => {
jest.spyOn(osm, 'platform').mockImplementation(() => os as NodeJS.Platform);
jest.spyOn(osm, 'arch').mockImplementation(() => arch);
const install = new Install();
const cosignBin = await install.download('latest');
expect(fs.existsSync(cosignBin)).toBe(true);
}, 100000);
});
describe('getDownloadVersion', () => {
it('returns latest download version', async () => {
const version = await Install.getDownloadVersion('latest');
expect(version.version).toEqual('latest');
expect(version.downloadURL).toEqual('https://github.com/sigstore/cosign/releases/download/v%s/%s');
expect(version.contentOpts).toEqual({
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/cosign-releases.json'
});
});
it('returns v3.0.2 download version', async () => {
const version = await Install.getDownloadVersion('v3.0.2');
expect(version.version).toEqual('v3.0.2');
expect(version.downloadURL).toEqual('https://github.com/sigstore/cosign/releases/download/v%s/%s');
expect(version.contentOpts).toEqual({
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/cosign-releases.json'
});
});
});
describe('getRelease', () => {
it('returns latest GitHub release', async () => {
const version = await Install.getDownloadVersion('latest');
const release = await Install.getRelease(version);
expect(release).not.toBeNull();
expect(release?.tag_name).not.toEqual('');
});
it('returns v3.0.2 GitHub release', async () => {
const version = await Install.getDownloadVersion('v3.0.2');
const release = await Install.getRelease(version);
expect(release).not.toBeNull();
expect(release?.id).toEqual(253720294);
expect(release?.tag_name).toEqual('v3.0.2');
expect(release?.html_url).toEqual('https://github.com/sigstore/cosign/releases/tag/v3.0.2');
});
it('unknown release', async () => {
const version = await Install.getDownloadVersion('foo');
await expect(Install.getRelease(version)).rejects.toThrow(new Error('Cannot find Cosign release foo in releases JSON'));
});
});

View File

@@ -21,9 +21,7 @@ import path from 'path';
import {Install, InstallSource, InstallSourceArchive, InstallSourceImage} from '../../src/docker/install';
import {Docker} from '../../src/docker/docker';
import {Regctl} from '../../src/regclient/regctl';
import {Install as RegclientInstall} from '../../src/regclient/install';
import {Undock} from '../../src/undock/undock';
import {Install as UndockInstall} from '../../src/undock/install';
import {Exec} from '../../src/exec';
@@ -48,9 +46,7 @@ describe('root', () => {
source: source,
runDir: tmpDir(),
contextName: 'foo',
daemonConfig: `{"debug":true,"features":{"containerd-snapshotter":true}}`,
regctl: new Regctl(),
undock: new Undock()
daemonConfig: `{"debug":true,"features":{"containerd-snapshotter":true}}`
});
await expect(tryInstall(install)).resolves.not.toThrow();
}, 30 * 60 * 1000);
@@ -70,9 +66,7 @@ describe('rootless', () => {
runDir: tmpDir(),
contextName: 'foo',
daemonConfig: `{"debug":true}`,
rootless: true,
regctl: new Regctl(),
undock: new Undock()
rootless: true
});
await expect(
tryInstall(install, async () => {
@@ -97,9 +91,7 @@ describe('tcp', () => {
runDir: tmpDir(),
contextName: 'foo',
daemonConfig: `{"debug":true}`,
localTCPPort: 2378,
regctl: new Regctl(),
undock: new Undock()
localTCPPort: 2378
});
await expect(
tryInstall(install, async () => {
@@ -153,11 +145,12 @@ async function ensureNoSystemContainerd() {
function getSources(root: boolean): Array<InstallSource> {
const dockerInstallType = process.env.DOCKER_INSTALL_TYPE;
const dockerInstallVersion = process.env.DOCKER_INSTALL_VERSION;
const dockerInstallChannel = process.env.DOCKER_INSTALL_CHANNEL || 'stable';
if (dockerInstallType && dockerInstallVersion) {
if (dockerInstallType === 'archive') {
// prettier-ignore
return [
{ type: dockerInstallType, version: dockerInstallVersion, channel: 'stable'} as InstallSourceArchive
{ type: dockerInstallType, version: dockerInstallVersion, channel: dockerInstallChannel} as InstallSourceArchive
];
} else {
// prettier-ignore
@@ -173,7 +166,8 @@ function getSources(root: boolean): Array<InstallSource> {
{type: 'image', tag: 'master'} as InstallSourceImage,
{type: 'image', tag: 'latest'} as InstallSourceImage,
{type: 'archive', version: 'v26.1.4', channel: 'stable'} as InstallSourceArchive,
{type: 'archive', version: 'latest', channel: 'stable'} as InstallSourceArchive
{type: 'archive', version: 'latest', channel: 'stable'} as InstallSourceArchive,
{type: 'archive', version: 'v29.0.0-rc.1', channel: 'test'} as InstallSourceArchive
];
} else {
// prettier-ignore

View File

@@ -22,8 +22,6 @@ import * as rimraf from 'rimraf';
import osm = require('os');
import {Install, InstallSourceArchive, InstallSourceImage} from '../../src/docker/install';
import {Regctl} from '../../src/regclient/regctl';
import {Undock} from '../../src/undock/undock';
const tmpDir = fs.mkdtempSync(path.join(process.env.TEMP || os.tmpdir(), 'docker-install-'));
@@ -53,6 +51,7 @@ describe('download', () => {
[archive('v20.10.22', 'stable'), 'linux'],
[archive('v20.10.22', 'stable'), 'darwin'],
[archive('v20.10.22', 'stable'), 'win32'],
[archive('v29.0.0-rc.1', 'test'), 'linux'],
[image('master'), 'linux'],
[image('master'), 'win32'],
@@ -65,9 +64,7 @@ describe('download', () => {
jest.spyOn(osm, 'arch').mockImplementation(() => 'x64');
const install = new Install({
source: source,
runDir: tmpDir,
regctl: new Regctl(),
undock: new Undock()
runDir: tmpDir
});
const toolPath = await install.download();
expect(fs.existsSync(toolPath)).toBe(true);
@@ -81,7 +78,7 @@ describe('getRelease', () => {
expect(release?.tag_name).not.toEqual('');
});
it('returns v23.0.0 buildx GitHub release', async () => {
it('returns v23.0.0 docker GitHub release', async () => {
const release = await Install.getRelease('v23.0.0');
expect(release).not.toBeNull();
expect(release?.id).toEqual(91109643);
@@ -89,8 +86,16 @@ describe('getRelease', () => {
expect(release?.html_url).toEqual('https://github.com/moby/moby/releases/tag/v23.0.0');
});
it('returns v29.0.0-rc.1 docker GitHub release', async () => {
const release = await Install.getRelease('v29.0.0-rc.1');
expect(release).not.toBeNull();
expect(release?.id).toEqual(252020476);
expect(release?.tag_name).toEqual('docker-v29.0.0-rc.1');
expect(release?.html_url).toEqual('https://github.com/moby/moby/releases/tag/docker-v29.0.0-rc.1');
});
it('unknown release', async () => {
await expect(Install.getRelease('foo')).rejects.toThrow(new Error('Cannot find Docker release foo in https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/docker-releases.json'));
await expect(Install.getRelease('foo')).rejects.toThrow(new Error('Cannot find Docker release foo in releases JSON'));
});
});

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
import {describe, expect, jest, it, beforeEach, afterEach} from '@jest/globals';
import {describe, expect, jest, it, beforeEach, afterEach, test} from '@jest/globals';
import * as fs from 'fs';
import * as path from 'path';
import * as core from '@actions/core';
@@ -43,6 +43,29 @@ describe('context', () => {
});
});
describe('releases', () => {
// prettier-ignore
test.each([
['.github/buildx-lab-releases.json'],
['.github/buildx-releases.json'],
['.github/compose-lab-releases.json'],
['.github/compose-releases.json'],
['.github/docker-releases.json'],
['.github/regclient-releases.json'],
['.github/undock-releases.json'],
])('returns %p', async (path: string) => {
const github = new GitHub();
const releases = await github.releases('App', {
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: path
});
expect(releases).toBeDefined();
expect(Object.keys(releases).length).toBeGreaterThan(0);
});
});
describe('serverURL', () => {
const originalEnv = process.env;
beforeEach(() => {

View File

@@ -88,13 +88,23 @@ describe('getDownloadVersion', () => {
const version = await Install.getDownloadVersion('latest');
expect(version.version).toEqual('latest');
expect(version.downloadURL).toEqual('https://github.com/regclient/regclient/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/regclient-releases.json');
expect(version.contentOpts).toEqual({
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/regclient-releases.json'
});
});
it('returns v0.8.1 download version', async () => {
const version = await Install.getDownloadVersion('v0.8.1');
expect(version.version).toEqual('v0.8.1');
expect(version.downloadURL).toEqual('https://github.com/regclient/regclient/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/regclient-releases.json');
expect(version.contentOpts).toEqual({
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/regclient-releases.json'
});
});
});
@@ -115,6 +125,6 @@ describe('getRelease', () => {
});
it('unknown release', async () => {
const version = await Install.getDownloadVersion('foo');
await expect(Install.getRelease(version)).rejects.toThrow(new Error('Cannot find regclient release foo in https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/regclient-releases.json'));
await expect(Install.getRelease(version)).rejects.toThrow(new Error('Cannot find regclient release foo in releases JSON'));
});
});

View File

@@ -0,0 +1,90 @@
/**
* Copyright 2025 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 {describe, expect, jest, it, beforeAll} from '@jest/globals';
import fs from 'fs';
import * as path from 'path';
import {Install as CosignInstall} from '../../src/cosign/install';
import {Sigstore} from '../../src/sigstore/sigstore';
const fixturesDir = path.join(__dirname, '..', '.fixtures');
const maybe = process.env.GITHUB_ACTIONS && process.env.GITHUB_ACTIONS === 'true' && process.env.ACTIONS_ID_TOKEN_REQUEST_URL && process.env.ImageOS && process.env.ImageOS.startsWith('ubuntu') ? describe : describe.skip;
// needs current GitHub repo info
jest.unmock('@actions/github');
beforeAll(async () => {
const cosignInstall = new CosignInstall();
const cosignBinPath = await cosignInstall.download('v3.0.2', true);
await cosignInstall.install(cosignBinPath);
}, 100000);
maybe('signProvenanceBlobs', () => {
it('single platform', async () => {
const sigstore = new Sigstore();
const results = await sigstore.signProvenanceBlobs({
localExportDir: path.join(fixturesDir, 'sigstore', 'single')
});
expect(Object.keys(results).length).toEqual(1);
const provenancePath = Object.keys(results)[0];
expect(provenancePath).toEqual(path.join(fixturesDir, 'sigstore', 'single', 'provenance.json'));
expect(fs.existsSync(results[provenancePath].bundlePath)).toBe(true);
expect(results[provenancePath].payload).toBeDefined();
expect(results[provenancePath].certificate).toBeDefined();
expect(results[provenancePath].tlogID).toBeDefined();
console.log(provenancePath, JSON.stringify(results[provenancePath].payload, null, 2));
});
it('multi-platform', async () => {
const sigstore = new Sigstore();
const results = await sigstore.signProvenanceBlobs({
localExportDir: path.join(fixturesDir, 'sigstore', 'multi')
});
expect(Object.keys(results).length).toEqual(2);
for (const [provenancePath, res] of Object.entries(results)) {
expect(provenancePath).toMatch(/linux_(amd64|arm64)\/provenance.json/);
expect(fs.existsSync(res.bundlePath)).toBe(true);
expect(res.payload).toBeDefined();
expect(res.certificate).toBeDefined();
expect(res.tlogID).toBeDefined();
console.log(provenancePath, JSON.stringify(res.payload, null, 2));
}
});
});
maybe('verifySignedArtifacts', () => {
it('sign and verify', async () => {
const sigstore = new Sigstore();
const signResults = await sigstore.signProvenanceBlobs({
localExportDir: path.join(fixturesDir, 'sigstore', 'multi')
});
expect(Object.keys(signResults).length).toEqual(2);
const verifyResults = await sigstore.verifySignedArtifacts(
{
certificateIdentityRegexp: `^https://github.com/docker/actions-toolkit/.github/workflows/test.yml.*$`
},
signResults
);
expect(Object.keys(verifyResults).length).toEqual(2);
for (const [artifactPath, res] of Object.entries(verifyResults)) {
expect(fs.existsSync(artifactPath)).toBe(true);
expect(res.bundlePath).toBeDefined();
expect(res.cosignArgs).toBeDefined();
}
});
});

View File

@@ -93,13 +93,23 @@ describe('getDownloadVersion', () => {
const version = await Install.getDownloadVersion('latest');
expect(version.version).toEqual('latest');
expect(version.downloadURL).toEqual('https://github.com/crazy-max/undock/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/undock-releases.json');
expect(version.contentOpts).toEqual({
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/undock-releases.json'
});
});
it('returns v0.6.0 download version', async () => {
const version = await Install.getDownloadVersion('v0.6.0');
expect(version.version).toEqual('v0.6.0');
expect(version.downloadURL).toEqual('https://github.com/crazy-max/undock/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/undock-releases.json');
expect(version.contentOpts).toEqual({
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/undock-releases.json'
});
});
});
@@ -120,6 +130,6 @@ describe('getRelease', () => {
});
it('unknown release', async () => {
const version = await Install.getDownloadVersion('foo');
await expect(Install.getRelease(version)).rejects.toThrow(new Error('Cannot find Undock release foo in https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/undock-releases.json'));
await expect(Install.getRelease(version)).rejects.toThrow(new Error('Cannot find Undock release foo in releases JSON'));
});
});

View File

@@ -15,11 +15,12 @@
# limitations under the License.
ARG NODE_VERSION=20
ARG DOCKER_VERSION=27.2.1
ARG BUILDX_VERSION=0.26.1
ARG COMPOSE_VERSION=2.32.4
ARG DOCKER_VERSION=28.3
ARG BUILDX_VERSION=0.29.1
ARG COMPOSE_VERSION=2.39.1
ARG UNDOCK_VERSION=0.10.0
ARG REGCTL_VERSION=v0.8.2
ARG COSIGN_VERSION=v3.0.2
FROM node:${NODE_VERSION}-alpine AS base
RUN apk add --no-cache cpio findutils git
@@ -76,23 +77,25 @@ RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/node_modules \
yarn run lint
FROM docker:${DOCKER_VERSION} AS docker
FROM dockereng/cli-bin:${DOCKER_VERSION} AS docker
FROM docker/buildx-bin:${BUILDX_VERSION} AS buildx
FROM docker/compose-bin:v${COMPOSE_VERSION} AS compose
FROM crazymax/undock:${UNDOCK_VERSION} AS undock
FROM ghcr.io/regclient/regctl:${REGCTL_VERSION} AS regctl
FROM ghcr.io/sigstore/cosign/cosign:${COSIGN_VERSION} AS cosign
FROM deps AS test
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache \
--mount=type=cache,target=/src/node_modules \
--mount=type=bind,from=docker,source=/usr/local/bin/docker,target=/usr/bin/docker \
--mount=type=bind,from=docker,source=/docker,target=/usr/bin/docker \
--mount=type=bind,from=buildx,source=/buildx,target=/usr/libexec/docker/cli-plugins/docker-buildx \
--mount=type=bind,from=buildx,source=/buildx,target=/usr/bin/buildx \
--mount=type=bind,from=compose,source=/docker-compose,target=/usr/libexec/docker/cli-plugins/docker-compose \
--mount=type=bind,from=compose,source=/docker-compose,target=/usr/bin/compose \
--mount=type=bind,from=undock,source=/usr/local/bin/undock,target=/usr/bin/undock \
--mount=type=bind,from=regctl,source=/regctl,target=/usr/bin/regctl \
--mount=type=bind,from=cosign,source=/ko-app/cosign,target=/usr/bin/cosign \
--mount=type=secret,id=GITHUB_TOKEN \
GITHUB_TOKEN=$(cat /run/secrets/GITHUB_TOKEN) yarn run test:coverage --coverageDirectory=/tmp/coverage

View File

@@ -45,8 +45,8 @@
"registry": "https://registry.npmjs.org/"
},
"dependencies": {
"@actions/artifact": "^2.3.2",
"@actions/cache": "^4.0.3",
"@actions/artifact": "^4.0.0",
"@actions/cache": "^4.1.0",
"@actions/core": "^1.11.1",
"@actions/exec": "^1.1.1",
"@actions/github": "^6.0.1",
@@ -56,23 +56,26 @@
"@azure/storage-blob": "^12.15.0",
"@octokit/core": "^5.2.2",
"@octokit/plugin-rest-endpoint-methods": "^10.4.1",
"@sigstore/bundle": "^4.0.0",
"@sigstore/sign": "^4.0.1",
"async-retry": "^1.3.3",
"csv-parse": "^5.6.0",
"csv-parse": "^6.1.0",
"gunzip-maybe": "^1.4.2",
"handlebars": "^4.7.8",
"he": "^1.2.0",
"js-yaml": "^4.1.0",
"jwt-decode": "^4.0.0",
"semver": "^7.7.2",
"semver": "^7.7.3",
"tar-stream": "^3.1.7",
"tmp": "^0.2.4"
"tmp": "^0.2.5"
},
"devDependencies": {
"@sigstore/rekor-types": "^3.0.0",
"@types/gunzip-maybe": "^1.4.2",
"@types/he": "^1.2.3",
"@types/js-yaml": "^4.0.9",
"@types/node": "^20.19.9",
"@types/semver": "^7.7.0",
"@types/semver": "^7.7.1",
"@types/tar-stream": "^3.1.4",
"@types/tmp": "^0.2.6",
"@typescript-eslint/eslint-plugin": "^7.18.0",

View File

@@ -17,7 +17,10 @@
import {Buildx} from './buildx';
import {Exec} from '../exec';
import {Manifest as ImageToolsManifest} from '../types/buildx/imagetools';
import {Image} from '../types/oci/config';
import {Descriptor} from '../types/oci/descriptor';
import {Digest} from '../types/oci/digest';
export interface ImageToolsOpts {
buildx?: Buildx;
@@ -58,4 +61,37 @@ export class ImageTools {
throw new Error('Unexpected output format');
});
}
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);
if (typeof parsedOutput === 'object' && !Array.isArray(parsedOutput) && parsedOutput !== null) {
if (Object.prototype.hasOwnProperty.call(parsedOutput, 'manifests')) {
return <ImageToolsManifest>parsedOutput;
} else {
return <Descriptor>parsedOutput;
}
}
throw new Error('Unexpected output format');
});
}
public async attestationDescriptors(name: string): Promise<Array<Descriptor>> {
const manifest = await this.inspectManifest(name);
if (typeof manifest === 'object' && manifest !== null && 'manifests' in manifest && Array.isArray(manifest.manifests)) {
return manifest.manifests.filter(m => m.annotations && m.annotations['vnd.docker.reference.type'] === 'attestation-manifest');
}
throw new Error(`No attestation descriptors found for ${name}`);
}
public async attestationDigests(name: string): Promise<Array<Digest>> {
return (await this.attestationDescriptors(name)).map(attestation => attestation.digest);
}
}

View File

@@ -18,7 +18,6 @@ import fs from 'fs';
import os from 'os';
import path from 'path';
import * as core from '@actions/core';
import * as httpm from '@actions/http-client';
import * as tc from '@actions/tool-cache';
import * as semver from 'semver';
import * as util from 'util';
@@ -29,6 +28,7 @@ import {Context} from '../context';
import {Exec} from '../exec';
import {Docker} from '../docker/docker';
import {Git} from '../git';
import {GitHub} from '../github';
import {Util} from '../util';
import {DownloadVersion} from '../types/buildx/buildx';
@@ -36,13 +36,16 @@ import {GitHubRelease} from '../types/github';
export interface InstallOpts {
standalone?: boolean;
githubToken?: string;
}
export class Install {
private readonly _standalone: boolean | undefined;
private readonly standalone: boolean | undefined;
private readonly githubToken: string | undefined;
constructor(opts?: InstallOpts) {
this._standalone = opts?.standalone;
this.standalone = opts?.standalone;
this.githubToken = opts?.githubToken || process.env.GITHUB_TOKEN;
}
/*
@@ -55,7 +58,7 @@ export class Install {
const version: DownloadVersion = await Install.getDownloadVersion(v);
core.debug(`Install.download version: ${version.version}`);
const release: GitHubRelease = await Install.getRelease(version);
const release: GitHubRelease = await Install.getRelease(version, this.githubToken);
core.debug(`Install.download release tag name: ${release.tag_name}`);
const vspec = await this.vspec(release.tag_name);
@@ -83,7 +86,7 @@ export class Install {
const downloadURL = util.format(version.downloadURL, vspec, this.filename(vspec));
core.info(`Downloading ${downloadURL}`);
const htcDownloadPath = await tc.downloadTool(downloadURL);
const htcDownloadPath = await tc.downloadTool(downloadURL, undefined, this.githubToken);
core.debug(`Install.download htcDownloadPath: ${htcDownloadPath}`);
const cacheSavePath = await installCache.save(htcDownloadPath);
@@ -205,7 +208,7 @@ export class Install {
}
private async isStandalone(): Promise<boolean> {
const standalone = this._standalone ?? !(await Docker.isAvailable());
const standalone = this.standalone ?? !(await Docker.isAvailable());
core.debug(`Install.isStandalone: ${standalone}`);
return standalone;
}
@@ -285,7 +288,12 @@ export class Install {
key: repoKey,
version: version,
downloadURL: 'https://github.com/docker/buildx/releases/download/v%s/%s',
releasesURL: 'https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/buildx-releases.json'
contentOpts: {
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/buildx-releases.json'
}
};
}
case 'cloud': {
@@ -293,7 +301,12 @@ export class Install {
key: repoKey,
version: version,
downloadURL: 'https://github.com/docker/buildx-desktop/releases/download/v%s/%s',
releasesURL: 'https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/buildx-lab-releases.json'
contentOpts: {
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/buildx-lab-releases.json'
}
};
}
default: {
@@ -302,17 +315,11 @@ export class Install {
}
}
public static async getRelease(version: DownloadVersion): Promise<GitHubRelease> {
const http: httpm.HttpClient = new httpm.HttpClient('docker-actions-toolkit');
const resp: httpm.HttpClientResponse = await http.get(version.releasesURL);
const body = await resp.readBody();
const statusCode = resp.message.statusCode || 500;
if (statusCode >= 400) {
throw new Error(`Failed to get Buildx releases from ${version.releasesURL} with status code ${statusCode}: ${body}`);
}
const releases = <Record<string, GitHubRelease>>JSON.parse(body);
public static async getRelease(version: DownloadVersion, githubToken?: string): Promise<GitHubRelease> {
const github = new GitHub({token: githubToken});
const releases = await github.releases('Buildx', version.contentOpts);
if (!releases[version.version]) {
throw new Error(`Cannot find Buildx release ${version.version} in ${version.releasesURL}`);
throw new Error(`Cannot find Buildx release ${version.version} in releases JSON`);
}
return releases[version.version];
}

View File

@@ -64,8 +64,12 @@ export class Cache {
if (!this.ghaNoCache && cache.isFeatureAvailable()) {
if (skipState) {
core.debug(`Cache.save caching ${this.ghaCacheKey} to GitHub Actions cache`);
await cache.saveCache([this.cacheDir], this.ghaCacheKey);
try {
core.debug(`Cache.save caching ${this.ghaCacheKey} to GitHub Actions cache`);
await cache.saveCache([this.cacheDir], this.ghaCacheKey);
} catch (e) {
core.warning(`Failed to save cache: ${e}`);
}
} else {
core.debug(`Cache.save sending ${this.ghaCacheKey} to post state`);
core.saveState(
@@ -82,26 +86,28 @@ export class Cache {
}
public async find(): Promise<string> {
let htcPath = tc.find(this.opts.htcName, this.opts.htcVersion, this.platform());
if (htcPath) {
core.info(`Restored from hosted tool cache ${htcPath}`);
return this.copyToCache(`${htcPath}/${this.opts.cacheFile}`);
}
if (!this.ghaNoCache && cache.isFeatureAvailable()) {
core.debug(`GitHub Actions cache feature available`);
if (await cache.restoreCache([this.cacheDir], this.ghaCacheKey)) {
core.info(`Restored ${this.ghaCacheKey} from GitHub Actions cache`);
htcPath = await tc.cacheDir(this.cacheDir, this.opts.htcName, this.opts.htcVersion, this.platform());
core.info(`Cached to hosted tool cache ${htcPath}`);
try {
let htcPath = tc.find(this.opts.htcName, this.opts.htcVersion, this.platform());
if (htcPath) {
core.info(`Restored from hosted tool cache ${htcPath}`);
return this.copyToCache(`${htcPath}/${this.opts.cacheFile}`);
}
} else if (this.ghaNoCache) {
core.info(`GitHub Actions cache disabled`);
} else {
core.info(`GitHub Actions cache feature not available`);
if (!this.ghaNoCache && cache.isFeatureAvailable()) {
core.debug(`GitHub Actions cache feature available`);
if (await cache.restoreCache([this.cacheDir], this.ghaCacheKey)) {
core.info(`Restored ${this.ghaCacheKey} from GitHub Actions cache`);
htcPath = await tc.cacheDir(this.cacheDir, this.opts.htcName, this.opts.htcVersion, this.platform());
core.info(`Cached to hosted tool cache ${htcPath}`);
return this.copyToCache(`${htcPath}/${this.opts.cacheFile}`);
}
} else if (this.ghaNoCache) {
core.info(`GitHub Actions cache disabled`);
} else {
core.info(`GitHub Actions cache feature not available`);
}
} catch (e) {
core.warning(`Failed to restore cache: ${e}`);
}
return '';
}
@@ -120,13 +126,17 @@ export class Cache {
if (!cacheState.dir || !cacheState.key) {
throw new Error(`Invalid cache post state: ${state}`);
}
core.info(`Caching ${cacheState.key} to GitHub Actions cache`);
await cache.saveCache([cacheState.dir], cacheState.key);
try {
core.info(`Caching ${cacheState.key} to GitHub Actions cache`);
await cache.saveCache([cacheState.dir], cacheState.key);
} catch (e) {
core.warning(`Failed to save cache: ${e}`);
}
return cacheState;
}
private copyToCache(file: string): string {
core.debug(`Copying ${file} to ${this.cachePath}`);
core.info(`Copying ${file} to ${this.cachePath}`);
fs.copyFileSync(file, this.cachePath);
return this.cachePath;
}

View File

@@ -18,27 +18,30 @@ import fs from 'fs';
import os from 'os';
import path from 'path';
import * as core from '@actions/core';
import * as httpm from '@actions/http-client';
import * as tc from '@actions/tool-cache';
import * as semver from 'semver';
import * as util from 'util';
import {Cache} from '../cache';
import {Context} from '../context';
import {Docker} from '../docker/docker';
import {GitHub} from '../github';
import {DownloadVersion} from '../types/compose/compose';
import {GitHubRelease} from '../types/github';
import {Docker} from '../docker/docker';
export interface InstallOpts {
standalone?: boolean;
githubToken?: string;
}
export class Install {
private readonly _standalone: boolean | undefined;
private readonly standalone: boolean | undefined;
private readonly githubToken: string | undefined;
constructor(opts?: InstallOpts) {
this._standalone = opts?.standalone;
this.standalone = opts?.standalone;
this.githubToken = opts?.githubToken || process.env.GITHUB_TOKEN;
}
/*
@@ -51,7 +54,7 @@ export class Install {
const version: DownloadVersion = await Install.getDownloadVersion(v);
core.debug(`Install.download version: ${version.version}`);
const release: GitHubRelease = await Install.getRelease(version);
const release: GitHubRelease = await Install.getRelease(version, this.githubToken);
core.debug(`Install.download release tag name: ${release.tag_name}`);
const vspec = await this.vspec(release.tag_name);
@@ -79,7 +82,7 @@ export class Install {
const downloadURL = util.format(version.downloadURL, vspec, this.filename());
core.info(`Downloading ${downloadURL}`);
const htcDownloadPath = await tc.downloadTool(downloadURL);
const htcDownloadPath = await tc.downloadTool(downloadURL, undefined, this.githubToken);
core.debug(`Install.download htcDownloadPath: ${htcDownloadPath}`);
const cacheSavePath = await installCache.save(htcDownloadPath);
@@ -129,7 +132,7 @@ export class Install {
}
private async isStandalone(): Promise<boolean> {
const standalone = this._standalone ?? !(await Docker.isAvailable());
const standalone = this.standalone ?? !(await Docker.isAvailable());
core.debug(`Install.isStandalone: ${standalone}`);
return standalone;
}
@@ -183,7 +186,12 @@ export class Install {
key: repoKey,
version: version,
downloadURL: 'https://github.com/docker/compose/releases/download/v%s/%s',
releasesURL: 'https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/compose-releases.json'
contentOpts: {
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/compose-releases.json'
}
};
}
case 'cloud': {
@@ -191,7 +199,12 @@ export class Install {
key: repoKey,
version: version,
downloadURL: 'https://github.com/docker/compose-desktop/releases/download/v%s/%s',
releasesURL: 'https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/compose-lab-releases.json'
contentOpts: {
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/compose-lab-releases.json'
}
};
}
default: {
@@ -200,17 +213,11 @@ export class Install {
}
}
public static async getRelease(version: DownloadVersion): Promise<GitHubRelease> {
const http: httpm.HttpClient = new httpm.HttpClient('docker-actions-toolkit');
const resp: httpm.HttpClientResponse = await http.get(version.releasesURL);
const body = await resp.readBody();
const statusCode = resp.message.statusCode || 500;
if (statusCode >= 400) {
throw new Error(`Failed to get Compose releases from ${version.releasesURL} with status code ${statusCode}: ${body}`);
}
const releases = <Record<string, GitHubRelease>>JSON.parse(body);
public static async getRelease(version: DownloadVersion, githubToken?: string): Promise<GitHubRelease> {
const github = new GitHub({token: githubToken});
const releases = await github.releases('Compose', version.contentOpts);
if (!releases[version.version]) {
throw new Error(`Cannot find Compose release ${version.version} in ${version.releasesURL}`);
throw new Error(`Cannot find Compose release ${version.version} in releases JSON`);
}
return releases[version.version];
}

160
src/cosign/cosign.ts Normal file
View File

@@ -0,0 +1,160 @@
/**
* Copyright 2025 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 * as core from '@actions/core';
import {BUNDLE_V03_MEDIA_TYPE, SerializedBundle} from '@sigstore/bundle';
import {Exec} from '../exec';
import * as semver from 'semver';
import {MEDIATYPE_EMPTY_JSON_V1} from '../types/oci/mediatype';
export interface CosignOpts {
binPath?: string;
}
export interface CosignCommandResult {
bundle?: SerializedBundle;
signatureManifestDigest?: string;
errors?: Array<CosignCommandError>;
}
export interface CosignCommandError {
code: string;
message: string;
detail: string;
}
export class Cosign {
private readonly binPath: string;
private _version: string;
private _versionOnce: boolean;
constructor(opts?: CosignOpts) {
this.binPath = opts?.binPath || 'cosign';
this._version = '';
this._versionOnce = false;
}
public async isAvailable(): Promise<boolean> {
const ok: boolean = await Exec.getExecOutput(this.binPath, [], {
ignoreReturnCode: true,
silent: true
})
.then(res => {
if (res.stderr.length > 0 && res.exitCode != 0) {
core.debug(`Cosign.isAvailable cmd err: ${res.stderr.trim()}`);
return false;
}
return res.exitCode == 0;
})
.catch(error => {
core.debug(`Cosign.isAvailable error: ${error}`);
return false;
});
core.debug(`Cosign.isAvailable: ${ok}`);
return ok;
}
public async version(): Promise<string> {
if (this._versionOnce) {
return this._version;
}
this._versionOnce = true;
this._version = await Exec.getExecOutput(this.binPath, ['version', '--json'], {
ignoreReturnCode: true,
silent: true
}).then(res => {
if (res.stderr.length > 0 && res.exitCode != 0) {
throw new Error(res.stderr.trim());
}
return JSON.parse(res.stdout.trim()).gitVersion;
});
return this._version;
}
public async printVersion() {
await Exec.exec(this.binPath, ['version', '--json'], {
failOnStdErr: false
});
}
public async versionSatisfies(range: string, version?: string): Promise<boolean> {
const ver = version ?? (await this.version());
if (!ver) {
core.debug(`Cosign.versionSatisfies false: undefined version`);
return false;
}
const res = semver.satisfies(ver, range) || /^[0-9a-f]{7}$/.exec(ver) !== null;
core.debug(`Cosign.versionSatisfies ${ver} statisfies ${range}: ${res}`);
return res;
}
public static parseCommandOutput(logs: string): CosignCommandResult {
let signatureManifestDigest: string | undefined;
let signatureManifestFallbackDigest: string | undefined;
let bundlePayload: SerializedBundle | undefined;
let errors: Array<CosignCommandError> | undefined;
for (const rawLine of logs.split(/\r?\n/)) {
const line = rawLine.trim();
if (!line.startsWith('{') || !line.endsWith('}')) {
continue;
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
let obj: any;
try {
obj = JSON.parse(line);
} catch {
continue;
}
if (obj && Array.isArray(obj.errors) && obj.errors.length > 0) {
errors = obj.errors;
}
// signature manifest digest
if (!signatureManifestDigest && obj && Array.isArray(obj.manifests) && obj.manifests.length > 0) {
const m0 = obj.manifests[0];
if (m0?.artifactType === BUNDLE_V03_MEDIA_TYPE && typeof m0.digest === 'string') {
signatureManifestDigest = m0.digest;
} else if (m0?.artifactType === MEDIATYPE_EMPTY_JSON_V1 && typeof m0.digest === 'string') {
signatureManifestFallbackDigest = m0.digest;
}
}
// signature payload
if (!bundlePayload && obj && obj.mediaType === BUNDLE_V03_MEDIA_TYPE) {
bundlePayload = obj as SerializedBundle;
}
if (bundlePayload && signatureManifestDigest) {
break;
}
}
if (!errors && !bundlePayload) {
throw new Error(`Cannot find signature bundle from cosign command output: ${logs}`);
}
return {
bundle: bundlePayload,
signatureManifestDigest: signatureManifestDigest || signatureManifestFallbackDigest,
errors: errors
};
}
}

61
src/cosign/dockerfile.ts Normal file
View File

@@ -0,0 +1,61 @@
/**
* Copyright 2025 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.
*/
export const dockerfileContent = `
# syntax=docker/dockerfile:1
ARG GO_VERSION="1.24"
ARG ALPINE_VERSION="3.22"
FROM --platform=$BUILDPLATFORM tonistiigi/xx:1.7.0 AS xx
FROM --platform=$BUILDPLATFORM golang:\${GO_VERSION}-alpine\${ALPINE_VERSION} AS builder-base
COPY --from=xx / /
RUN apk add --no-cache git
ENV GOTOOLCHAIN=auto
ENV CGO_ENABLED=0
WORKDIR /src
RUN --mount=type=cache,target=/go/pkg/mod \\
--mount=type=bind,source=go.mod,target=go.mod \\
--mount=type=bind,source=go.sum,target=go.sum \\
go mod download
FROM builder-base AS version
RUN --mount=type=bind,target=. <<'EOT'
git rev-parse HEAD 2>/dev/null || {
echo >&2 "Failed to get git revision, make sure --build-arg BUILDKIT_CONTEXT_KEEP_GIT_DIR=1 is set when building from Git directly"
exit 1
}
set -ex
export PKG=sigs.k8s.io BUILDDATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") TREESTATE=$(if ! git diff --no-ext-diff --quiet --exit-code; then echo dirty; else echo clean; fi) VERSION=$(git describe --match 'v[0-9]*' --dirty='.m' --always --tags) COMMIT=$(git rev-parse HEAD)$(if ! git diff --no-ext-diff --quiet --exit-code; then echo .m; fi);
echo "-X \${PKG}/release-utils/version.gitVersion=\${VERSION} -X \${PKG}/release-utils/version.gitCommit=\${COMMIT} -X \${PKG}/release-utils/version.gitTreeState=\${TREESTATE} -X \${PKG}/release-utils/version.buildDate=\${BUILDDATE}" > /tmp/.ldflags;
echo -n "\${VERSION}" > /tmp/.version;
EOT
FROM builder-base AS builder
ARG TARGETPLATFORM
RUN --mount=type=bind,target=. \\
--mount=type=cache,target=/root/.cache,id=cosign-$TARGETPLATFORM \\
--mount=source=/tmp/.ldflags,target=/tmp/.ldflags,from=version \\
--mount=type=cache,target=/go/pkg/mod <<EOT
set -ex
xx-go build -trimpath -ldflags "-s -w $(cat /tmp/.ldflags)" -o /out/cosign ./cmd/cosign
xx-verify --static /out/cosign
EOT
FROM scratch
COPY --from=builder /out /
`;

248
src/cosign/install.ts Normal file
View File

@@ -0,0 +1,248 @@
/**
* Copyright 2025 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 fs from 'fs';
import os from 'os';
import path from 'path';
import * as core from '@actions/core';
import * as tc from '@actions/tool-cache';
import * as semver from 'semver';
import * as util from 'util';
import {Buildx} from '../buildx/buildx';
import {Cache} from '../cache';
import {Context} from '../context';
import {Exec} from '../exec';
import {Git} from '../git';
import {GitHub} from '../github';
import {Util} from '../util';
import {DownloadVersion} from '../types/cosign/cosign';
import {GitHubRelease} from '../types/github';
import {dockerfileContent} from './dockerfile';
export interface InstallOpts {
githubToken?: string;
buildx?: Buildx;
}
export class Install {
private readonly githubToken: string | undefined;
private readonly buildx: Buildx;
constructor(opts?: InstallOpts) {
this.githubToken = opts?.githubToken || process.env.GITHUB_TOKEN;
this.buildx = opts?.buildx || new Buildx();
}
public async download(v: string, ghaNoCache?: boolean, skipState?: boolean): Promise<string> {
const version: DownloadVersion = await Install.getDownloadVersion(v);
core.debug(`Install.download version: ${version.version}`);
const release: GitHubRelease = await Install.getRelease(version, this.githubToken);
core.debug(`Install.download release tag name: ${release.tag_name}`);
const vspec = await this.vspec(release.tag_name);
core.debug(`Install.download vspec: ${vspec}`);
const c = semver.clean(vspec) || '';
if (!semver.valid(c)) {
throw new Error(`Invalid Cosign version "${vspec}".`);
}
const installCache = new Cache({
htcName: 'cosign-dl-bin',
htcVersion: vspec,
baseCacheDir: path.join(os.homedir(), '.bin'),
cacheFile: os.platform() == 'win32' ? 'cosign.exe' : 'cosign',
ghaNoCache: ghaNoCache
});
const cacheFoundPath = await installCache.find();
if (cacheFoundPath) {
core.info(`Cosign binary found in ${cacheFoundPath}`);
return cacheFoundPath;
}
const downloadURL = util.format(version.downloadURL, vspec, this.filename());
core.info(`Downloading ${downloadURL}`);
const htcDownloadPath = await tc.downloadTool(downloadURL, undefined, this.githubToken);
core.debug(`Install.download htcDownloadPath: ${htcDownloadPath}`);
const cacheSavePath = await installCache.save(htcDownloadPath, skipState);
core.info(`Cached to ${cacheSavePath}`);
return cacheSavePath;
}
public async build(gitContext: string, ghaNoCache?: boolean, skipState?: boolean): Promise<string> {
const vspec = await this.vspec(gitContext);
core.debug(`Install.build vspec: ${vspec}`);
const installCache = new Cache({
htcName: 'cosign-build-bin',
htcVersion: vspec,
baseCacheDir: path.join(os.homedir(), '.bin'),
cacheFile: os.platform() == 'win32' ? 'cosign.exe' : 'cosign',
ghaNoCache: ghaNoCache
});
const cacheFoundPath = await installCache.find();
if (cacheFoundPath) {
core.info(`Cosign binary found in ${cacheFoundPath}`);
return cacheFoundPath;
}
const outputDir = path.join(Context.tmpDir(), 'cosign-build-cache');
const buildCmd = await this.buildCommand(gitContext, outputDir);
const buildBinPath = await Exec.getExecOutput(buildCmd.command, buildCmd.args, {
ignoreReturnCode: true,
input: Buffer.from(dockerfileContent)
}).then(res => {
if (res.stderr.length > 0 && res.exitCode != 0) {
throw new Error(`build failed with: ${res.stderr.match(/(.*)\s*$/)?.[0]?.trim() ?? 'unknown error'}`);
}
return `${outputDir}/cosign`;
});
const cacheSavePath = await installCache.save(buildBinPath, skipState);
core.info(`Cached to ${cacheSavePath}`);
return cacheSavePath;
}
public async install(binPath: string, dest?: string): Promise<string> {
dest = dest || Context.tmpDir();
const binDir = path.join(dest, 'cosign-bin');
if (!fs.existsSync(binDir)) {
fs.mkdirSync(binDir, {recursive: true});
}
const binName: string = os.platform() == 'win32' ? 'cosign.exe' : 'cosign';
const cosignPath: string = path.join(binDir, binName);
fs.copyFileSync(binPath, cosignPath);
core.info('Fixing perms');
fs.chmodSync(cosignPath, '0755');
core.addPath(binDir);
core.info('Added Cosign to PATH');
core.info(`Binary path: ${cosignPath}`);
return cosignPath;
}
private async buildCommand(gitContext: string, outputDir: string): Promise<{args: Array<string>; command: string}> {
const buildxStandaloneFound = await new Buildx({standalone: true}).isAvailable();
const buildxPluginFound = await new Buildx({standalone: false}).isAvailable();
let buildStandalone = false;
if ((await this.buildx.isStandalone()) && buildxStandaloneFound) {
core.debug(`Install.buildCommand: Buildx standalone found, build with it`);
buildStandalone = true;
} else if (!(await this.buildx.isStandalone()) && buildxPluginFound) {
core.debug(`Install.buildCommand: Buildx plugin found, build with it`);
buildStandalone = false;
} else if (buildxStandaloneFound) {
core.debug(`Install.buildCommand: Buildx plugin not found, but standalone found so trying to build with it`);
buildStandalone = true;
} else if (buildxPluginFound) {
core.debug(`Install.buildCommand: Buildx standalone not found, but plugin found so trying to build with it`);
buildStandalone = false;
} else {
throw new Error(`Neither buildx standalone or plugin have been found to build from ref ${gitContext}`);
}
const args = ['build', '--platform', 'local', '--build-arg', 'BUILDKIT_CONTEXT_KEEP_GIT_DIR=1', '--output', `type=local,dest=${outputDir}`];
if (process.env.GIT_AUTH_TOKEN) {
args.push('--secret', 'id=GIT_AUTH_TOKEN');
}
args.push('-f-', gitContext);
// prettier-ignore
return await new Buildx({standalone: buildStandalone}).getCommand(args);
}
private filename(): string {
let arch: string;
switch (os.arch()) {
case 'x64': {
arch = 'amd64';
break;
}
case 'ppc64': {
arch = 'ppc64le';
break;
}
default: {
arch = os.arch();
break;
}
}
const platform: string = os.platform() == 'win32' ? 'windows' : os.platform();
const ext: string = os.platform() == 'win32' ? '.exe' : '';
return util.format('cosign-%s-%s%s', platform, arch, ext);
}
private async vspec(versionOrRef: string): Promise<string> {
if (!Util.isValidRef(versionOrRef)) {
const v = versionOrRef.replace(/^v+|v+$/g, '');
core.info(`Use ${v} version spec cache key for ${versionOrRef}`);
return v;
}
// eslint-disable-next-line prefer-const
let [baseURL, ref] = versionOrRef.split('#');
if (ref.length == 0) {
ref = 'master';
}
let sha: string;
if (ref.match(/^[0-9a-fA-F]{40}$/)) {
sha = ref;
} else {
sha = await Git.remoteSha(baseURL, ref, process.env.GIT_AUTH_TOKEN);
}
const [owner, repo] = baseURL.substring('https://github.com/'.length).split('/');
const key = `${owner}/${Util.trimSuffix(repo, '.git')}/${sha}`;
const hash = Util.hash(key);
core.info(`Use ${hash} version spec cache key for ${key}`);
return hash;
}
public static async getDownloadVersion(v: string): Promise<DownloadVersion> {
return {
version: v,
downloadURL: 'https://github.com/sigstore/cosign/releases/download/v%s/%s',
contentOpts: {
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/cosign-releases.json'
}
};
}
public static async getRelease(version: DownloadVersion, githubToken?: string): Promise<GitHubRelease> {
const github = new GitHub({token: githubToken});
const releases = await github.releases('Cosign', version.contentOpts);
if (!releases[version.version]) {
throw new Error(`Cannot find Cosign release ${version.version} in releases JSON`);
}
return releases[version.version];
}
}

View File

@@ -140,7 +140,10 @@ Get-WinEvent -ea SilentlyContinue \`
`;
export const limaYamlData = `
# Source: https://github.com/lima-vm/lima/blob/master/templates/docker-rootful.yaml
# Source:
# - https://github.com/lima-vm/lima/blob/master/templates/docker-rootful.yaml
# - https://github.com/lima-vm/lima/blob/master/templates/_images/ubuntu-lts.yaml
# - https://github.com/lima-vm/lima/blob/master/templates/_images/ubuntu-24.04.yaml
# VM type: "qemu" or "vz" (on macOS 13 and later).
# The vmType can be specified only on creating the instance.
@@ -162,24 +165,24 @@ images:
arch: "{{arch}}"
digest: "{{digest}}"
{{/each}}
- location: "https://cloud-images.ubuntu.com/releases/24.04/release-20250228/ubuntu-24.04-server-cloudimg-amd64.img"
- location: "https://cloud-images.ubuntu.com/releases/noble/release-20250704/ubuntu-24.04-server-cloudimg-amd64.img"
arch: "x86_64"
digest: "sha256:a3aea891c930ee0c762077b963834f5e083eb8102574f1e4dfc9e6e4c1c73ac0"
digest: "sha256:f1652d29d497fb7c623433705c9fca6525d1311b11294a0f495eed55c7639d1f"
kernel:
location: "https://cloud-images.ubuntu.com/releases/24.04/release-20250228/unpacked/ubuntu-24.04-server-cloudimg-amd64-vmlinuz-generic"
digest: "sha256:2d9f30959f01675fd28aa1c2fe8934728e46766d04ecfad2d206823696a3f830"
location: "https://cloud-images.ubuntu.com/releases/noble/release-20250704/unpacked/ubuntu-24.04-server-cloudimg-amd64-vmlinuz-generic"
digest: "sha256:67cd9af083515de2101de032b49a64fc4b65778e5383df6ef21cf788a3f4688e"
cmdline: "root=LABEL=cloudimg-rootfs ro console=tty1 console=ttyAMA0 no_timer_check"
initrd:
location: "https://cloud-images.ubuntu.com/releases/24.04/release-20250228/unpacked/ubuntu-24.04-server-cloudimg-amd64-initrd-generic"
digest: "sha256:231352d027aeebf0bb7dca281dfebae894c86e789c7377788d3c2c149471caa3"
- location: "https://cloud-images.ubuntu.com/releases/24.04/release-20250228/ubuntu-24.04-server-cloudimg-arm64.img"
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"
arch: "aarch64"
digest: "sha256:278a0e8475008673d9d3da10ae66a7b1a3dda059746b83d749eca386a5670bd4"
digest: "sha256:bbecbb88100ee65497927ed0da247ba15af576a8855004182cf3c87265e25d35"
# Fallback to the latest release image.
# Hint: run \`limactl prune\` to invalidate the cache
- location: "https://cloud-images.ubuntu.com/releases/24.04/release/ubuntu-24.04-server-cloudimg-amd64.img"
- location: https://cloud-images.ubuntu.com/releases/noble/release/ubuntu-24.04-server-cloudimg-amd64.img
arch: "x86_64"
- location: "https://cloud-images.ubuntu.com/releases/24.04/release/ubuntu-24.04-server-cloudimg-arm64.img"
- location: https://cloud-images.ubuntu.com/releases/noble/release/ubuntu-24.04-server-cloudimg-arm64.img
arch: "aarch64"
# CPUs
@@ -290,18 +293,25 @@ probes:
#!/bin/bash
set -eux -o pipefail
# Don't check for docker CLI as it's not installed in the VM (only on the host)
if ! timeout 30s bash -c "until pgrep dockerd; do sleep 3; done"; then
if ! timeout 60s bash -c "until pgrep dockerd; do sleep 3; done"; then
echo >&2 "dockerd is not running"
exit 1
fi
hint: See "/var/log/cloud-init-output.log". in the guest
hostResolver:
# Don't use local system resolver
enabled: false
# hostResolver.hosts requires lima 0.8.3 or later. Names defined here will also
# resolve inside containers, and not just inside the VM itself.
hosts:
host.docker.internal: host.lima.internal
# Use custom DNS servers instead of the host's DNS settings
dns:
- 1.1.1.1
- 1.0.0.1
portForwards:
- guestSocket: "/var/run/docker.sock"
hostSocket: "{{dockerSock}}"

View File

@@ -22,16 +22,17 @@ import path from 'path';
import retry from 'async-retry';
import * as handlebars from 'handlebars';
import * as core from '@actions/core';
import * as httpm from '@actions/http-client';
import * as io from '@actions/io';
import * as tc from '@actions/tool-cache';
import {Context} from '../context';
import {Docker} from './docker';
import {Exec} from '../exec';
import {GitHub} from '../github';
import {Regctl} from '../regclient/regctl';
import {Undock} from '../undock/undock';
import {Exec} from '../exec';
import {Util} from '../util';
import {limaYamlData, dockerServiceLogsPs1, setupDockerWinPs1} from './assets';
import {GitHubRelease} from '../types/github';
@@ -62,6 +63,8 @@ export interface InstallOpts {
regctl?: Regctl;
undock?: Undock;
githubToken?: string;
}
interface LimaImage {
@@ -79,6 +82,7 @@ export class Install {
private readonly localTCPPort?: number;
private readonly regctl: Regctl;
private readonly undock: Undock;
private readonly githubToken?: string;
private _version: string | undefined;
private _toolDir: string | undefined;
@@ -100,6 +104,7 @@ export class Install {
this.localTCPPort = opts.localTCPPort;
this.regctl = opts.regctl || new Regctl();
this.undock = opts.undock || new Undock();
this.githubToken = opts.githubToken || process.env.GITHUB_TOKEN;
}
get toolDir(): string {
@@ -203,8 +208,8 @@ export class Install {
}
private async downloadSourceArchive(component: 'docker' | 'docker-rootless-extras', src: InstallSourceArchive): Promise<string> {
const release: GitHubRelease = await Install.getRelease(src.version);
this._version = release.tag_name.replace(/^v+|v+$/g, '');
const release: GitHubRelease = await Install.getRelease(src.version, this.githubToken);
this._version = release.tag_name.replace(/^(docker-)?v+/, '');
core.debug(`docker.Install.downloadSourceArchive version: ${this._version}`);
const downloadURL = this.downloadURL(component, this._version, src.channel);
@@ -326,7 +331,7 @@ export class Install {
};
await core.group('Starting lima instance', async () => {
const limaStartArgs = ['start', `--name=${this.limaInstanceName}`];
const limaStartArgs = ['start', `--name=${this.limaInstanceName}`, `--timeout=${process.env.LIMA_START_TIMEOUT ?? '15m'}`];
if (process.env.LIMA_START_ARGS) {
limaStartArgs.push(process.env.LIMA_START_ARGS);
}
@@ -418,7 +423,7 @@ export class Install {
// avoid killing it when the action finishes running. Even if detached,
// we also need to run dockerd in a subshell and unref the process so
// GitHub Action doesn't wait for it to finish.
`${sudo} env "PATH=$PATH" ${bashPath} << EOF
`${sudo} env "PATH=$PATH" "XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR" ${bashPath} << EOF
( ${cmd} 2>&1 | tee "${this.runDir}/dockerd.log" ) &
EOF`,
[],
@@ -693,19 +698,17 @@ EOF`,
});
}
public static async getRelease(version: string): Promise<GitHubRelease> {
const url = `https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/docker-releases.json`;
const http: httpm.HttpClient = new httpm.HttpClient('docker-actions-toolkit');
const resp: httpm.HttpClientResponse = await http.get(url);
const body = await resp.readBody();
const statusCode = resp.message.statusCode || 500;
if (statusCode >= 400) {
throw new Error(`Failed to get Docker release ${version} from ${url} with status code ${statusCode}: ${body}`);
}
const releases = <Record<string, GitHubRelease>>JSON.parse(body);
public static async getRelease(version: string, githubToken?: string): Promise<GitHubRelease> {
const github = new GitHub({token: githubToken});
const releases = await github.releases('Docker', {
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/docker-releases.json'
});
if (!releases[version]) {
if (!releases['v' + version]) {
throw new Error(`Cannot find Docker release ${version} in ${url}`);
throw new Error(`Cannot find Docker release ${version} in releases JSON`);
}
return releases['v' + version];
}

View File

@@ -31,29 +31,47 @@ import {SummaryTableCell} from '@actions/core/lib/summary';
import * as github from '@actions/github';
import {GitHub as Octokit} from '@actions/github/lib/utils';
import {Context} from '@actions/github/lib/context';
import * as httpm from '@actions/http-client';
import {TransferProgressEvent} from '@azure/core-http';
import {BlobClient, BlobHTTPHeaders} from '@azure/storage-blob';
import {jwtDecode, JwtPayload} from 'jwt-decode';
import {Util} from './util';
import {BuildSummaryOpts, GitHubActionsRuntimeToken, GitHubActionsRuntimeTokenAC, GitHubRepo, UploadArtifactOpts, UploadArtifactResponse} from './types/github';
import {BuildSummaryOpts, GitHubActionsRuntimeToken, GitHubActionsRuntimeTokenAC, GitHubContentOpts, GitHubRelease, GitHubRepo, UploadArtifactOpts, UploadArtifactResponse} from './types/github';
export interface GitHubOpts {
token?: string;
}
export class GitHub {
private readonly githubToken?: string;
public readonly octokit: InstanceType<typeof Octokit>;
constructor(opts?: GitHubOpts) {
this.octokit = github.getOctokit(`${opts?.token}`);
this.githubToken = opts?.token || process.env.GITHUB_TOKEN;
this.octokit = github.getOctokit(`${this.githubToken}`);
}
public repoData(): Promise<GitHubRepo> {
return this.octokit.rest.repos.get({...github.context.repo}).then(response => response.data as GitHubRepo);
}
public async releases(name: string, opts: GitHubContentOpts): Promise<Record<string, GitHubRelease>> {
const url = `https://raw.githubusercontent.com/${opts.owner}/${opts.repo}/${opts.ref}/${opts.path}`;
const http: httpm.HttpClient = new httpm.HttpClient('docker-actions-toolkit');
// prettier-ignore
const httpResp: httpm.HttpClientResponse = await http.get(url, this.githubToken ? {
Authorization: `token ${this.githubToken}`
} : undefined);
const dt = await httpResp.readBody();
const statusCode = httpResp.message.statusCode || 500;
if (statusCode >= 400) {
throw new Error(`Failed to get ${name} releases from ${url} with status code ${statusCode}: ${dt}`);
}
return <Record<string, GitHubRelease>>JSON.parse(dt);
}
static get context(): Context {
return github.context;
}

View File

@@ -18,18 +18,28 @@ import fs from 'fs';
import os from 'os';
import path from 'path';
import * as core from '@actions/core';
import * as httpm from '@actions/http-client';
import * as tc from '@actions/tool-cache';
import * as semver from 'semver';
import * as util from 'util';
import {Cache} from '../cache';
import {Context} from '../context';
import {GitHub} from '../github';
import {GitHubRelease} from '../types/github';
import {DownloadVersion} from '../types/regclient/regclient';
export interface InstallOpts {
githubToken?: string;
}
export class Install {
private readonly githubToken: string | undefined;
constructor(opts?: InstallOpts) {
this.githubToken = opts?.githubToken || process.env.GITHUB_TOKEN;
}
/*
* Download regclient binary from GitHub release
* @param v: version semver version or latest
@@ -40,7 +50,7 @@ export class Install {
const version: DownloadVersion = await Install.getDownloadVersion(v);
core.debug(`Install.download version: ${version.version}`);
const release: GitHubRelease = await Install.getRelease(version);
const release: GitHubRelease = await Install.getRelease(version, this.githubToken);
core.debug(`Install.download release tag name: ${release.tag_name}`);
const vspec = await this.vspec(release.tag_name);
@@ -68,7 +78,7 @@ export class Install {
const downloadURL = util.format(version.downloadURL, vspec, this.filename());
core.info(`Downloading ${downloadURL}`);
const htcDownloadPath = await tc.downloadTool(downloadURL);
const htcDownloadPath = await tc.downloadTool(downloadURL, undefined, this.githubToken);
core.debug(`Install.download htcDownloadPath: ${htcDownloadPath}`);
const cacheSavePath = await installCache.save(htcDownloadPath);
@@ -134,21 +144,20 @@ export class Install {
return {
version: v,
downloadURL: 'https://github.com/regclient/regclient/releases/download/v%s/%s',
releasesURL: 'https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/regclient-releases.json'
contentOpts: {
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/regclient-releases.json'
}
};
}
public static async getRelease(version: DownloadVersion): Promise<GitHubRelease> {
const http: httpm.HttpClient = new httpm.HttpClient('docker-actions-toolkit');
const resp: httpm.HttpClientResponse = await http.get(version.releasesURL);
const body = await resp.readBody();
const statusCode = resp.message.statusCode || 500;
if (statusCode >= 400) {
throw new Error(`Failed to get regclient releases from ${version.releasesURL} with status code ${statusCode}: ${body}`);
}
const releases = <Record<string, GitHubRelease>>JSON.parse(body);
public static async getRelease(version: DownloadVersion, githubToken?: string): Promise<GitHubRelease> {
const github = new GitHub({token: githubToken});
const releases = await github.releases('regclient', version.contentOpts);
if (!releases[version.version]) {
throw new Error(`Cannot find regclient release ${version.version} in ${version.releasesURL}`);
throw new Error(`Cannot find regclient release ${version.version} in releases JSON`);
}
return releases[version.version];
}

393
src/sigstore/sigstore.ts Normal file
View File

@@ -0,0 +1,393 @@
/**
* Copyright 2025 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 {X509Certificate} from 'crypto';
import fs from 'fs';
import path from 'path';
import * as core from '@actions/core';
import {bundleFromJSON, bundleToJSON} from '@sigstore/bundle';
import {Artifact, Bundle, CIContextProvider, DSSEBundleBuilder, FulcioSigner, RekorWitness, TSAWitness, Witness} from '@sigstore/sign';
import {Cosign} from '../cosign/cosign';
import {Exec} from '../exec';
import {GitHub} from '../github';
import {ImageTools} from '../buildx/imagetools';
import {MEDIATYPE_PAYLOAD as INTOTO_MEDIATYPE_PAYLOAD, Subject} from '../types/intoto/intoto';
import {
Endpoints,
FULCIO_URL,
ParsedBundle,
REKOR_URL,
SEARCH_URL,
SignAttestationManifestsOpts,
SignAttestationManifestsResult,
SignProvenanceBlobsOpts,
SignProvenanceBlobsResult,
TSASERVER_URL,
VerifySignedArtifactsOpts,
VerifySignedArtifactsResult,
VerifySignedManifestsOpts,
VerifySignedManifestsResult
} from '../types/sigstore/sigstore';
export interface SigstoreOpts {
cosign?: Cosign;
imageTools?: ImageTools;
}
export class Sigstore {
private readonly cosign: Cosign;
private readonly imageTools: ImageTools;
constructor(opts?: SigstoreOpts) {
this.cosign = opts?.cosign || new Cosign();
this.imageTools = opts?.imageTools || new ImageTools();
}
public async signAttestationManifests(opts: SignAttestationManifestsOpts): Promise<Record<string, SignAttestationManifestsResult>> {
if (!(await this.cosign.isAvailable())) {
throw new Error('Cosign is required to sign attestation manifests');
}
const result: Record<string, SignAttestationManifestsResult> = {};
try {
if (!process.env.ACTIONS_ID_TOKEN_REQUEST_URL) {
throw new Error('missing "id-token" permission. Please add "permissions: id-token: write" to your workflow.');
}
const endpoints = this.signingEndpoints(opts.noTransparencyLog);
core.info(`Using Sigstore signing endpoint: ${endpoints.fulcioURL}`);
const noTransparencyLog = Sigstore.noTransparencyLog(opts.noTransparencyLog);
for (const imageName of opts.imageNames) {
const attestationDigests = await this.imageTools.attestationDigests(`${imageName}@${opts.imageDigest}`);
for (const attestationDigest of attestationDigests) {
const attestationRef = `${imageName}@${attestationDigest}`;
await core.group(`Signing attestation manifest ${attestationRef}`, async () => {
// prettier-ignore
const cosignArgs = [
'--verbose',
'sign',
'--yes',
'--oidc-provider', 'github-actions',
'--registry-referrers-mode', 'oci-1-1',
'--new-bundle-format',
'--use-signing-config'
];
if (noTransparencyLog) {
cosignArgs.push('--tlog-upload=false');
}
core.info(`[command]cosign ${[...cosignArgs, attestationRef].join(' ')}`);
const execRes = await Exec.getExecOutput('cosign', [...cosignArgs, attestationRef], {
ignoreReturnCode: true,
silent: true,
env: Object.assign({}, process.env, {
COSIGN_EXPERIMENTAL: '1'
}) as {
[key: string]: string;
}
});
const signResult = Cosign.parseCommandOutput(execRes.stderr.trim());
if (execRes.exitCode != 0) {
if (signResult.errors && signResult.errors.length > 0) {
const errorMessages = signResult.errors.map(e => `- [${e.code}] ${e.message} : ${e.detail}`).join('\n');
throw new Error(`Cosign sign command failed with errors:\n${errorMessages}`);
} else {
throw new Error(`Cosign sign command failed with exit code ${execRes.exitCode}`);
}
}
const parsedBundle = Sigstore.parseBundle(bundleFromJSON(signResult.bundle));
if (parsedBundle.tlogID) {
core.info(`Uploaded to Rekor transparency log: ${SEARCH_URL}?logIndex=${parsedBundle.tlogID}`);
}
core.info(`Signature manifest pushed: https://oci.dag.dev/?referrers=${attestationRef}`);
result[attestationRef] = {
...parsedBundle,
imageName: imageName
};
});
}
}
} catch (err) {
throw new Error(`Signing BuildKit attestation manifests failed: ${(err as Error).message}`);
}
return result;
}
public async verifySignedManifests(opts: VerifySignedManifestsOpts, signed: Record<string, SignAttestationManifestsResult>): Promise<Record<string, VerifySignedManifestsResult>> {
const result: Record<string, VerifySignedManifestsResult> = {};
const retries = opts.retries ?? 15;
if (!(await this.cosign.isAvailable())) {
throw new Error('Cosign is required to verify signed manifests');
}
let lastError: Error | undefined;
for (const [attestationRef, signedRes] of Object.entries(signed)) {
await core.group(`Verifying signature of ${attestationRef}`, async () => {
// prettier-ignore
const cosignArgs = [
'--verbose',
'verify',
'--experimental-oci11',
'--new-bundle-format',
'--certificate-oidc-issuer', 'https://token.actions.githubusercontent.com',
'--certificate-identity-regexp', opts.certificateIdentityRegexp
];
if (!signedRes.tlogID) {
// skip tlog verification but still verify the signed timestamp
cosignArgs.push('--use-signed-timestamps', '--insecure-ignore-tlog');
}
core.info(`[command]cosign ${[...cosignArgs, attestationRef].join(' ')}`);
for (let attempt = 0; attempt < retries; attempt++) {
const execRes = await Exec.getExecOutput('cosign', [...cosignArgs, attestationRef], {
ignoreReturnCode: true,
silent: true,
env: Object.assign({}, process.env, {
COSIGN_EXPERIMENTAL: '1'
}) as {[key: string]: string}
});
const verifyResult = Cosign.parseCommandOutput(execRes.stderr.trim());
if (execRes.exitCode === 0) {
result[attestationRef] = {
cosignArgs: cosignArgs,
signatureManifestDigest: verifyResult.signatureManifestDigest!
};
lastError = undefined;
core.info(`Signature manifest verified: https://oci.dag.dev/?image=${signedRes.imageName}@${verifyResult.signatureManifestDigest}`);
break;
} else {
if (verifyResult.errors && verifyResult.errors.length > 0) {
const errorMessages = verifyResult.errors.map(e => `- [${e.code}] ${e.message} : ${e.detail}`).join('\n');
lastError = new Error(`Cosign verify command failed with errors:\n${errorMessages}`);
if (verifyResult.errors.some(e => e.code === 'MANIFEST_UNKNOWN')) {
core.info(`Cosign verify command failed with MANIFEST_UNKNOWN, retrying attempt ${attempt + 1}/${retries}...\n${errorMessages}`);
await new Promise(res => setTimeout(res, Math.pow(2, attempt) * 100));
} else {
throw lastError;
}
} else {
throw new Error(`Cosign verify command failed: ${execRes.stderr}`);
}
}
}
});
}
if (lastError) {
throw lastError;
}
return result;
}
public async signProvenanceBlobs(opts: SignProvenanceBlobsOpts): Promise<Record<string, SignProvenanceBlobsResult>> {
const result: Record<string, SignProvenanceBlobsResult> = {};
try {
if (!process.env.ACTIONS_ID_TOKEN_REQUEST_URL) {
throw new Error('missing "id-token" permission. Please add "permissions: id-token: write" to your workflow.');
}
const endpoints = this.signingEndpoints(opts.noTransparencyLog);
core.info(`Using Sigstore signing endpoint: ${endpoints.fulcioURL}`);
const provenanceBlobs = Sigstore.getProvenanceBlobs(opts);
for (const p of Object.keys(provenanceBlobs)) {
await core.group(`Signing ${p}`, async () => {
const blob = provenanceBlobs[p];
const bundlePath = path.join(path.dirname(p), `${opts.name ?? 'provenance'}.sigstore.json`);
const subjects = Sigstore.getProvenanceSubjects(blob);
if (subjects.length === 0) {
core.warning(`No subjects found in provenance ${p}, skip signing.`);
return;
}
const bundle = await Sigstore.signPayload(
{
data: blob,
type: INTOTO_MEDIATYPE_PAYLOAD
},
endpoints
);
const parsedBundle = Sigstore.parseBundle(bundle);
core.info(`Provenance blob signed for:`);
for (const subject of subjects) {
const [digestAlg, digestValue] = Object.entries(subject.digest)[0] || [];
core.info(` - ${subject.name} (${digestAlg}:${digestValue})`);
}
if (parsedBundle.tlogID) {
core.info(`Attestation signature uploaded to Rekor transparency log: ${SEARCH_URL}?logIndex=${parsedBundle.tlogID}`);
}
core.info(`Writing Sigstore bundle to: ${bundlePath}`);
fs.writeFileSync(bundlePath, JSON.stringify(parsedBundle.payload, null, 2), {
encoding: 'utf-8'
});
result[p] = {
...parsedBundle,
bundlePath: bundlePath,
subjects: subjects
};
});
}
} catch (err) {
throw new Error(`Signing BuildKit provenance blobs failed: ${(err as Error).message}`);
}
return result;
}
public async verifySignedArtifacts(opts: VerifySignedArtifactsOpts, signed: Record<string, SignProvenanceBlobsResult>): Promise<Record<string, VerifySignedArtifactsResult>> {
const result: Record<string, VerifySignedArtifactsResult> = {};
if (!(await this.cosign.isAvailable())) {
throw new Error('Cosign is required to verify signed artifacts');
}
for (const [provenancePath, signedRes] of Object.entries(signed)) {
const baseDir = path.dirname(provenancePath);
await core.group(`Verifying signature bundle ${signedRes.bundlePath}`, async () => {
for (const subject of signedRes.subjects) {
const artifactPath = path.join(baseDir, subject.name);
core.info(`Verifying signed artifact ${artifactPath}`);
// prettier-ignore
const cosignArgs = [
'verify-blob-attestation',
'--new-bundle-format',
'--certificate-oidc-issuer', 'https://token.actions.githubusercontent.com',
'--certificate-identity-regexp', opts.certificateIdentityRegexp
]
if (!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], {
ignoreReturnCode: true
});
if (execRes.stderr.length > 0 && execRes.exitCode != 0) {
throw new Error(execRes.stderr);
}
result[artifactPath] = {
bundlePath: signedRes.bundlePath,
cosignArgs: cosignArgs
};
}
});
}
return result;
}
private signingEndpoints(noTransparencyLog?: boolean): Endpoints {
noTransparencyLog = Sigstore.noTransparencyLog(noTransparencyLog);
core.info(`Upload to transparency log: ${noTransparencyLog ? 'disabled' : 'enabled'}`);
return {
fulcioURL: FULCIO_URL,
rekorURL: noTransparencyLog ? undefined : REKOR_URL,
tsaServerURL: TSASERVER_URL
};
}
private static noTransparencyLog(noTransparencyLog?: boolean): boolean {
return noTransparencyLog ?? GitHub.context.payload.repository?.private;
}
private static getProvenanceBlobs(opts: SignProvenanceBlobsOpts): Record<string, Buffer> {
// For single platform build
const singleProvenance = path.join(opts.localExportDir, 'provenance.json');
if (fs.existsSync(singleProvenance)) {
return {[singleProvenance]: fs.readFileSync(singleProvenance)};
}
// For multi-platform build
const dirents = fs.readdirSync(opts.localExportDir, {withFileTypes: true});
const platformFolders = dirents.filter(dirent => dirent.isDirectory());
if (platformFolders.length > 0 && platformFolders.length === dirents.length && platformFolders.every(platformFolder => fs.existsSync(path.join(opts.localExportDir, platformFolder.name, 'provenance.json')))) {
const result: Record<string, Buffer> = {};
for (const platformFolder of platformFolders) {
const p = path.join(opts.localExportDir, platformFolder.name, 'provenance.json');
result[p] = fs.readFileSync(p);
}
return result;
}
throw new Error(`No valid provenance.json found in ${opts.localExportDir}`);
}
private static getProvenanceSubjects(body: Buffer): Array<Subject> {
const statement = JSON.parse(body.toString()) as {
subject: Array<{name: string; digest: Record<string, string>}>;
};
return statement.subject.map(s => ({
name: s.name,
digest: s.digest
}));
}
private static async signPayload(artifact: Artifact, endpoints: Endpoints, timeout?: number, retries?: number): Promise<Bundle> {
const witnesses: Witness[] = [];
const signer = new FulcioSigner({
identityProvider: new CIContextProvider('sigstore'),
fulcioBaseURL: endpoints.fulcioURL,
timeout: timeout,
retry: retries
});
if (endpoints.rekorURL) {
witnesses.push(
new RekorWitness({
rekorBaseURL: endpoints.rekorURL,
fetchOnConflict: true,
timeout: timeout,
retry: retries
})
);
}
if (endpoints.tsaServerURL) {
witnesses.push(
new TSAWitness({
tsaBaseURL: endpoints.tsaServerURL,
timeout: timeout,
retry: retries
})
);
}
return new DSSEBundleBuilder({signer, witnesses}).create(artifact);
}
private static parseBundle(bundle: Bundle): ParsedBundle {
let certBytes: Buffer;
switch (bundle.verificationMaterial.content.$case) {
case 'x509CertificateChain':
certBytes = bundle.verificationMaterial.content.x509CertificateChain.certificates[0].rawBytes;
break;
case 'certificate':
certBytes = bundle.verificationMaterial.content.certificate.rawBytes;
break;
default:
throw new Error('Bundle must contain an x509 certificate');
}
const signingCert = new X509Certificate(certBytes);
// collect transparency log ID if available
const tlogEntries = bundle.verificationMaterial.tlogEntries;
const tlogID = tlogEntries.length > 0 ? tlogEntries[0].logIndex : undefined;
return {
payload: bundleToJSON(bundle),
certificate: signingCert.toString(),
tlogID: tlogID
};
}
}

View File

@@ -14,6 +14,7 @@
* limitations under the License.
*/
import {GitHub} from './github';
import {Buildx} from './buildx/buildx';
import {Build as BuildxBuild} from './buildx/build';
import {Bake as BuildxBake} from './buildx/bake';
@@ -22,8 +23,13 @@ import {Builder} from './buildx/builder';
import {BuildKit} from './buildkit/buildkit';
import {Compose} from './compose/compose';
import {Install as ComposeInstall} from './compose/install';
import {Cosign} from './cosign/cosign';
import {Install as CosignInstall} from './cosign/install';
import {Regctl} from './regclient/regctl';
import {Install as RegctlInstall} from './regclient/install';
import {Undock} from './undock/undock';
import {GitHub} from './github';
import {Install as UndockInstall} from './undock/install';
import {Sigstore} from './sigstore/sigstore';
export interface ToolkitOpts {
/**
@@ -43,7 +49,13 @@ export class Toolkit {
public buildkit: BuildKit;
public compose: Compose;
public composeInstall: ComposeInstall;
public cosign: Cosign;
public cosignInstall: CosignInstall;
public regctl: Regctl;
public regctlInstall: RegctlInstall;
public sigstore: Sigstore;
public undock: Undock;
public undockInstall: UndockInstall;
constructor(opts: ToolkitOpts = {}) {
this.github = new GitHub({token: opts.githubToken});
@@ -55,6 +67,12 @@ export class Toolkit {
this.buildkit = new BuildKit({buildx: this.buildx});
this.compose = new Compose();
this.composeInstall = new ComposeInstall();
this.cosign = new Cosign();
this.cosignInstall = new CosignInstall({buildx: this.buildx});
this.regctl = new Regctl();
this.regctlInstall = new RegctlInstall();
this.sigstore = new Sigstore();
this.undock = new Undock();
this.undockInstall = new UndockInstall();
}
}

View File

@@ -14,6 +14,8 @@
* limitations under the License.
*/
import {GitHubContentOpts} from '../github';
export interface Cert {
cacert?: string;
cert?: string;
@@ -24,7 +26,7 @@ export interface DownloadVersion {
key: string;
version: string;
downloadURL: string;
releasesURL: string;
contentOpts: GitHubContentOpts;
}
export interface LocalRefsOpts {

View File

@@ -0,0 +1,28 @@
/**
* Copyright 2025 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 {Versioned} from '../oci/versioned';
import {Descriptor} from '../oci/descriptor';
import {Digest} from '../oci/digest';
// https://github.com/docker/buildx/blob/62857022a08552bee5cad0c3044a9a3b185f0b32/util/imagetools/printers.go#L109-L123
export interface Manifest extends Versioned {
mediaType?: string;
digest: Digest;
size: number;
manifests?: Descriptor[];
annotations?: Record<string, string>;
}

View File

@@ -14,9 +14,11 @@
* limitations under the License.
*/
import {GitHubContentOpts} from '../github';
export interface DownloadVersion {
key: string;
version: string;
downloadURL: string;
releasesURL: string;
contentOpts: GitHubContentOpts;
}

View File

@@ -0,0 +1,23 @@
/**
* Copyright 2025 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 {GitHubContentOpts} from '../github';
export interface DownloadVersion {
version: string;
downloadURL: string;
contentOpts: GitHubContentOpts;
}

View File

@@ -28,6 +28,13 @@ export interface GitHubRelease {
assets: Array<string>;
}
export interface GitHubContentOpts {
owner: string;
repo: string;
ref?: string;
path: string;
}
export type GitHubRepo = OctoOpenApiTypes['schemas']['repository'];
export interface GitHubActionsRuntimeToken extends JwtPayload {

View File

@@ -18,3 +18,9 @@
export const MEDIATYPE_PAYLOAD = 'application/vnd.in-toto+json';
export const MEDIATYPE_PREDICATE = 'in-toto.io/predicate-type';
// https://github.com/in-toto/in-toto-golang/blob/0a34c087cedcc36de065b4fccb7cf7c9bc16e29f/in_toto/attestations.go#L30-L42
export interface Subject {
name: string;
digest: Record<string, string>;
}

View File

@@ -14,8 +14,10 @@
* limitations under the License.
*/
import {GitHubContentOpts} from '../github';
export interface DownloadVersion {
version: string;
downloadURL: string;
releasesURL: string;
contentOpts: GitHubContentOpts;
}

View File

@@ -0,0 +1,76 @@
/**
* Copyright 2025 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 type {SerializedBundle} from '@sigstore/bundle';
import {Subject} from '../intoto/intoto';
export const FULCIO_URL = 'https://fulcio.sigstore.dev';
export const REKOR_URL = 'https://rekor.sigstore.dev';
export const TSASERVER_URL = 'https://timestamp.sigstore.dev';
export const SEARCH_URL = 'https://search.sigstore.dev';
export interface Endpoints {
fulcioURL: string;
rekorURL?: string;
tsaServerURL?: string;
}
export interface ParsedBundle {
payload: SerializedBundle;
certificate: string;
tlogID?: string;
}
export interface SignAttestationManifestsOpts {
imageNames: Array<string>;
imageDigest: string;
noTransparencyLog?: boolean;
}
export interface SignAttestationManifestsResult extends ParsedBundle {
imageName: string;
}
export interface VerifySignedManifestsOpts {
certificateIdentityRegexp: string;
retries?: number;
}
export interface VerifySignedManifestsResult {
cosignArgs: Array<string>;
signatureManifestDigest: string;
}
export interface SignProvenanceBlobsOpts {
localExportDir: string;
name?: string;
noTransparencyLog?: boolean;
}
export interface SignProvenanceBlobsResult extends ParsedBundle {
bundlePath: string;
subjects: Array<Subject>;
}
export interface VerifySignedArtifactsOpts {
certificateIdentityRegexp: string;
}
export interface VerifySignedArtifactsResult {
bundlePath: string;
cosignArgs: Array<string>;
}

View File

@@ -14,8 +14,10 @@
* limitations under the License.
*/
import {GitHubContentOpts} from '../github';
export interface DownloadVersion {
version: string;
downloadURL: string;
releasesURL: string;
contentOpts: GitHubContentOpts;
}

View File

@@ -18,18 +18,28 @@ import fs from 'fs';
import os from 'os';
import path from 'path';
import * as core from '@actions/core';
import * as httpm from '@actions/http-client';
import * as tc from '@actions/tool-cache';
import * as semver from 'semver';
import * as util from 'util';
import {Cache} from '../cache';
import {Context} from '../context';
import {GitHub} from '../github';
import {GitHubRelease} from '../types/github';
import {DownloadVersion} from '../types/undock/undock';
export interface InstallOpts {
githubToken?: string;
}
export class Install {
private readonly githubToken: string | undefined;
constructor(opts?: InstallOpts) {
this.githubToken = opts?.githubToken || process.env.GITHUB_TOKEN;
}
/*
* Download undock binary from GitHub release
* @param v: version semver version or latest
@@ -40,7 +50,7 @@ export class Install {
const version: DownloadVersion = await Install.getDownloadVersion(v);
core.debug(`Install.download version: ${version.version}`);
const release: GitHubRelease = await Install.getRelease(version);
const release: GitHubRelease = await Install.getRelease(version, this.githubToken);
core.debug(`Install.download release tag name: ${release.tag_name}`);
const vspec = await this.vspec(release.tag_name);
@@ -61,14 +71,14 @@ export class Install {
const cacheFoundPath = await installCache.find();
if (cacheFoundPath) {
core.info(`Unodck binary found in ${cacheFoundPath}`);
core.info(`Undock binary found in ${cacheFoundPath}`);
return cacheFoundPath;
}
const downloadURL = util.format(version.downloadURL, vspec, this.filename(vspec));
core.info(`Downloading ${downloadURL}`);
const htcDownloadPath = await tc.downloadTool(downloadURL);
const htcDownloadPath = await tc.downloadTool(downloadURL, undefined, this.githubToken);
core.debug(`Install.download htcDownloadPath: ${htcDownloadPath}`);
let htcExtPath: string;
@@ -102,7 +112,7 @@ export class Install {
fs.chmodSync(undockPath, '0755');
core.addPath(binDir);
core.info('Added Unodck to PATH');
core.info('Added Undock to PATH');
core.info(`Binary path: ${undockPath}`);
return undockPath;
@@ -145,21 +155,20 @@ export class Install {
return {
version: v,
downloadURL: 'https://github.com/crazy-max/undock/releases/download/v%s/%s',
releasesURL: 'https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/undock-releases.json'
contentOpts: {
owner: 'docker',
repo: 'actions-toolkit',
ref: 'main',
path: '.github/undock-releases.json'
}
};
}
public static async getRelease(version: DownloadVersion): Promise<GitHubRelease> {
const http: httpm.HttpClient = new httpm.HttpClient('docker-actions-toolkit');
const resp: httpm.HttpClientResponse = await http.get(version.releasesURL);
const body = await resp.readBody();
const statusCode = resp.message.statusCode || 500;
if (statusCode >= 400) {
throw new Error(`Failed to get Undock releases from ${version.releasesURL} with status code ${statusCode}: ${body}`);
}
const releases = <Record<string, GitHubRelease>>JSON.parse(body);
public static async getRelease(version: DownloadVersion, githubToken?: string): Promise<GitHubRelease> {
const github = new GitHub({token: githubToken});
const releases = await github.releases('Undock', version.contentOpts);
if (!releases[version.version]) {
throw new Error(`Cannot find Undock release ${version.version} in ${version.releasesURL}`);
throw new Error(`Cannot find Undock release ${version.version} in releases JSON`);
}
return releases[version.version];
}

588
yarn.lock
View File

@@ -12,29 +12,31 @@ __metadata:
languageName: node
linkType: hard
"@actions/artifact@npm:^2.3.2":
version: 2.3.2
resolution: "@actions/artifact@npm:2.3.2"
"@actions/artifact@npm:^4.0.0":
version: 4.0.0
resolution: "@actions/artifact@npm:4.0.0"
dependencies:
"@actions/core": "npm:^1.10.0"
"@actions/github": "npm:^5.1.1"
"@actions/github": "npm:^6.0.1"
"@actions/http-client": "npm:^2.1.0"
"@azure/core-http": "npm:^3.0.5"
"@azure/storage-blob": "npm:^12.15.0"
"@octokit/core": "npm:^3.5.1"
"@octokit/core": "npm:^5.2.1"
"@octokit/plugin-request-log": "npm:^1.0.4"
"@octokit/plugin-retry": "npm:^3.0.9"
"@octokit/request-error": "npm:^5.0.0"
"@octokit/request": "npm:^8.4.1"
"@octokit/request-error": "npm:^5.1.1"
"@protobuf-ts/plugin": "npm:^2.2.3-alpha.1"
archiver: "npm:^7.0.1"
jwt-decode: "npm:^3.1.2"
unzip-stream: "npm:^0.3.1"
checksum: 10/d6fbe1df300a1777343d3fb075011c9bf21285da24e8b4e28228bee9fb2940a80d505bd82ccb9f08d41bbb9a8d66350b456c8ee1ad67721dea71f0ea3b592257
checksum: 10/c53bb313c71aae2afeeb1e76700213608a0785f89dda1f7293b29abc26a2e1145b08d16473430ed07626a0c07f396a2c4203440ef8131f1265aa9230b497bb21
languageName: node
linkType: hard
"@actions/cache@npm:^4.0.3":
version: 4.0.3
resolution: "@actions/cache@npm:4.0.3"
"@actions/cache@npm:^4.1.0":
version: 4.1.0
resolution: "@actions/cache@npm:4.1.0"
dependencies:
"@actions/core": "npm:^1.11.1"
"@actions/exec": "npm:^1.0.1"
@@ -44,9 +46,9 @@ __metadata:
"@azure/abort-controller": "npm:^1.1.0"
"@azure/ms-rest-js": "npm:^2.6.0"
"@azure/storage-blob": "npm:^12.13.0"
"@protobuf-ts/plugin": "npm:^2.9.4"
"@protobuf-ts/runtime-rpc": "npm:^2.11.1"
semver: "npm:^6.3.1"
checksum: 10/232790477fcbddf4591c84cd2860b009715515e53edb7bcba718b73ddd46401f09fd859f04b426614ad82e8cdcf6948fdc4ff03e926fbf5081163d77d9a8eec8
checksum: 10/ee0bb0db93b0e1ffefec86400236589cc8c2ee3fc87a876acf136a49162e17d60fd42a643163ccb3653a0ee3b1ec10ba48b638142944ea2a4a88b845201fbf6d
languageName: node
linkType: hard
@@ -79,18 +81,6 @@ __metadata:
languageName: node
linkType: hard
"@actions/github@npm:^5.1.1":
version: 5.1.1
resolution: "@actions/github@npm:5.1.1"
dependencies:
"@actions/http-client": "npm:^2.0.1"
"@octokit/core": "npm:^3.6.0"
"@octokit/plugin-paginate-rest": "npm:^2.17.0"
"@octokit/plugin-rest-endpoint-methods": "npm:^5.13.0"
checksum: 10/2210bd7f8e1e8b407b7df74a259523dc4c63f4ad3a6bfcc0d7867b6e9c3499bd3e25d7de7a9a1bbd0de3be441a8832d5c0b5c0cff3036cd477378c0ec5502434
languageName: node
linkType: hard
"@actions/github@npm:^6.0.1":
version: 6.0.1
resolution: "@actions/github@npm:6.0.1"
@@ -244,6 +234,28 @@ __metadata:
languageName: node
linkType: hard
"@azure/core-http@npm:^3.0.5":
version: 3.0.5
resolution: "@azure/core-http@npm:3.0.5"
dependencies:
"@azure/abort-controller": "npm:^1.0.0"
"@azure/core-auth": "npm:^1.3.0"
"@azure/core-tracing": "npm:1.0.0-preview.13"
"@azure/core-util": "npm:^1.1.1"
"@azure/logger": "npm:^1.0.0"
"@types/node-fetch": "npm:^2.5.0"
"@types/tunnel": "npm:^0.0.3"
form-data: "npm:^4.0.0"
node-fetch: "npm:^2.6.7"
process: "npm:^0.11.10"
tslib: "npm:^2.2.0"
tunnel: "npm:^0.0.6"
uuid: "npm:^8.3.0"
xml2js: "npm:^0.5.0"
checksum: 10/fd534d58e4998a68256a5f1d3593cd3e1962da938404031683ebed081ac17e5dccf0c6f953f52920348bfd45673752a70815d9fc205a2da2a8fcd140495fcf7a
languageName: node
linkType: hard
"@azure/core-lro@npm:^2.2.0":
version: 2.5.3
resolution: "@azure/core-lro@npm:2.5.3"
@@ -1109,8 +1121,8 @@ __metadata:
version: 0.0.0-use.local
resolution: "@docker/actions-toolkit@workspace:."
dependencies:
"@actions/artifact": "npm:^2.3.2"
"@actions/cache": "npm:^4.0.3"
"@actions/artifact": "npm:^4.0.0"
"@actions/cache": "npm:^4.1.0"
"@actions/core": "npm:^1.11.1"
"@actions/exec": "npm:^1.1.1"
"@actions/github": "npm:^6.0.1"
@@ -1120,17 +1132,20 @@ __metadata:
"@azure/storage-blob": "npm:^12.15.0"
"@octokit/core": "npm:^5.2.2"
"@octokit/plugin-rest-endpoint-methods": "npm:^10.4.1"
"@sigstore/bundle": "npm:^4.0.0"
"@sigstore/rekor-types": "npm:^3.0.0"
"@sigstore/sign": "npm:^4.0.1"
"@types/gunzip-maybe": "npm:^1.4.2"
"@types/he": "npm:^1.2.3"
"@types/js-yaml": "npm:^4.0.9"
"@types/node": "npm:^20.19.9"
"@types/semver": "npm:^7.7.0"
"@types/semver": "npm:^7.7.1"
"@types/tar-stream": "npm:^3.1.4"
"@types/tmp": "npm:^0.2.6"
"@typescript-eslint/eslint-plugin": "npm:^7.18.0"
"@typescript-eslint/parser": "npm:^7.18.0"
async-retry: "npm:^1.3.3"
csv-parse: "npm:^5.6.0"
csv-parse: "npm:^6.1.0"
dotenv: "npm:^17.2.1"
eslint: "npm:^8.57.1"
eslint-config-prettier: "npm:^9.1.2"
@@ -1145,9 +1160,9 @@ __metadata:
jwt-decode: "npm:^4.0.0"
prettier: "npm:^3.6.2"
rimraf: "npm:^6.0.1"
semver: "npm:^7.7.2"
semver: "npm:^7.7.3"
tar-stream: "npm:^3.1.7"
tmp: "npm:^0.2.4"
tmp: "npm:^0.2.5"
ts-jest: "npm:^29.4.1"
ts-node: "npm:^10.9.2"
typescript: "npm:^5.9.2"
@@ -1670,6 +1685,19 @@ __metadata:
languageName: node
linkType: hard
"@npmcli/agent@npm:^4.0.0":
version: 4.0.0
resolution: "@npmcli/agent@npm:4.0.0"
dependencies:
agent-base: "npm:^7.1.0"
http-proxy-agent: "npm:^7.0.0"
https-proxy-agent: "npm:^7.0.1"
lru-cache: "npm:^11.2.1"
socks-proxy-agent: "npm:^8.0.3"
checksum: 10/1a81573becc60515031accc696e6405e9b894e65c12b98ef4aeee03b5617c41948633159dbf6caf5dde5b47367eeb749bdc7b7dfb21960930a9060a935c6f636
languageName: node
linkType: hard
"@npmcli/fs@npm:^2.1.0":
version: 2.1.2
resolution: "@npmcli/fs@npm:2.1.2"
@@ -1680,6 +1708,15 @@ __metadata:
languageName: node
linkType: hard
"@npmcli/fs@npm:^4.0.0":
version: 4.0.0
resolution: "@npmcli/fs@npm:4.0.0"
dependencies:
semver: "npm:^7.3.5"
checksum: 10/405c4490e1ff11cf299775449a3c254a366a4b1ffc79d87159b0ee7d5558ac9f6a2f8c0735fd6ff3873cef014cb1a44a5f9127cb6a1b2dbc408718cca9365b5a
languageName: node
linkType: hard
"@npmcli/move-file@npm:^2.0.0":
version: 2.0.1
resolution: "@npmcli/move-file@npm:2.0.1"
@@ -1690,15 +1727,6 @@ __metadata:
languageName: node
linkType: hard
"@octokit/auth-token@npm:^2.4.4":
version: 2.5.0
resolution: "@octokit/auth-token@npm:2.5.0"
dependencies:
"@octokit/types": "npm:^6.0.3"
checksum: 10/95d7928b6fcddf8960c7da27678e1cb425b4eaef2e6be615abb1f2b076b617dade72e0bf220c28bc5f106d8c029d5d064496657369d6d75372eb0c3b8d766380
languageName: node
linkType: hard
"@octokit/auth-token@npm:^4.0.0":
version: 4.0.0
resolution: "@octokit/auth-token@npm:4.0.0"
@@ -1706,21 +1734,6 @@ __metadata:
languageName: node
linkType: hard
"@octokit/core@npm:^3.5.1, @octokit/core@npm:^3.6.0":
version: 3.6.0
resolution: "@octokit/core@npm:3.6.0"
dependencies:
"@octokit/auth-token": "npm:^2.4.4"
"@octokit/graphql": "npm:^4.5.8"
"@octokit/request": "npm:^5.6.3"
"@octokit/request-error": "npm:^2.0.5"
"@octokit/types": "npm:^6.0.3"
before-after-hook: "npm:^2.2.0"
universal-user-agent: "npm:^6.0.0"
checksum: 10/71e153cf93694f84fe2e3e78d2ebc7cab175c12c1a96b76a0c65c8965e46df39e3547b6340e87dcf5473dc572dfaf3ecbe800358ad572e120509ba0744a1cb9c
languageName: node
linkType: hard
"@octokit/core@npm:^5.0.1":
version: 5.0.1
resolution: "@octokit/core@npm:5.0.1"
@@ -1736,7 +1749,7 @@ __metadata:
languageName: node
linkType: hard
"@octokit/core@npm:^5.2.2":
"@octokit/core@npm:^5.2.1, @octokit/core@npm:^5.2.2":
version: 5.2.2
resolution: "@octokit/core@npm:5.2.2"
dependencies:
@@ -1751,28 +1764,6 @@ __metadata:
languageName: node
linkType: hard
"@octokit/endpoint@npm:^6.0.1":
version: 6.0.12
resolution: "@octokit/endpoint@npm:6.0.12"
dependencies:
"@octokit/types": "npm:^6.0.3"
is-plain-object: "npm:^5.0.0"
universal-user-agent: "npm:^6.0.0"
checksum: 10/d1b55a94aa3058f840f89cc8d353ef1c294c061c5a36fe05f09c375a62f82af3068b23ce531cc1802e36ee4a52359862523e454e9d2a81c99a5c09dddffb2925
languageName: node
linkType: hard
"@octokit/endpoint@npm:^9.0.0":
version: 9.0.0
resolution: "@octokit/endpoint@npm:9.0.0"
dependencies:
"@octokit/types": "npm:^11.0.0"
is-plain-object: "npm:^5.0.0"
universal-user-agent: "npm:^6.0.0"
checksum: 10/ec160fe1a0d5244ef380b1f4fce9586bcf82ee5f24f92f128aec898255eb148620f5622fcd0dc876678b0f84dc8e7210469108afc150c0080916b7c16fbfe49e
languageName: node
linkType: hard
"@octokit/endpoint@npm:^9.0.6":
version: 9.0.6
resolution: "@octokit/endpoint@npm:9.0.6"
@@ -1783,17 +1774,6 @@ __metadata:
languageName: node
linkType: hard
"@octokit/graphql@npm:^4.5.8":
version: 4.8.0
resolution: "@octokit/graphql@npm:4.8.0"
dependencies:
"@octokit/request": "npm:^5.6.0"
"@octokit/types": "npm:^6.0.3"
universal-user-agent: "npm:^6.0.0"
checksum: 10/e03a3a05b792eee833357a8ed514ebf9bdb7c9e6037c60dc42b13bef83d13b53b6bb5955d24a49321f78e0ef2cb1611ae5cf00eaaa6abd8415884d89f9df6b8b
languageName: node
linkType: hard
"@octokit/graphql@npm:^7.0.0":
version: 7.0.1
resolution: "@octokit/graphql@npm:7.0.1"
@@ -1851,17 +1831,6 @@ __metadata:
languageName: node
linkType: hard
"@octokit/plugin-paginate-rest@npm:^2.17.0":
version: 2.21.3
resolution: "@octokit/plugin-paginate-rest@npm:2.21.3"
dependencies:
"@octokit/types": "npm:^6.40.0"
peerDependencies:
"@octokit/core": ">=2"
checksum: 10/446d5776953ca7e4eddd4f0b9aa35b7bf6bb61991cacdabad321ae8742ccde573d4ecd4e4e6786a673a94fe82ca180bdc22fbb8e17d961c17d2afec67e59e36a
languageName: node
linkType: hard
"@octokit/plugin-paginate-rest@npm:^9.2.2":
version: 9.2.2
resolution: "@octokit/plugin-paginate-rest@npm:9.2.2"
@@ -1904,18 +1873,6 @@ __metadata:
languageName: node
linkType: hard
"@octokit/plugin-rest-endpoint-methods@npm:^5.13.0":
version: 5.16.2
resolution: "@octokit/plugin-rest-endpoint-methods@npm:5.16.2"
dependencies:
"@octokit/types": "npm:^6.39.0"
deprecation: "npm:^2.3.1"
peerDependencies:
"@octokit/core": ">=3"
checksum: 10/e2f2f3189245737c54d50efee5a33e94c8f030c5e53386d38e7c32b4026e0beffaf4e0706d11d175980b9f6cef000c73794d0ac91d2e4645565b8c26c40ea6bb
languageName: node
linkType: hard
"@octokit/plugin-retry@npm:^3.0.9":
version: 3.0.9
resolution: "@octokit/plugin-retry@npm:3.0.9"
@@ -1926,29 +1883,7 @@ __metadata:
languageName: node
linkType: hard
"@octokit/request-error@npm:^2.0.5, @octokit/request-error@npm:^2.1.0":
version: 2.1.0
resolution: "@octokit/request-error@npm:2.1.0"
dependencies:
"@octokit/types": "npm:^6.0.3"
deprecation: "npm:^2.0.0"
once: "npm:^1.4.0"
checksum: 10/baec2b5700498be01b4d958f9472cb776b3f3b0ea52924323a07e7a88572e24cac2cdf7eb04a0614031ba346043558b47bea2d346e98f0e8385b4261f138ef18
languageName: node
linkType: hard
"@octokit/request-error@npm:^5.0.0":
version: 5.0.0
resolution: "@octokit/request-error@npm:5.0.0"
dependencies:
"@octokit/types": "npm:^11.0.0"
deprecation: "npm:^2.0.0"
once: "npm:^1.4.0"
checksum: 10/de7ed2934035650c67b619130c407c6eec7fc80c9c47c27131feaace76fa01c64e35338cb19d4b3838f5f53f3d174a5f0933e1dc7921b952411b0457b599dc71
languageName: node
linkType: hard
"@octokit/request-error@npm:^5.1.1":
"@octokit/request-error@npm:^5.0.0, @octokit/request-error@npm:^5.1.1":
version: 5.1.1
resolution: "@octokit/request-error@npm:5.1.1"
dependencies:
@@ -1959,34 +1894,7 @@ __metadata:
languageName: node
linkType: hard
"@octokit/request@npm:^5.6.0, @octokit/request@npm:^5.6.3":
version: 5.6.3
resolution: "@octokit/request@npm:5.6.3"
dependencies:
"@octokit/endpoint": "npm:^6.0.1"
"@octokit/request-error": "npm:^2.1.0"
"@octokit/types": "npm:^6.16.1"
is-plain-object: "npm:^5.0.0"
node-fetch: "npm:^2.6.7"
universal-user-agent: "npm:^6.0.0"
checksum: 10/0e5dbe6a335d8b1a5064a5305bd23cec20ba2bc9648749b5ab8b31e51e6f4ebbe363c23842fd702ca22f50e434ba963e2883a78604d97b3ddbc2439aeeed3d8c
languageName: node
linkType: hard
"@octokit/request@npm:^8.0.1, @octokit/request@npm:^8.0.2":
version: 8.1.1
resolution: "@octokit/request@npm:8.1.1"
dependencies:
"@octokit/endpoint": "npm:^9.0.0"
"@octokit/request-error": "npm:^5.0.0"
"@octokit/types": "npm:^11.1.0"
is-plain-object: "npm:^5.0.0"
universal-user-agent: "npm:^6.0.0"
checksum: 10/62fd236ef88de3bc7ecb652414751eb3934f589727e938736cb1b76545384d6db225abeae12371a1d6017bff2ae82948bf529af6b746131bdb3a270bfb177ac1
languageName: node
linkType: hard
"@octokit/request@npm:^8.4.1":
"@octokit/request@npm:^8.0.1, @octokit/request@npm:^8.0.2, @octokit/request@npm:^8.4.1":
version: 8.4.1
resolution: "@octokit/request@npm:8.4.1"
dependencies:
@@ -1998,7 +1906,7 @@ __metadata:
languageName: node
linkType: hard
"@octokit/types@npm:^11.0.0, @octokit/types@npm:^11.1.0":
"@octokit/types@npm:^11.0.0":
version: 11.1.0
resolution: "@octokit/types@npm:11.1.0"
dependencies:
@@ -2034,7 +1942,7 @@ __metadata:
languageName: node
linkType: hard
"@octokit/types@npm:^6.0.3, @octokit/types@npm:^6.16.1, @octokit/types@npm:^6.39.0, @octokit/types@npm:^6.40.0":
"@octokit/types@npm:^6.0.3":
version: 6.41.0
resolution: "@octokit/types@npm:6.41.0"
dependencies:
@@ -2074,7 +1982,7 @@ __metadata:
languageName: node
linkType: hard
"@protobuf-ts/plugin@npm:^2.2.3-alpha.1, @protobuf-ts/plugin@npm:^2.9.4":
"@protobuf-ts/plugin@npm:^2.2.3-alpha.1":
version: 2.9.4
resolution: "@protobuf-ts/plugin@npm:2.9.4"
dependencies:
@@ -2099,6 +2007,15 @@ __metadata:
languageName: node
linkType: hard
"@protobuf-ts/runtime-rpc@npm:^2.11.1":
version: 2.11.1
resolution: "@protobuf-ts/runtime-rpc@npm:2.11.1"
dependencies:
"@protobuf-ts/runtime": "npm:^2.11.1"
checksum: 10/32c9220a4898b8abca1628806075066292a3f2774965b7d1f39e9389c43a178d7b5023d9e67a0e024d0010790b0b7b6a4e73080e59a0e1701e2d5cee9572e6e2
languageName: node
linkType: hard
"@protobuf-ts/runtime-rpc@npm:^2.9.4":
version: 2.9.4
resolution: "@protobuf-ts/runtime-rpc@npm:2.9.4"
@@ -2108,6 +2025,13 @@ __metadata:
languageName: node
linkType: hard
"@protobuf-ts/runtime@npm:^2.11.1":
version: 2.11.1
resolution: "@protobuf-ts/runtime@npm:2.11.1"
checksum: 10/888b963a0b2b26c0b5f77d411b99bfc80068faa89e287efeede2e7686f1b0fea09fc5f0cf7e6be148728f2acf9c05ec7b5814f6633da6cdc810895677b2e68f5
languageName: node
linkType: hard
"@protobuf-ts/runtime@npm:^2.9.4":
version: 2.9.4
resolution: "@protobuf-ts/runtime@npm:2.9.4"
@@ -2122,6 +2046,50 @@ __metadata:
languageName: node
linkType: hard
"@sigstore/bundle@npm:^4.0.0":
version: 4.0.0
resolution: "@sigstore/bundle@npm:4.0.0"
dependencies:
"@sigstore/protobuf-specs": "npm:^0.5.0"
checksum: 10/09ef32284783cdcdcc7ecd16711f1d1be6b6fc6abe22bf7434071a6d3aa3512d15f68a4cc481513569a55a001c5bd112edfccbea7b3c16b5aa1557f73773f504
languageName: node
linkType: hard
"@sigstore/core@npm:^3.0.0":
version: 3.0.0
resolution: "@sigstore/core@npm:3.0.0"
checksum: 10/b6dd1d0de2843d9fcad77f1052e2de795772f126b8dbcda887d36b5d6ea691f708dd64c13317ca98e1dd4987895098c4142c55a083f4e2cbcf1a1e75c95f650d
languageName: node
linkType: hard
"@sigstore/protobuf-specs@npm:^0.5.0":
version: 0.5.0
resolution: "@sigstore/protobuf-specs@npm:0.5.0"
checksum: 10/98e84c5df1b5828e96a4c3cd39aca1ab069de53f0eaf4d0844ee50a19a15bff5707663e78eead7c27745fea3c55a37edfe5569242a1c695a146459159c104450
languageName: node
linkType: hard
"@sigstore/rekor-types@npm:^3.0.0":
version: 3.0.0
resolution: "@sigstore/rekor-types@npm:3.0.0"
checksum: 10/f17a274b230ccbafad9beda6c568a80eeadb0f0c01ae09436522dadfc87839607116ef2855e959a34c02e86785600ea67f0e323cdb01e8cd211c3f72153742e7
languageName: node
linkType: hard
"@sigstore/sign@npm:^4.0.1":
version: 4.0.1
resolution: "@sigstore/sign@npm:4.0.1"
dependencies:
"@sigstore/bundle": "npm:^4.0.0"
"@sigstore/core": "npm:^3.0.0"
"@sigstore/protobuf-specs": "npm:^0.5.0"
make-fetch-happen: "npm:^15.0.2"
proc-log: "npm:^5.0.0"
promise-retry: "npm:^2.0.1"
checksum: 10/41b2bcb8fb767a6b242e59659b3dc20bd43000637c594a469e9cece5201d24b3a697220b70829edfd527087e1ed7b8c41837031b65de345f7d4c7941d9ef7b35
languageName: node
linkType: hard
"@sinclair/typebox@npm:^0.27.8":
version: 0.27.8
resolution: "@sinclair/typebox@npm:0.27.8"
@@ -2313,10 +2281,10 @@ __metadata:
languageName: node
linkType: hard
"@types/semver@npm:^7.7.0":
version: 7.7.0
resolution: "@types/semver@npm:7.7.0"
checksum: 10/ee4514c6c852b1c38f951239db02f9edeea39f5310fad9396a00b51efa2a2d96b3dfca1ae84c88181ea5b7157c57d32d7ef94edacee36fbf975546396b85ba5b
"@types/semver@npm:^7.7.1":
version: 7.7.1
resolution: "@types/semver@npm:7.7.1"
checksum: 10/8f09e7e6ca3ded67d78ba7a8f7535c8d9cf8ced83c52e7f3ac3c281fe8c689c3fe475d199d94390dc04fc681d51f2358b430bb7b2e21c62de24f2bee2c719068
languageName: node
linkType: hard
@@ -2636,6 +2604,13 @@ __metadata:
languageName: node
linkType: hard
"agent-base@npm:^7.1.0, agent-base@npm:^7.1.2":
version: 7.1.4
resolution: "agent-base@npm:7.1.4"
checksum: 10/79bef167247789f955aaba113bae74bf64aa1e1acca4b1d6bb444bdf91d82c3e07e9451ef6a6e2e35e8f71a6f97ce33e3d855a5328eb9fad1bc3cc4cfd031ed8
languageName: node
linkType: hard
"agentkeepalive@npm:^4.2.1":
version: 4.2.1
resolution: "agentkeepalive@npm:4.2.1"
@@ -3117,12 +3092,12 @@ __metadata:
linkType: hard
"brace-expansion@npm:^1.1.7":
version: 1.1.11
resolution: "brace-expansion@npm:1.1.11"
version: 1.1.12
resolution: "brace-expansion@npm:1.1.12"
dependencies:
balanced-match: "npm:^1.0.0"
concat-map: "npm:0.0.1"
checksum: 10/faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07
checksum: 10/12cb6d6310629e3048cadb003e1aca4d8c9bb5c67c3c321bafdd7e7a50155de081f78ea3e0ed92ecc75a9015e784f301efc8132383132f4f7904ad1ac529c562
languageName: node
linkType: hard
@@ -3257,6 +3232,25 @@ __metadata:
languageName: node
linkType: hard
"cacache@npm:^20.0.1":
version: 20.0.1
resolution: "cacache@npm:20.0.1"
dependencies:
"@npmcli/fs": "npm:^4.0.0"
fs-minipass: "npm:^3.0.0"
glob: "npm:^11.0.3"
lru-cache: "npm:^11.1.0"
minipass: "npm:^7.0.3"
minipass-collect: "npm:^2.0.1"
minipass-flush: "npm:^1.0.5"
minipass-pipeline: "npm:^1.2.4"
p-map: "npm:^7.0.2"
ssri: "npm:^12.0.0"
unique-filename: "npm:^4.0.0"
checksum: 10/b52a3ed18539608092f69db00cb0dba8c888876a6a9efebd3e275fec4d884df025372d018bc05560df9a4f36a08b880b9cbe03edaf52686789513228d0204bc9
languageName: node
linkType: hard
"call-bind-apply-helpers@npm:^1.0.0, call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2":
version: 1.0.2
resolution: "call-bind-apply-helpers@npm:1.0.2"
@@ -3591,10 +3585,10 @@ __metadata:
languageName: node
linkType: hard
"csv-parse@npm:^5.6.0":
version: 5.6.0
resolution: "csv-parse@npm:5.6.0"
checksum: 10/4c82e11f50ae0ccbac2aed716ef2502d0468bf96552083561db789fc0258ee4bb0a30106fcfb2684f153cb4042f0413e0eac3645d5466874803b7ccdeba67ac8
"csv-parse@npm:^6.1.0":
version: 6.1.0
resolution: "csv-parse@npm:6.1.0"
checksum: 10/607d92611435fdfb7631242644a2582bfb218fad8c6c6d6416db31647c2e63a3110f16c9837de6baaa3edf318212765cfc6e72d672d99690fd7f565d6c93d6f4
languageName: node
linkType: hard
@@ -3798,7 +3792,7 @@ __metadata:
languageName: node
linkType: hard
"deprecation@npm:^2.0.0, deprecation@npm:^2.3.1":
"deprecation@npm:^2.0.0":
version: 2.3.1
resolution: "deprecation@npm:2.3.1"
checksum: 10/f56a05e182c2c195071385455956b0c4106fe14e36245b00c689ceef8e8ab639235176a96977ba7c74afb173317fac2e0ec6ec7a1c6d1e6eaa401c586c714132
@@ -4822,6 +4816,15 @@ __metadata:
languageName: node
linkType: hard
"fs-minipass@npm:^3.0.0":
version: 3.0.3
resolution: "fs-minipass@npm:3.0.3"
dependencies:
minipass: "npm:^7.0.3"
checksum: 10/af143246cf6884fe26fa281621d45cfe111d34b30535a475bfa38dafe343dadb466c047a924ffc7d6b7b18265df4110224ce3803806dbb07173bf2087b648d7f
languageName: node
linkType: hard
"fs.realpath@npm:^1.0.0":
version: 1.0.0
resolution: "fs.realpath@npm:1.0.0"
@@ -5080,7 +5083,7 @@ __metadata:
languageName: node
linkType: hard
"glob@npm:^11.0.0":
"glob@npm:^11.0.0, glob@npm:^11.0.3":
version: 11.0.3
resolution: "glob@npm:11.0.3"
dependencies:
@@ -5392,6 +5395,13 @@ __metadata:
languageName: node
linkType: hard
"http-cache-semantics@npm:^4.1.1":
version: 4.2.0
resolution: "http-cache-semantics@npm:4.2.0"
checksum: 10/4efd2dfcfeea9d5e88c84af450b9980be8a43c2c8179508b1c57c7b4421c855f3e8efe92fa53e0b3f4a43c85824ada930eabbc306d1b3beab750b6dcc5187693
languageName: node
linkType: hard
"http-proxy-agent@npm:^5.0.0":
version: 5.0.0
resolution: "http-proxy-agent@npm:5.0.0"
@@ -5403,6 +5413,16 @@ __metadata:
languageName: node
linkType: hard
"http-proxy-agent@npm:^7.0.0":
version: 7.0.2
resolution: "http-proxy-agent@npm:7.0.2"
dependencies:
agent-base: "npm:^7.1.0"
debug: "npm:^4.3.4"
checksum: 10/d062acfa0cb82beeb558f1043c6ba770ea892b5fb7b28654dbc70ea2aeea55226dd34c02a294f6c1ca179a5aa483c4ea641846821b182edbd9cc5d89b54c6848
languageName: node
linkType: hard
"https-proxy-agent@npm:^5.0.0":
version: 5.0.0
resolution: "https-proxy-agent@npm:5.0.0"
@@ -5413,6 +5433,16 @@ __metadata:
languageName: node
linkType: hard
"https-proxy-agent@npm:^7.0.1":
version: 7.0.6
resolution: "https-proxy-agent@npm:7.0.6"
dependencies:
agent-base: "npm:^7.1.2"
debug: "npm:4"
checksum: 10/784b628cbd55b25542a9d85033bdfd03d4eda630fb8b3c9477959367f3be95dc476ed2ecbb9836c359c7c698027fc7b45723a302324433590f45d6c1706e8c13
languageName: node
linkType: hard
"human-signals@npm:^2.1.0":
version: 2.1.0
resolution: "human-signals@npm:2.1.0"
@@ -5563,6 +5593,13 @@ __metadata:
languageName: node
linkType: hard
"ip-address@npm:^10.0.1":
version: 10.0.1
resolution: "ip-address@npm:10.0.1"
checksum: 10/09731acda32cd8e14c46830c137e7e5940f47b36d63ffb87c737331270287d631cf25aa95570907a67d3f919fdb25f4470c404eda21e62f22e0a55927f4dd0fb
languageName: node
linkType: hard
"ip-regex@npm:^2.1.0":
version: 2.1.0
resolution: "ip-regex@npm:2.1.0"
@@ -5877,13 +5914,6 @@ __metadata:
languageName: node
linkType: hard
"is-plain-object@npm:^5.0.0":
version: 5.0.0
resolution: "is-plain-object@npm:5.0.0"
checksum: 10/e32d27061eef62c0847d303125440a38660517e586f2f3db7c9d179ae5b6674ab0f469d519b2e25c147a1a3bc87156d0d5f4d8821e0ce4a9ee7fe1fcf11ce45c
languageName: node
linkType: hard
"is-regex@npm:^1.1.4":
version: 1.1.4
resolution: "is-regex@npm:1.1.4"
@@ -6816,6 +6846,13 @@ __metadata:
languageName: node
linkType: hard
"lru-cache@npm:^11.1.0, lru-cache@npm:^11.2.1":
version: 11.2.2
resolution: "lru-cache@npm:11.2.2"
checksum: 10/fa7919fbf068a739f79a1ad461eb273514da7246cebb9dca68e3cd7ba19e3839e7e2aaecd9b72867e08038561eeb96941189e89b3d4091c75ced4f56c71c80db
languageName: node
linkType: hard
"lru-cache@npm:^5.1.1":
version: 5.1.1
resolution: "lru-cache@npm:5.1.1"
@@ -6881,6 +6918,25 @@ __metadata:
languageName: node
linkType: hard
"make-fetch-happen@npm:^15.0.2":
version: 15.0.2
resolution: "make-fetch-happen@npm:15.0.2"
dependencies:
"@npmcli/agent": "npm:^4.0.0"
cacache: "npm:^20.0.1"
http-cache-semantics: "npm:^4.1.1"
minipass: "npm:^7.0.2"
minipass-fetch: "npm:^4.0.0"
minipass-flush: "npm:^1.0.5"
minipass-pipeline: "npm:^1.2.4"
negotiator: "npm:^1.0.0"
proc-log: "npm:^5.0.0"
promise-retry: "npm:^2.0.1"
ssri: "npm:^12.0.0"
checksum: 10/66097eae91615d1ac817127b9a20b9a17a1cb18c6b52ad24ffa03f45f3a9300af03f3368c52bbe88060ba9bf73c4ec1e0f2a209d1598bb906cdb34f75d3600b4
languageName: node
linkType: hard
"makeerror@npm:1.0.12":
version: 1.0.12
resolution: "makeerror@npm:1.0.12"
@@ -7022,6 +7078,15 @@ __metadata:
languageName: node
linkType: hard
"minipass-collect@npm:^2.0.1":
version: 2.0.1
resolution: "minipass-collect@npm:2.0.1"
dependencies:
minipass: "npm:^7.0.3"
checksum: 10/b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342
languageName: node
linkType: hard
"minipass-fetch@npm:^2.0.3":
version: 2.1.2
resolution: "minipass-fetch@npm:2.1.2"
@@ -7037,6 +7102,21 @@ __metadata:
languageName: node
linkType: hard
"minipass-fetch@npm:^4.0.0":
version: 4.0.1
resolution: "minipass-fetch@npm:4.0.1"
dependencies:
encoding: "npm:^0.1.13"
minipass: "npm:^7.0.3"
minipass-sized: "npm:^1.0.3"
minizlib: "npm:^3.0.1"
dependenciesMeta:
encoding:
optional: true
checksum: 10/7ddfebdbb87d9866e7b5f7eead5a9e3d9d507992af932a11d275551f60006cf7d9178e66d586dbb910894f3e3458d27c0ddf93c76e94d49d0a54a541ddc1263d
languageName: node
linkType: hard
"minipass-flush@npm:^1.0.5":
version: 1.0.5
resolution: "minipass-flush@npm:1.0.5"
@@ -7073,12 +7153,10 @@ __metadata:
languageName: node
linkType: hard
"minipass@npm:^4.0.0":
version: 4.0.0
resolution: "minipass@npm:4.0.0"
dependencies:
yallist: "npm:^4.0.0"
checksum: 10/6656c87ea19e06faa7c1ae3b3125af544d7f563688f9353c6474cc2f53af94eb1d2b8344dfc0cf9bc0a962b51573163c857a2dd67a9a62c4d16390657981e07a
"minipass@npm:^5.0.0":
version: 5.0.0
resolution: "minipass@npm:5.0.0"
checksum: 10/61682162d29f45d3152b78b08bab7fb32ca10899bc5991ffe98afc18c9e9543bd1e3be94f8b8373ba6262497db63607079dc242ea62e43e7b2270837b7347c93
languageName: node
linkType: hard
@@ -7089,6 +7167,13 @@ __metadata:
languageName: node
linkType: hard
"minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2":
version: 7.1.2
resolution: "minipass@npm:7.1.2"
checksum: 10/c25f0ee8196d8e6036661104bacd743785b2599a21de5c516b32b3fa2b83113ac89a2358465bc04956baab37ffb956ae43be679b2262bf7be15fce467ccd7950
languageName: node
linkType: hard
"minipass@npm:^7.0.4":
version: 7.0.4
resolution: "minipass@npm:7.0.4"
@@ -7096,13 +7181,6 @@ __metadata:
languageName: node
linkType: hard
"minipass@npm:^7.1.2":
version: 7.1.2
resolution: "minipass@npm:7.1.2"
checksum: 10/c25f0ee8196d8e6036661104bacd743785b2599a21de5c516b32b3fa2b83113ac89a2358465bc04956baab37ffb956ae43be679b2262bf7be15fce467ccd7950
languageName: node
linkType: hard
"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2":
version: 2.1.2
resolution: "minizlib@npm:2.1.2"
@@ -7113,6 +7191,15 @@ __metadata:
languageName: node
linkType: hard
"minizlib@npm:^3.0.1":
version: 3.1.0
resolution: "minizlib@npm:3.1.0"
dependencies:
minipass: "npm:^7.1.2"
checksum: 10/f47365cc2cb7f078cbe7e046eb52655e2e7e97f8c0a9a674f4da60d94fb0624edfcec9b5db32e8ba5a99a5f036f595680ae6fe02a262beaa73026e505cc52f99
languageName: node
linkType: hard
"mkdirp@npm:^0.5.1":
version: 0.5.6
resolution: "mkdirp@npm:0.5.6"
@@ -7161,6 +7248,13 @@ __metadata:
languageName: node
linkType: hard
"negotiator@npm:^1.0.0":
version: 1.0.0
resolution: "negotiator@npm:1.0.0"
checksum: 10/b5734e87295324fabf868e36fb97c84b7d7f3156ec5f4ee5bf6e488079c11054f818290fc33804cef7b1ee21f55eeb14caea83e7dafae6492a409b3e573153e5
languageName: node
linkType: hard
"neo-async@npm:^2.6.2":
version: 2.6.2
resolution: "neo-async@npm:2.6.2"
@@ -7451,6 +7545,13 @@ __metadata:
languageName: node
linkType: hard
"p-map@npm:^7.0.2":
version: 7.0.3
resolution: "p-map@npm:7.0.3"
checksum: 10/2ef48ccfc6dd387253d71bf502604f7893ed62090b2c9d73387f10006c342606b05233da0e4f29388227b61eb5aeface6197e166520c465c234552eeab2fe633
languageName: node
linkType: hard
"p-try@npm:^2.0.0":
version: 2.2.0
resolution: "p-try@npm:2.2.0"
@@ -7639,6 +7740,13 @@ __metadata:
languageName: node
linkType: hard
"proc-log@npm:^5.0.0":
version: 5.0.0
resolution: "proc-log@npm:5.0.0"
checksum: 10/35610bdb0177d3ab5d35f8827a429fb1dc2518d9e639f2151ac9007f01a061c30e0c635a970c9b00c39102216160f6ec54b62377c92fac3b7bfc2ad4b98d195c
languageName: node
linkType: hard
"process-nextick-args@npm:~2.0.0":
version: 2.0.1
resolution: "process-nextick-args@npm:2.0.1"
@@ -8161,6 +8269,15 @@ __metadata:
languageName: node
linkType: hard
"semver@npm:^7.7.3":
version: 7.7.3
resolution: "semver@npm:7.7.3"
bin:
semver: bin/semver.js
checksum: 10/8dbc3168e057a38fc322af909c7f5617483c50caddba135439ff09a754b20bdd6482a5123ff543dad4affa488ecf46ec5fb56d61312ad20bb140199b88dfaea9
languageName: node
linkType: hard
"set-blocking@npm:^2.0.0":
version: 2.0.0
resolution: "set-blocking@npm:2.0.0"
@@ -8326,6 +8443,17 @@ __metadata:
languageName: node
linkType: hard
"socks-proxy-agent@npm:^8.0.3":
version: 8.0.5
resolution: "socks-proxy-agent@npm:8.0.5"
dependencies:
agent-base: "npm:^7.1.2"
debug: "npm:^4.3.4"
socks: "npm:^2.8.3"
checksum: 10/ee99e1dacab0985b52cbe5a75640be6e604135e9489ebdc3048635d186012fbaecc20fbbe04b177dee434c319ba20f09b3e7dfefb7d932466c0d707744eac05c
languageName: node
linkType: hard
"socks@npm:^2.6.2":
version: 2.7.1
resolution: "socks@npm:2.7.1"
@@ -8336,6 +8464,16 @@ __metadata:
languageName: node
linkType: hard
"socks@npm:^2.8.3":
version: 2.8.7
resolution: "socks@npm:2.8.7"
dependencies:
ip-address: "npm:^10.0.1"
smart-buffer: "npm:^4.2.0"
checksum: 10/d19366c95908c19db154f329bbe94c2317d315dc933a7c2b5101e73f32a555c84fb199b62174e1490082a593a4933d8d5a9b297bde7d1419c14a11a965f51356
languageName: node
linkType: hard
"source-map-support@npm:0.5.13":
version: 0.5.13
resolution: "source-map-support@npm:0.5.13"
@@ -8367,6 +8505,15 @@ __metadata:
languageName: node
linkType: hard
"ssri@npm:^12.0.0":
version: 12.0.0
resolution: "ssri@npm:12.0.0"
dependencies:
minipass: "npm:^7.0.3"
checksum: 10/7024c1a6e39b3f18aa8f1c8290e884fe91b0f9ca5a6c6d410544daad54de0ba664db879afe16412e187c6c292fd60b937f047ee44292e5c2af2dcc6d8e1a9b48
languageName: node
linkType: hard
"ssri@npm:^9.0.0":
version: 9.0.1
resolution: "ssri@npm:9.0.1"
@@ -8681,16 +8828,16 @@ __metadata:
linkType: hard
"tar@npm:^6.1.11, tar@npm:^6.1.2":
version: 6.1.13
resolution: "tar@npm:6.1.13"
version: 6.2.1
resolution: "tar@npm:6.2.1"
dependencies:
chownr: "npm:^2.0.0"
fs-minipass: "npm:^2.0.0"
minipass: "npm:^4.0.0"
minipass: "npm:^5.0.0"
minizlib: "npm:^2.1.1"
mkdirp: "npm:^1.0.3"
yallist: "npm:^4.0.0"
checksum: 10/add2c3c6d0d71192186ec118d265b92d94be5cd57a0b8fdf0d29ee46dc846574925a5fc57170eefffd78201eda4c45d7604070b5a4b0648e4d6e1d65918b5a82
checksum: 10/bfbfbb2861888077fc1130b84029cdc2721efb93d1d1fb80f22a7ac3a98ec6f8972f29e564103bbebf5e97be67ebc356d37fa48dbc4960600a1eb7230fbd1ea0
languageName: node
linkType: hard
@@ -8722,10 +8869,10 @@ __metadata:
languageName: node
linkType: hard
"tmp@npm:^0.2.4":
version: 0.2.4
resolution: "tmp@npm:0.2.4"
checksum: 10/6fa6c4e6749824e51cb45f0b050090f0fec6b037cfd327d328ebaf3eae80b7e1a53c6651f9bc36f1fa80cf367ec9dc05067fc1a14034fcfbba96d3a2aaa5c732
"tmp@npm:^0.2.5":
version: 0.2.5
resolution: "tmp@npm:0.2.5"
checksum: 10/dd4b78b32385eab4899d3ae296007b34482b035b6d73e1201c4a9aede40860e90997a1452c65a2d21aee73d53e93cd167d741c3db4015d90e63b6d568a93d7ec
languageName: node
linkType: hard
@@ -9175,16 +9322,7 @@ __metadata:
languageName: node
linkType: hard
"undici@npm:^5.25.4":
version: 5.28.4
resolution: "undici@npm:5.28.4"
dependencies:
"@fastify/busboy": "npm:^2.0.0"
checksum: 10/a666a9f5ac4270c659fafc33d78b6b5039a0adbae3e28f934774c85dcc66ea91da907896f12b414bd6f578508b44d5dc206fa636afa0e49a4e1c9e99831ff065
languageName: node
linkType: hard
"undici@npm:^5.28.5":
"undici@npm:^5.25.4, undici@npm:^5.28.5":
version: 5.29.0
resolution: "undici@npm:5.29.0"
dependencies:
@@ -9202,6 +9340,15 @@ __metadata:
languageName: node
linkType: hard
"unique-filename@npm:^4.0.0":
version: 4.0.0
resolution: "unique-filename@npm:4.0.0"
dependencies:
unique-slug: "npm:^5.0.0"
checksum: 10/6a62094fcac286b9ec39edbd1f8f64ff92383baa430af303dfed1ffda5e47a08a6b316408554abfddd9730c78b6106bef4ca4d02c1231a735ddd56ced77573df
languageName: node
linkType: hard
"unique-slug@npm:^3.0.0":
version: 3.0.0
resolution: "unique-slug@npm:3.0.0"
@@ -9211,6 +9358,15 @@ __metadata:
languageName: node
linkType: hard
"unique-slug@npm:^5.0.0":
version: 5.0.0
resolution: "unique-slug@npm:5.0.0"
dependencies:
imurmurhash: "npm:^0.1.4"
checksum: 10/beafdf3d6f44990e0a5ce560f8f881b4ee811be70b6ba0db25298c31c8cf525ed963572b48cd03be1c1349084f9e339be4241666d7cf1ebdad20598d3c652b27
languageName: node
linkType: hard
"universal-user-agent@npm:^6.0.0":
version: 6.0.0
resolution: "universal-user-agent@npm:6.0.0"