Skip to content

Adjust node max-http-header-size setting - #687

Merged
bdehamer merged 1 commit into
mainfrom
bdehamer/node-max-http-header-size
Aug 25, 2025
Merged

Adjust node max-http-header-size setting#687
bdehamer merged 1 commit into
mainfrom
bdehamer/node-max-http-header-size

Conversation

@bdehamer

Copy link
Copy Markdown
Collaborator

Closes: #606

When using the push-to-registry option some users have encountered header overflow issues when interacting with certain OCI registries.

By default, node limits the total size of headers received in a single response to 16KB. We have seen certain interactions with the Google Artifact Registry API return headers totaling 21KB.

This change updates the maximum allowed header size to 32KB in order to give us some more breathing room when interacting with these registries.

Signed-off-by: Brian DeHamer <bdehamer@github.com>
Copilot AI review requested due to automatic review settings August 23, 2025 23:31
@bdehamer
bdehamer requested a review from a team as a code owner August 23, 2025 23:31

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR increases the Node.js HTTP header size limit from the default 16KB to 32KB to resolve header overflow issues when using the push-to-registry option with certain OCI registries, particularly Google Artifact Registry.

  • Adds NODE_OPTIONS environment variable with --max-http-header-size=32768 to the attest action step

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@bdehamer
bdehamer merged commit ff19f40 into main Aug 25, 2025
19 checks passed
@bdehamer
bdehamer deleted the bdehamer/node-max-http-header-size branch August 25, 2025 20:52
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions added a commit to modeseven-lfreleng-actions/sigul-sign-docker that referenced this pull request Aug 24, 2026
actions/attest-build-provenance has been a wrapper over
actions/attest since v4, and GitHub steers new work at the
underlying action. With no predicate-type/predicate supplied,
actions/attest emits SLSA build provenance, so the published
predicate is unchanged and the SBOM step already used it.

The swap is not quite a one-line change. The wrapper also sets
NODE_OPTIONS=--max-http-header-size=32768 on the step it wraps:
node caps a single response's headers at 16KB, which some OCI
registries overflow when attestations are pushed as referrers
(actions/attest-build-provenance#687). push-to-registry is
unconditional here, so every release took that path and dropping
the setting would have reintroduced the overflow. Carry it across
with a comment saying why, so a later tidy-up does not read it as
redundant.

Set it on the SBOM step too. That step was migrated to
actions/attest earlier and pushes referrers the same way, so it has
been running without the guard; nothing has overflowed yet, but the
exposure is identical and the inconsistency invites removing the
one that remains.

Closes: lfreleng-actions#192

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
tykeal pushed a commit to lfreleng-actions/docker-workflows that referenced this pull request Aug 24, 2026
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

OCIError: Error uploading artifact to container registry with Google Artifact Registry

3 participants