fix(review): enforce surface lane gate verdicts#1398
Open
JSONbored wants to merge 2 commits into
Open
Conversation
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1398 +/- ##
=======================================
Coverage 95.33% 95.33%
=======================================
Files 192 192
Lines 20750 20751 +1
Branches 7500 7502 +2
=======================================
+ Hits 19783 19784 +1
Misses 383 383
Partials 584 584
🚀 New features to boost your workflow:
|
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
gittensory-ui | bed232c | Commit Preview URL Branch Preview URL |
Jun 25 2026, 11:03 PM |
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.
Motivation
GateCheckEvaluationbut the published GitHub Gate check was being recomputed fromadvisory+policy, which could drop the surface-lane override and display a green Gate despite a surfacefailure/action_requiredverdict.applySurfaceGatetreated a generic evaluation with an emptyblockersarray as permissive, which could convert deliberate genericneutral/hold states (e.g. first-time-contributor grace) intosuccesswhen a surface lane returnedmerge.Description
createOrUpdateGateCheckRunto accept an optionalgateEvaluationand prefer it over recomputing the gate fromadvisory/policyso the finalized surface-lane verdict is published intact (src/github/app.ts).gateEvaluationfrom the processor into the Gate completion call so the published check run matches the already-overridden evaluation (src/queue/processors.ts).applySurfaceGateso genericneutral/action_requiredholds are preserved when the surface lane returnssuccess, while still preserving generic hard blockers and allowing surfacefailureto enforce a blocking conclusion (src/review/content-lane-wire.ts).gateEvaluationis published instead of being recomputed and (2) a generic neutral hold is preserved over a surfacemerge, and that surface rejections still override neutral holds (test/unit/github-app.test.ts,test/unit/content-lane-wire.test.ts).typeimport and small test/fixture adjustments to cover the new paths.Testing
npx vitest run test/unit/content-lane-wire.test.ts test/unit/github-app.test.ts, all tests in those files passed.tsc --noEmit.npm run test:coverage/npm run test:ci, but coverage finalization in this environment failed due to an unrelated tooling/runtime issue (TypeError: jsTokens is not a function) during coverage remapping; this is an environment/tooling failure and not a regression in the changes here.npm audit --audit-level=moderatecould not complete in this environment due to the registry audit endpoint returning403 Forbidden(external to the code changes).Codex Task