release: attach signed SBOM attestations to exact artifacts - #51
release: attach signed SBOM attestations to exact artifacts#51seonghobae wants to merge 8 commits into
Conversation
|
Warning Review limit reached
Next review available in: 7 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
Comment |
|
Closing this implementation because it violates the repository's documented release trust boundary and integration sequence. Issue #46 and ContextualWisdomLab/.github#783 require the organization-owned, independently reviewed reusable attestation workflow to be implemented and immutably pinned before EgressWeave adds a narrow caller; this PR instead embeds OIDC/attestation write permissions directly in the repository-local release workflow. It also invokes |
Intent
Close issue #46 by integrating deterministic CycloneDX 1.7 SBOM evidence into the protected release path with credential-separated signing, exact attestation verification, offline bundles, and fail-closed publication ordering.
Test-first implementation
The initial contract commit
fb7cc116edf22eff34ae087badfaa64e4a3eb39cfailed before implementation. A follow-up contract also rejects cyclic release-job dependencies. The implemented path now requires:SHA256SUMSactions/attestv4.1.0 pinned to immutable commit59d89421af93a897026c735860bf21b6eb4f7b26id-token: write,attestations: write, andartifact-metadata: write, but no checkout or repository-code executiongh attestation trusted-root,--bundle, and--custom-trusted-rootTrust boundary
Build, immutable tag creation, attestation signing, read-only attestation verification, PyPI OIDC publication, and GitHub Release publication use separate jobs and least-privilege identities. The signer does not execute repository code. The PyPI job receives only canonical wheel/sdist files and contains no shell step. Public release creation remains downstream of PyPI and independently verified attestation evidence.
Standards basis
https://cyclonedx.org/bomactions/attest4.1.0 action contractVerification status
Current exact head:
a4cc9fb8a1fef5d1021beb793fd95b5561ebb975.The first implementation CI run found and corrected one documentation-contract line-wrap regression. Exact-current-head CI, package acceptance, SAST, Security Scan, CodeRabbit status, and review threads remain authoritative. Pending, queued, cancelled, stale-head, or previous-head evidence is not success.
Closes #46.