Skip to content

Commit 163dd2b

Browse files
Chore(attest): Migrate to actions/attest
actions/attest-build-provenance is a wrapper: since v4 it forwards its inputs to actions/attest and adds nothing else, and GitHub directs new implementations at actions/attest instead. With no predicate supplied, actions/attest emits SLSA build provenance by default, so the swap is behaviour-preserving. The wrapper does contribute one thing beyond forwarding, and this lane depends on it: it sets NODE_OPTIONS so node accepts response headers above its 16KB default, which some OCI registries exceed on the push-to-registry path. This workflow pushes provenance to GHCR, so dropping the setting would reintroduce the intermittent overflow that actions/attest-build-provenance#687 fixed. Carry it across explicitly, with a comment recording why it must stay. Permissions are unchanged. Co-authored-by: Claude <noreply@anthropic.com> Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
1 parent e0ed218 commit 163dd2b

2 files changed

Lines changed: 12 additions & 5 deletions

File tree

.github/workflows/build-test-release.yaml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1126,8 +1126,15 @@ jobs:
11261126
11271127
- name: 'Attest build provenance'
11281128
if: inputs.attestations
1129-
# yamllint disable-line rule:line-length
1130-
uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2
1129+
env:
1130+
# Carried over from actions/attest-build-provenance, which
1131+
# set this on its way through to actions/attest: node's
1132+
# default 16KB response header limit overflows against some
1133+
# OCI registries on the push-to-registry path. Removing it
1134+
# reintroduces actions/attest-build-provenance#687.
1135+
NODE_OPTIONS: '--max-http-header-size=32768'
1136+
# yamllint disable-line rule:line-length
1137+
uses: actions/attest@1e69f48acb82d1966a394da916b4c1698aa569d6 # v4.2.2
11311138
with:
11321139
subject-name: ${{ matrix.image }}
11331140
subject-digest: ${{ matrix.digest }}

docs/BRIEF.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ Vibrant, well-maintained ecosystem; pin by commit SHA as usual:
296296
| `aquasecurity/trivy-action` | image vulnerability scan (alternative/complement to house grype lane) |
297297
| `anchore/scan-action` (grype) | house-standard scanner; accepts image or SBOM input |
298298
| `sigstore/cosign-installer` | keyless image signing (`cosign sign <image>@<digest>`) |
299-
| `actions/attest-build-provenance` | SLSA provenance **for images** (`subject-name: <registry>/<image>`, `subject-digest`, `push-to-registry: true`) |
299+
| `actions/attest` | SLSA provenance **for images** (`subject-name: <registry>/<image>`, `subject-digest`, `push-to-registry: true`) |
300300
| GoogleContainerTools `container-structure-test` | declarative image tests (optional test hook) |
301301
| `google/go-containerregistry` (`crane`) | registry-side retag/copy for the promote lane (no pull/push of layers) |
302302

@@ -385,8 +385,8 @@ check availability and skip-with-warning (family convention).
385385
- **Image SBOM**: syft against the image (not just the source tree);
386386
attach to releases
387387
- **Signing/provenance** (release lanes): cosign keyless by digest +
388-
`actions/attest-build-provenance` with `push-to-registry`
389-
identical verification story to the other workflow families;
388+
`actions/attest` with `push-to-registry` identical verification
389+
story to the other workflow families;
390390
Registry support varies and the lane routes around it: GHCR takes
391391
both cleanly, Docker Hub and Nexus 3 store cosign signatures under
392392
the tag scheme but have no dependable referrers API, so their

0 commit comments

Comments
 (0)