Finding
actions/attest-build-provenance has become a no-op wrapper. From its v4.2.2 release notes:
As of version 4, actions/attest-build-provenance is simply a wrapper on top of actions/attest.
Existing applications may continue to use the attest-build-provenance action, but new implementations should use actions/attest instead.
Reading its action.yml confirms this literally: the composite forwards every input verbatim to actions/attest@508db95 # v4.2.1 and contains no logic of its own. When no predicate-type/predicate is supplied, actions/attest emits SLSA build provenance by default, so there is nothing to hand-roll on migration.
Why this repository is the priority case
Unlike the five sibling issues, the reference here is commented out — .github/workflows/build-test-release.yaml L410-420:
# TEMPLATE: When your build action does NOT handle attestations
# itself, uncomment this step to generate SLSA build provenance
# for real artefacts (verifiable with `gh attestation verify`).
# It ships commented out because attesting the trivial placeholder
# artefact provides no value:
# - name: 'Attest build provenance'
# if: inputs.attestations
# uses: actions/attest-build-provenance@a2bbfa25375fe432b6a289bc6b6cd05ecd0c4c32 # v4.1.0
# with:
# subject-path: 'dist/*'
That makes it more important to update rather than less. This is the snippet every new repository is instructed to uncomment, so leaving it seeds the superseded pattern into projects that do not exist yet — each of which then needs its own migration later. Every other issue in this set fixes one usage; this one prevents future ones.
The pin is also behind: a2bbfa2 (v4.1.0) against the portfolio's usual 4d10147 (v4.2.2). The migration supersedes the bump.
Suggested change
# TEMPLATE: When your build action does NOT handle attestations
# itself, uncomment this step to generate SLSA build provenance
# for real artefacts (verifiable with `gh attestation verify`).
# It ships commented out because attesting the trivial placeholder
# artefact provides no value:
# - name: 'Attest build provenance'
# if: inputs.attestations
# uses: actions/attest@<pinned-sha> # v4.2.1
# with:
# subject-path: 'dist/*'
actions/attest emits SLSA build provenance by default with only subject-path supplied, so the snippet stays exactly this short. The gh attestation verify guidance in the surrounding comment remains accurate.
Priority
Higher than the sibling issues for the reason above, though still not urgent — GitHub is explicit that existing applications may continue using the wrapper, and nothing carries a removal date.
References
Finding
actions/attest-build-provenancehas become a no-op wrapper. From its v4.2.2 release notes:Reading its
action.ymlconfirms this literally: the composite forwards every input verbatim toactions/attest@508db95 # v4.2.1and contains no logic of its own. When nopredicate-type/predicateis supplied,actions/attestemits SLSA build provenance by default, so there is nothing to hand-roll on migration.Why this repository is the priority case
Unlike the five sibling issues, the reference here is commented out —
.github/workflows/build-test-release.yamlL410-420:That makes it more important to update rather than less. This is the snippet every new repository is instructed to uncomment, so leaving it seeds the superseded pattern into projects that do not exist yet — each of which then needs its own migration later. Every other issue in this set fixes one usage; this one prevents future ones.
The pin is also behind:
a2bbfa2(v4.1.0) against the portfolio's usual4d10147(v4.2.2). The migration supersedes the bump.Suggested change
actions/attestemits SLSA build provenance by default with onlysubject-pathsupplied, so the snippet stays exactly this short. Thegh attestation verifyguidance in the surrounding comment remains accurate.Priority
Higher than the sibling issues for the reason above, though still not urgent — GitHub is explicit that existing applications may continue using the wrapper, and nothing carries a removal date.
References
actions/attestactions/attest-build-provenancev4.2.2 release notes