ci: add merge gate - #107
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughA new GitHub Actions job Changes
Sequence Diagram(s)sequenceDiagram
participant PR as "Pull Request / Event"
participant Runner as "GitHub Actions Runner"
participant TestJob as "test job"
participant MergeGate as "merge-gate job"
PR->>Runner: trigger workflow
Runner->>TestJob: execute tests
TestJob-->>Runner: report status
Runner->>MergeGate: start (needs: test)
MergeGate->>Runner: read needs context (upstream job results)
MergeGate->>MergeGate: aggregate non-passing jobs
alt any failures
MergeGate->>Runner: print red summary and exit 1
else all pass
MergeGate->>Runner: print green summary and exit 0
end
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
Note Gemini is unable to generate a summary for this pull request due to the file types involved not being currently supported. |
Greptile SummaryThis PR adds a Key points:
Confidence Score: 5/5
Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[push / pull_request trigger] --> B[test job\nmatrix: 3.11 / 3.12 / 3.13]
B -->|always\nneeds: test| C[merge-gate job]
C --> D{parse needs context\nvia toJSON}
D --> E{any job NOT in\nsuccess or skipped?}
E -->|yes| F["print: merge-gate red —\nfailed: blocked_summary | all: summary\nexit 1"]
E -->|no| G["print: merge-gate green\nexit 0"]
F --> H[Branch protection blocks merge]
G --> I[Branch protection allows merge]
Last reviewed commit: efc5b9c |
|
There was a problem hiding this comment.
Cerberus inline comments for 34000e920567
- Inline comments posted: 1/1
- Canonical report: verdict report
- Cerberus verdict:
WARN(6 reviewers. Failures: 0, warnings: 1, skipped: 0.)
Review feedback triageRefreshed every live feedback surface against commit
Local verification on
Required checks are rerunning for this push; I’ll only merge once the new |
There was a problem hiding this comment.
Cerberus inline comments for 483f7b88f17f
- Inline comments posted: 1/1
- Canonical report: verdict report
- Cerberus verdict:
WARN(6 reviewers. Failures: 0, warnings: 1, skipped: 0.)
Why This Matters
Trade-offs / Risks
needs, and thatmerge-gatestays green only when upstream deterministic jobs succeed or are intentionally skipped.What Changed
This PR adds a stable
merge-gatejob and then tightens it so the gate is readable, name-agnostic, and explicit about what blocks merges.Base Branch
This PR
Architecture / State Change
Why this is better:
python3makes the runner dependency explicit instead of relying on an aliasIntent Reference
Intent Reference
merge-gate.needsis tracked in [CI] Document merge-gate dependency maintenance contract #108.Changes
Changes
.github/workflows/test.ymlmerge-gateneedsmaintenance contract inline${{ toJSON(needs) }}successandskippedas passing statespython3explicitlyAcceptance Criteria
Acceptance Criteria
merge-gatestatus suitable for branch protection.successorskipped.Alternatives Considered
Alternatives Considered
Option A — Keep multiple required checks
Option B — Keep the first merge-gate draft unchanged
Option C — Harden the merge-gate in this PR
Manual QA
Manual QA
ruby -e 'require "yaml"; YAML.load_file(".github/workflows/test.yml"); puts "yaml ok"'uv venv --python 3.11 .venv311 && uv pip install -e '.[dev]'ruff check src/mypy src/pytest -vsuccess,skipped,failure, and mixed upstream statesWalkthrough
Walkthrough
merge-gateplus thetest (3.11/3.12/3.13)checks on this PRmerge-gate.needsstill relies on documented manual maintenance; repo-level docs follow-up is tracked in [CI] Document merge-gate dependency maintenance contract #108Before / After
Before / After
merge-gatewith clearer failure messaging, explicitpython3, and all open review threads resolved.Screenshots are omitted because this is workflow-only work; the relevant proof is the GitHub Actions run and the workflow diff.
Test Coverage
Test Coverage
test (3.11)test (3.12)test (3.13)merge-gateruff check src/mypy src/pytest -vMerge Confidence
Merge Confidence
efc5b9cchecks finish green.needsunless follow-up [CI] Document merge-gate dependency maintenance contract #108 lands.Summary by CodeRabbit