feat: deny releases using experimental Hermeto backends#1736
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughThis PR adds a new ChangesExperimental Hermeto backend detection
🎯 2 (Simple) | ⏱️ ~12 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks 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 |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@policy/release/sbom_spdx/sbom_spdx.rego`:
- Around line 370-386: The rule deny contains result currently requires finding
an externalRef with referenceType "purl" (variable externalref and id :=
externalref.referenceLocator), which causes annotated packages without a purl to
skip this deny; modify the logic in the deny rule so that if no purl externalRef
exists you still produce a result by deriving id from a fallback identifier
(e.g., pkg.name or pkg.SPDXID) instead of requiring externalref; update the
variables used by metadata.result_helper_with_term (the id passed to
metadata.result_helper_with_term and any uses of pkg.externalRefs) to use the
purl when present and the fallback when absent so annotated SPDX packages are
denied consistently.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Enterprise
Run ID: b580bfad-756c-4f64-9a1b-317e1dbf7c92
📒 Files selected for processing (8)
antora/docs/modules/ROOT/pages/packages/release_sbom_cyclonedx.adocantora/docs/modules/ROOT/pages/packages/release_sbom_spdx.adocantora/docs/modules/ROOT/pages/release_policy.adocantora/docs/modules/ROOT/partials/release_policy_nav.adocpolicy/release/sbom_cyclonedx/sbom_cyclonedx.regopolicy/release/sbom_cyclonedx/sbom_cyclonedx_test.regopolicy/release/sbom_spdx/sbom_spdx.regopolicy/release/sbom_spdx/sbom_spdx_test.rego
Codecov Report✅ All modified and coverable lines are covered by tests.
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
simonbaird
left a comment
There was a problem hiding this comment.
I think it's good. Can you think of a way to test it on a real image with a real sbom that has an experimental Hermeto? The reporter might be able to share an image like that.
|
🤖 Finished Review · ✅ Success · Started 7:19 AM UTC · Completed 7:29 AM UTC |
|
Looks good to me Previous runReviewFindingsLow
Info
Previous run (2)Looks good to me FindingsLow
Previous run (3)ReviewFindingsMedium
Low
|
|
🤖 Finished Review · ✅ Success · Started 10:35 AM UTC · Completed 10:45 AM UTC |
st3penta
left a comment
There was a problem hiding this comment.
Beware: these new rules don't have an effective_on date, meaning they will take effect immediately on deployment.
If no production builds currently use experimental Hermeto backends, that's fine. Otherwise, an effective_on date, and maybe a konflux announce would give teams a migration window.
Is the immediate enforcement intentional?
|
🤖 Finished Review · ✅ Success · Started 11:13 AM UTC · Completed 11:24 AM UTC |
|
🤖 Review · |
@st3penta I set the |
Builds whose SBOM contains components fetched by an experimental Hermeto backend (hermeto:backend:experimental:*) now violate the release policy. Covers both SPDX and CycloneDX SBOM formats. Ref: EC-1799 Signed-off-by: Jan Smid <jsmid@redhat.com> Co-Authored-By: Claude
|
🤖 Finished Review · ✅ Success · Started 2:16 PM UTC · Completed 2:27 PM UTC |
|
About the effective date, you could ask in Jira what the requestor and/or stakeholders think is the best choice. Perhaps they'd prefer something shorter. (A good technique just in case no-one cares, you can say "I'm planning to have this rule become affective on X, let me know if you prefer another date.) One more note: FYI, the way we're deploying policy changes now, it takes up to two weeks to go from merged to deployed, which might be a reason to choose a later effective date. |
|
Tested with SPDX SBOM https://redhat.atlassian.net/browse/EC-1799?focusedCommentId=17374185. |
|
🤖 Finished Retro · ✅ Success · Started 2:27 PM UTC · Completed 2:34 PM UTC |
Retro: PR #1736 — feat: deny releases using experimental Hermeto backendsTimeline: Human-authored PR by jsmid1, created June 2, merged June 24 (22 days). The fullsend-ai-review bot first ran on June 19 (17-day gap from PR creation — unclear why). The bot ran 5 times on the same commit ( Review quality: The bot flagged legitimate issues (annotator string mismatch, PURL extraction duplication, OPA complete-rule-conflict risk, test gaps). However, it missed a significant release safety concern: new deny rules lacked Redundant dispatches: The bot reviewed the same commit 5 times and approved 3 times. This is already tracked by existing issues in fullsend-ai/fullsend: #963 (skip dispatch when HEAD SHA already reviewed) and #1452 (deduplicate dispatches for same SHA). No new proposal needed. 1 proposal filed to add review guidance about Proposals filed
|
Builds whose SBOM contains components fetched by an experimental Hermeto backend (hermeto:backend:experimental:*) now violate the release policy. Covers both SPDX and CycloneDX SBOM formats.
Issue: EC-1799
Co-Authored-By: Claude