build(build): replace SLSA attestation with actions/attest#332
Open
WilliamBerryiii wants to merge 5 commits intomainfrom
Open
build(build): replace SLSA attestation with actions/attest#332WilliamBerryiii wants to merge 5 commits intomainfrom
WilliamBerryiii wants to merge 5 commits intomainfrom
Conversation
- replace slsa-framework/slsa-github-generator with actions/attest-build-provenance and anchore/sbom-action in pages-deploy.yml - add attestations:write permission to pages-deploy.yml and main.yml - add .syft.yaml for SPDX 2.3 SBOM generation via Syft - update ACTIONS-SECURITY.md to remove SLSA exception - register new action SHAs in Update-ActionSHAPinning.ps1 🔐 - Generated by Copilot
katriendg
approved these changes
Mar 31, 2026
Collaborator
katriendg
left a comment
There was a problem hiding this comment.
Minor comment, also did I see correctly that the application matrix build workflow is mentioned in the original issue and not updated (still used SLSA), but addressed in a subsequent issue?
Open
8 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaced the
slsa-framework/slsa-github-generatorreusable workflow with GitHub Actions native attestation tools in the documentation deployment pipeline. The new attestation job usesactions/attest-build-provenancefor build provenance andanchore/sbom-actionpaired withactions/attestfor SBOM generation and attestation. This removes the tag-based pinning exception that SLSA required and brings all attestation actions under SHA-pinned compliance.Description
Workflow Attestation Replacement
The pages-deploy.yml workflow's
slsa-attestationjob was replaced with a newattest-documentationjob. The new job downloads the build artifact, attests build provenance viaactions/attest-build-provenance@v2.3.0, then performs a sparse checkout of .syft.yaml to generate an SPDX 2.3 SBOM throughanchore/sbom-action@v0.20.0, and attests the SBOM withactions/attest@v2.3.0. The complex base64-encoded hash generation step previously required by the SLSA generator was removed entirely. Thedeployjob dependency was updated from[build, slsa-attestation]to[build, attest-documentation], and the attestation job remains gated to production deployments only.Permission and Security Policy Updates
Added
attestations: writepermission in both main.yml (caller workflow) and pages-deploy.yml (called workflow) to support the new attestation actions. Removed the SLSA exception section from ACTIONS-SECURITY.md since tag-based pinning is no longer needed, and simplified the compliance verification grep by removing theslsa-frameworkexclusion.New Configuration and SHA Pinning
Added .syft.yaml configuring Syft for SPDX 2.3 JSON output with four catalogers (javascript, python, go, rust-cargo), sha256 digests, and a 1 MB file-size skip threshold. Registered SHA pins in Update-ActionSHAPinning.ps1 for all three new actions:
actions/attest@v2(v2.3.0),actions/attest-build-provenance@v2(v2.3.0), andanchore/sbom-action@v0(v0.20.0).Related Issue
Related to #100
Type of Change
Implementation Details
Replaced the SLSA reusable workflow approach with three discrete GitHub Actions that run as steps within a single job:
actions/attest-build-provenance@v2.3.0attests the downloaded documentation artifact directly, removing the need for base64-encoded hash computation.anchore/sbom-action@v0.20.0produces an SPDX 2.3 JSON SBOM guided by .syft.yaml, which specifies catalogers for the project's four language ecosystems.actions/attest@v2.3.0attests the generated SBOM as a secondary attestation artifact.The sparse checkout of .syft.yaml in the attestation job minimizes the checkout footprint. All new actions are SHA-pinned in
Update-ActionSHAPinning.ps1and theactions/checkoutstep reuses the same SHA pin (v6.0.2) already present in the build job.Testing Performed
Validation Steps
grep -r "slsa" .github/scripts/security/Update-ActionSHAPinning.ps1attestations: writepermission is present in both main.yml and pages-deploy.ymlChecklist
terraform fmton all Terraform codeterraform validateon all Terraform codeaz bicep formaton all Bicep codeaz bicep buildto validate all Bicep codemega-linter-runner)Additional Notes
Screenshots (if applicable)
N/A