feat(review): post a quiet "review skipped (reason)" status when auto-review eligibility fails#3694
Conversation
Map each auto-review skip reason to a public-safe summary, record it in audit/product-usage metadata, and finalize the Orb review check as skipped with that summary instead of a gate failure when AI review is bypassed. Co-authored-by: Cursor <cursoragent@cursor.com>
…s test Co-authored-by: Cursor <cursoragent@cursor.com>
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
|
Warning 🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 ⏸️ Gittensory review result - manual review recommendedReview updated: 2026-07-06 04:58:44 UTC
⏸️ Suggested Action - Manual Review Review summary Nits — 5 non-blocking
Review context
Contributor next steps
Signal definitions
🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by Gittensory, a quiet PR intelligence layer for OSS maintainers.
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3694 +/- ##
=======================================
Coverage 93.35% 93.35%
=======================================
Files 315 315
Lines 32191 32197 +6
Branches 11809 11811 +2
=======================================
+ Hits 30053 30059 +6
Misses 1507 1507
Partials 631 631
🚀 New features to boost your workflow:
|
#3694 (merged independently, unaware of this fix) made the gate check-run publish a quiet "skipped (reason)" status instead of the evaluated gate conclusion whenever auto-review is skipped -- including for an ignored author, since evaluateAutoReviewSkipReason checks the same review.auto_review.ignore_authors config this PR's own eligibility check does. That silently reintroduced the exact bypass this PR exists to close: an ignored author's PR would show "skipped" on its gate check-run instead of a real hard-rule failure (e.g. no linked issue), even though the gate evaluation itself was computed correctly. Only take the "skipped status" shortcut when publicSurfaceSkipped is false. publicSurfaceSkipped is already the flag this PR's ignored-author path (and decidePublicSurface's own skip conditions) sets specifically so the deterministic gate keeps reporting truthfully even when public review output is suppressed -- reusing it here keeps the two mechanisms consistent instead of introducing new reason-string matching. A benign content-based skip (draft, WIP title, too-large, docs-only, base-branch, auto-pause) never sets publicSurfaceSkipped, so #3694's quiet status is unaffected for those cases.
* fix(review): keep gate evaluation for ignored authors * fix(review): keep the real gate verdict for ignored authors past #3694 #3694 (merged independently, unaware of this fix) made the gate check-run publish a quiet "skipped (reason)" status instead of the evaluated gate conclusion whenever auto-review is skipped -- including for an ignored author, since evaluateAutoReviewSkipReason checks the same review.auto_review.ignore_authors config this PR's own eligibility check does. That silently reintroduced the exact bypass this PR exists to close: an ignored author's PR would show "skipped" on its gate check-run instead of a real hard-rule failure (e.g. no linked issue), even though the gate evaluation itself was computed correctly. Only take the "skipped status" shortcut when publicSurfaceSkipped is false. publicSurfaceSkipped is already the flag this PR's ignored-author path (and decidePublicSurface's own skip conditions) sets specifically so the deterministic gate keeps reporting truthfully even when public review output is suppressed -- reusing it here keeps the two mechanisms consistent instead of introducing new reason-string matching. A benign content-based skip (draft, WIP title, too-large, docs-only, base-branch, auto-pause) never sets publicSurfaceSkipped, so #3694's quiet status is unaffected for those cases.
Summary
AUTO_REVIEW_SKIP_SUMMARY/resolveAutoReviewSkipSummarymapping each auto-review skip reason to a public-safe one-line sentence (mirrors settings-previewSKIP_SUMMARY).auditPullRequestAutoReviewSkipto record the summary in audit metadata and product-usage telemetry.Fixes #2067
Test plan
npx tsc -p tsconfig.json --noEmitfocus-manifesttests for every known skip-reason summary + unknown fallbackauto-review-wiringaudit metadata includessummaryqueue.test.tsintegration: no AI call, gate check conclusionskipped, audit summary presentMade with Cursor