Skip to content

release: sign and attest the tarball, its .sha256 and machine.env - #104

Merged
aledbf merged 1 commit into
mainfrom
release-provenance
Oct 13, 2026
Merged

aledbf merged 1 commit into
mainfrom
release-provenance

Conversation

@aledbf

@aledbf aledbf commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

S1 of the supply-chain plan, for spin-machine.

  • release.yml gets id-token: write and cosign. For each of the tarball, its .sha256 and machine.env it runs sign-blob and attest-blob --type slsaprovenance1 (the predicate comes from go tool provenance), then checks both bundles one file at a time. Right before Publish, go tool attestgate files -require provenance _output/release runs, and the bundles go up with the release.
  • workflows/workflows_test.go: go-tools' attestgate.Gate. The CI artifacts, the lab log, the qemu runtime image (only ci.yml pulls it) and report.json are excused in NotPublished, each with its reason.
  • go-tools moves to 428d61c, and gets the provenance and attestgate tools.
  • docs/releasing.md: how to verify both bundles.

Planted: removing id-token: write fails the test (release.yml/release/Publish: attests with no id-token). The workflow change itself is only proven by the next release run.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

S1 of the supply-chain plan. Each file the release offers is signed and
attested with its SLSA provenance (go tool provenance: this workflow at
its commit, every versions.yaml pin), each bundle verified file by file
against the identity that made it, and attestgate files checks the
directory right before the upload. workflows_test holds every workflow
to attesting before it publishes; the steps that upload only what a
person reads, or what ci.yml pulls, are named with why.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@aledbf
aledbf merged commit d692a7c into main Oct 13, 2026
7 checks passed
@aledbf
aledbf deleted the release-provenance branch October 13, 2026 12:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant