build(release): bind reviewed source to SBOM and provenance evidence - #164
Draft
seonghobae wants to merge 13 commits into
Draft
build(release): bind reviewed source to SBOM and provenance evidence#164seonghobae wants to merge 13 commits into
seonghobae wants to merge 13 commits into
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
6 tasks
Contributor
Author
|
Review-driven release-boundary repair on the current lineage:
This head supersedes |
This was referenced Sep 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Advance release/supply-chain evidence without publishing from an unready product head. This Draft is a repository-owned foundation slice: one reviewed Rust source identity produces a deterministic binary archive, source/build hashes, SPDX JSON SBOM and machine-readable manifest; only a protected-main manual-dispatch attestation job may mint provenance/SBOM attestations.
This PR remains intentionally stacked on Rust-toolchain prerequisite #77. It is not a release or promotion vehicle by itself and does not create a tag, GitHub Release, container image, registry object, deployment or production promotion.
RED → GREEN lineage retained
bf6ba08557b0900ef7959d8e9e2b83b0ad0f7fe9introduced the release-evidence contract before the workflow existed.5ce56d19e2c37ce1824b1d4d8657f6391387238fadded source/version binding, locked quality gates, deterministic archive construction, SPDX generation and immutable action pins.26541c9558b3c64363318e3042f787df3d019f65proved scanning only the ELF could omit the locked dependency graph; GREEN2bacb6c1b330e6c657195f2b77b32e9862479df6packagesCargo.toml,Cargo.lockandrust-toolchain.tomlbeside the binary and scans the exact package directory.ea56a03acf747a0fc14ee85690cfce0eeeae1a56proved the PR-executable build job must not hold attestation authority; GREENc3b450ee321ff399a67d1d9d4d8d1f5ca0936b63isolates attestation in a protected-main dispatch-only job.3634074e2061c1f7b66a5de2fec0ce1e695a73e2rejected unnecessaryartifact-metadata: write; GREENb040c878b9809a80f87d5bb52c3125512e4ba622removed it.33806510290exposed invalid job-levelrunner.temp; RED3a34d35de477155c4bdb2d45f7f09db830f31800made it executable policy and1d3f5a4bd618084031f3e722804b7c61303baeb5moved runner-only paths into step/runtime scope.f5eb6d3f5df03ce221b396afbb76a708d18cbc2ais a formatting-only repair intests/release_evidence_contract.rsand is adopted as current branch truth rather than treated as a race.Current stack — 2026-09-05 KST
Current child head is exact
f5eb6d3f5df03ce221b396afbb76a708d18cbc2a. GitHub records the PR Draft and mergeable, but its base still points at old parent#77@2f96565b9452ea49627b28f7ae380e07b68af115.Live prerequisite #77 is now exact
d386d6f57e0c8de3e4839d6c61b593e41f9d7e20, itself non-force integrated with protectedmain@5829a0f08d78de464dd24393ce5d0f25fba9d126andbehind_by=0. Therefore #164 is still a stack-repair candidate, not an integration candidate. Do not mechanically merge it into the stale parent or close it; after #77 becomes protected truth, retarget/non-force restack from fresh protected main and preserve every unique release-evidence delta.Current exact child workflow evidence is historical for the future restacked head but remains useful diagnostic evidence: CI run
33878901387completed success onf5eb6d3..., whileRelease evidencerun33878901452completed cancelled; bothBuild exact-source release evidenceandAttest protected-main release evidencejobs were cancelled. That is not release GREEN and cannot transfer after the required parent/protected-main restack.Security and publication boundary
The PR-executable build job has only
contents: read: it may build/test/SBOM/upload evidence but cannot mint OIDC-backed attestations. The separate protected-main dispatch job must bind requested version, exact protected source, manifest identity and recorded hashes before attestation, with only the minimum OIDC/attestation permissions.This slice still does not close #84. Final release readiness requires protected auth/egress/data/enforcement prerequisites, final container-filesystem SBOM and immutable OCI digest, signature/provenance verification before admission/promotion, exact deployment/attack evidence, migration compatibility, canary criteria, independent evidence retention, and measured rollback/roll-forward.
Integration gate
Keep Draft until #77 or a verified successor is protected truth. Then non-force reconstruct this exact valid release-evidence delta on fresh protected
main, reacquire repository/security/coverage/package/SBOM/provenance/current-review/thread/governance evidence on one unchanged exact head, and only then evaluate ordinary protected merge. No self/model approval, force push, routine bypass, publication from a feature branch, gate weakening or predecessor-evidence reuse.