fix: migrate from slsa-github-generator to actions/attest-build-provenance#542
fix: migrate from slsa-github-generator to actions/attest-build-provenance#542
Conversation
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request refactors the project's release workflow to enhance supply chain security and build process control. It addresses a known limitation with Highlights
Ignored Files
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
Dependency ReviewThe following issues were found:
License Issues.github/workflows/release-slsa.yml
OpenSSF Scorecard
Scanned Files
|
There was a problem hiding this comment.
Code Review
This pull request migrates the release workflow from slsa-framework/slsa-github-generator to actions/attest-build-provenance. The changes consist of removing configuration files from the .slsa-goreleaser/ directory, which are now obsolete due to the new workflow. The file deletions are consistent with the migration described in the pull request. I have not found any issues in the provided changes.
There was a problem hiding this comment.
Pull request overview
Updates the release pipeline to stop using the SLSA GitHub Generator reusable workflow (which can’t fully comply with SHA-pinning rules) and instead generate build provenance via GitHub’s native attestation store using actions/attest-build-provenance.
Changes:
- Replaced the SLSA reusable workflow-based build with an in-workflow Go build matrix (8 targets).
- Added provenance generation via
actions/attest-build-provenanceand updated release verification instructions to usegh attestation verify. - Removed now-unused
.slsa-goreleaser/target config files.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/release-slsa.yml |
Reworks the release build to self-build binaries, attest provenance, and update verification instructions. |
.slsa-goreleaser/linux-386.yml |
Removed legacy SLSA builder config (no longer needed). |
.slsa-goreleaser/linux-amd64.yml |
Removed legacy SLSA builder config (no longer needed). |
.slsa-goreleaser/linux-arm64.yml |
Removed legacy SLSA builder config (no longer needed). |
.slsa-goreleaser/linux-armv6.yml |
Removed legacy SLSA builder config (no longer needed). |
.slsa-goreleaser/linux-armv7.yml |
Removed legacy SLSA builder config (no longer needed). |
.slsa-goreleaser/darwin-amd64.yml |
Removed legacy SLSA builder config (no longer needed). |
.slsa-goreleaser/darwin-arm64.yml |
Removed legacy SLSA builder config (no longer needed). |
.slsa-goreleaser/windows-amd64.yml |
Removed legacy SLSA builder config (no longer needed). |
slsa-framework/slsa-github-generator's internal actions use tag refs which conflict with our SHA-pinning ruleset. This is a known unfixable limitation (slsa-framework/slsa-github-generator#4440). Replace with: - Org-wide reusable workflow at netresearch/.github (SLSA Build L3: build runs in a separate repo the caller cannot modify) - actions/attest-build-provenance@v4.1.0 for provenance attestations (SHA-pinnable, stores in GitHub's attestation store) - Verification via `gh attestation verify` instead of `slsa-verifier` Remove .slsa-goreleaser/ configs (no longer needed). Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
1206d55 to
d820308
Compare
Summary
Migrates the release workflow from
slsa-framework/slsa-github-generatorto an org-wide reusable workflow atnetresearch/.githubusingactions/attest-build-provenance.Why
slsa-github-generator's internal actions use tag refs (@v2.1.0) which conflict with our SHA-pinning ruleset added in #536. This is a known unfixable limitation.Architecture
True SLSA Build Level 3: The build workflow lives in
netresearch/.github— ofelia contributors cannot modify the build process even with write access to ofelia.What changed
slsa-framework/slsa-github-generator(reusable, tag-pinned)netresearch/.githubreusable workflow (SHA-pinnable).intoto.jsonlrelease assetactions/attest-build-provenanceslsa-verifier verify-artifactgh attestation verifyDependencies
Test plan