ci: unpin SLSA reusable workflows from commit SHAs
slsa-verifier reads the trusted-builder ref from the provenance and
rejects a bare commit SHA ("unexpected ref type"), which breaks the
attestations that BCR's presubmit verifies. Pin to the semantic
version tag instead:
publish-to-bcr/.github/workflows/publish.yaml → @v1.2.0
bazel-contrib/.github .../release_ruleset.yaml → @v7.6.0
Also adds a comment at each call site explaining why these must not
be SHA-pinned.
diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml
index 1f5f856..1abf80d 100644
--- a/.github/workflows/publish.yaml
+++ b/.github/workflows/publish.yaml
@@ -21,7 +21,11 @@
type: string
jobs:
publish:
- uses: bazel-contrib/publish-to-bcr/.github/workflows/publish.yaml@0a23c53c2baffdaf2ce8dd23c2c0e45eb3b79093 # v1.2.0
+ # SLSA trusted-builder reusable workflows MUST be referenced by a semantic
+ # version tag, not a commit SHA: slsa-verifier reads the builder ref from the
+ # provenance and rejects a bare SHA ("unexpected ref type"), which breaks the
+ # source.json attestation that BCR's presubmit verifies. Do not SHA-pin this.
+ uses: bazel-contrib/publish-to-bcr/.github/workflows/publish.yaml@v1.2.0
with:
draft: false
tag_name: ${{ inputs.tag_name }}
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index 0081fb4..b8b5260 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -20,7 +20,11 @@
contents: write
jobs:
release:
- uses: bazel-contrib/.github/.github/workflows/release_ruleset.yaml@e5ab8fc4c23cb13783fad499e8bd865fd9f6d669 # v7.6.0
+ # SLSA trusted-builder reusable workflows MUST be referenced by a semantic
+ # version tag, not a commit SHA: slsa-verifier reads the builder ref from the
+ # provenance and rejects a bare SHA ("unexpected ref type"), which breaks the
+ # release-artifact attestations that BCR's presubmit verifies. Do not SHA-pin.
+ uses: bazel-contrib/.github/.github/workflows/release_ruleset.yaml@v7.6.0
with:
release_files: rules_js-*.tar.gz
prerelease: false