Skip to content

fix(release): bind attestations to the workflow trigger ref - #180

Merged
rldyourmnd merged 2 commits into
mainfrom
fix/attestation-trigger-ref
Sep 19, 2026
Merged

rldyourmnd merged 2 commits into
mainfrom
fix/attestation-trigger-ref

Conversation

@rldyourmnd

Copy link
Copy Markdown
Contributor

Summary

  • The automatic release pipeline creates the tag inside the same run that builds the artifact, so GitHub provenance binds the push trigger ref (refs/heads/main), not refs/tags/gds-v*. Offline verification rejected gds-v0.9.8 for exactly that mismatch.
  • The envelope now records both refs: source_ref stays the exact release boundary; trigger_ref carries the ref the signer actually records. The expected attestation identity digest and every verifier (bundle, release directory, consumer install) use trigger_ref when present and fall back to source_ref for legacy envelopes.
  • The workflow passes --trigger-ref "$GITHUB_REF"; failure envelopes record both refs as well.
  • Drops the leftover --extract-harness-evidence-* flags and their archive reader — evidence stopped being a release-builder input when channels were removed.
  • Schema: optional trigger_ref (sourceRef shape) on release and release-failure envelopes.

Verification

  • scripts/validate_shell.sh PASS (shellcheck 0.11.0, 8 scripts)
  • scripts/validate_go_core.sh --quick PASS (tidy, vet, tests)
  • go test ./... PASS (all packages)
  • python3 -m pytest 70/70 (pinned env)
  • scripts/validate_release.sh PASS including integrated assurance on the committed tree
  • Backward compatibility: envelopes without trigger_ref verify via source_ref unchanged; allowed_channels remains in the trust policy for legacy artifacts.

Generated with Devin

The automatic pipeline creates the release tag inside the same run that
builds the artifact, so GitHub provenance binds the push trigger ref
(refs/heads/main), not the tag. The envelope now records both refs:
source_ref stays the exact release boundary and trigger_ref carries the
ref the signer actually recorded. The expected attestation identity digest
and all verifiers use trigger_ref when present and fall back to
source_ref for legacy envelopes.

Also drops the harness-evidence archive extraction flags left over from
the removed evidence-input flow.
@rldyourmnd
rldyourmnd merged commit dd4013e into main Sep 19, 2026
8 checks passed
@rldyourmnd
rldyourmnd deleted the fix/attestation-trigger-ref branch September 19, 2026 20:30
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.

1 participant