Skip to content

Commit 73ac8af

Browse files
committed
fix(release): grant provenance job contents:write and pass sha256sum format
two startup-blocking issues in release.yml when triggered on a v* tag: - the provenance job called slsa-github-generator with upload-assets:true but only granted contents:read to the reusable workflow. github rejects the run at startup with: "the nested job 'upload-assets' is requesting 'contents: write', but is only allowed 'contents: read'". the slsa reusable workflow needs write to attach provenance to the github release. - base64-subjects was being passed the raw hex sha. the slsa workflow expects base64("<sha> <name>\n") (the standard sha256sum line format). added a subjects-base64 build output that emits exactly that.
1 parent 3e1cb1f commit 73ac8af

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

.github/workflows/release.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ jobs:
2626
outputs:
2727
tarball-name: ${{ steps.pack.outputs.tarball-name }}
2828
tarball-sha256: ${{ steps.pack.outputs.tarball-sha256 }}
29+
subjects-base64: ${{ steps.pack.outputs.subjects-base64 }}
2930
steps:
3031
- name: harden runner
3132
uses: step-security/harden-runner@8d3c67de8e2fe68ef647c8db1e6a09f647780f40 # v2
@@ -54,8 +55,10 @@ jobs:
5455
set -euo pipefail
5556
tarball=$(npm pack --silent | tail -n 1)
5657
sha=$(shasum -a 256 "$tarball" | awk '{print $1}')
57-
echo "tarball-name=$tarball" >>"$GITHUB_OUTPUT"
58-
echo "tarball-sha256=$sha" >>"$GITHUB_OUTPUT"
58+
subjects=$(printf '%s %s\n' "$sha" "$tarball" | base64 -w0)
59+
echo "tarball-name=$tarball" >>"$GITHUB_OUTPUT"
60+
echo "tarball-sha256=$sha" >>"$GITHUB_OUTPUT"
61+
echo "subjects-base64=$subjects" >>"$GITHUB_OUTPUT"
5962
6063
- name: upload tarball
6164
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
@@ -70,11 +73,11 @@ jobs:
7073
needs: [build]
7174
permissions:
7275
actions: read
73-
contents: read
76+
contents: write
7477
id-token: write
7578
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@f7dd8c54c2067bafc12ca7a55595d5ee9b75204a # v2.1.0
7679
with:
77-
base64-subjects: ${{ needs.build.outputs.tarball-sha256 }}
80+
base64-subjects: ${{ needs.build.outputs.subjects-base64 }}
7881
provenance-name: ${{ needs.build.outputs.tarball-name }}.intoto.jsonl
7982
upload-assets: true
8083

0 commit comments

Comments
 (0)