feat(github-app): merge-readiness aggregate gate (#551) - #821
Merged
Conversation
Adds `mergeReadinessGateMode` (off/advisory/block) — one composite control that rolls the four sub-gates (linked-issue, duplicate, quality/readiness, slop) into a single Gittensory Gate pass/fail, so a maintainer flips ONE switch instead of four and keeps one required check for branch protection. When set, it overrides every sub-gate to its mode and reuses the existing evaluateGateCheck aggregation + "what's still blocking" summary; when off it's a no-op (sub-gates keep their own modes). Default off preserves existing behavior. - migration 0038 + the setting wired through types/schema/repositories/openapi/ settings-preview/processors (mirrors slopGateMode exactly) - composite logic in advisory.ts (applyMergeReadinessGate) - tests: off/advisory/block + "summary lists each unmet condition"; 1898 unit tests pass, all changed lines covered, migration guard validates 0038 Deferred to a follow-up: the .gittensory.yml gate.mergeReadiness config-as-code parity (needs the focus-manifest gate-schema parser extended). Closes #551
|
Note Gittensory Gate skippedPR closed before full evaluation. No late first comment was created.
💰 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 #821 +/- ##
=======================================
Coverage 96.77% 96.77%
=======================================
Files 97 97
Lines 14001 14006 +5
Branches 5099 5102 +3
=======================================
+ Hits 13549 13555 +6
Misses 86 86
+ Partials 366 365 -1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Contributor
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
The #551 openapi schema change added mergeReadinessGateMode to the repository settings schema; regenerate the committed UI openapi spec so ui:openapi:check passes.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
gittensory-ui | 3288077 | Commit Preview URL Branch Preview URL |
Jun 17 2026, 10:04 AM |
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.




One composite control —
mergeReadinessGateMode(off/advisory/block) — that rolls the four sub-gates (linked-issue, duplicate, quality/readiness, slop) into a singleGittensory Gatepass/fail, so a maintainer flips ONE switch instead of four and keeps one required check for branch protection (the prereq Phase-1 auto-merge consumes).How it works
When set, it overrides every sub-gate to its mode and reuses the existing
evaluateGateCheckaggregation + "what's still blocking" summary. Whenoff, it's a no-op (sub-gates keep their own modes). Defaultoffpreserves existing behavior for every current repo.Changes
slopGateModeexactly.advisory.ts(applyMergeReadinessGate, ~30 lines).Verification
1898 unit tests pass; typecheck clean; all changed lines covered (verified vs lcov); migration guard confirms 0038.
Deferred (follow-up)
The
.gittensory.ymlgate.mergeReadinessconfig-as-code parity — it needs the focus-manifest gate-schema parser extended, so it's split out to keep this PR focused. The DB-settable path is complete.Closes #551