mirror of
https://github.com/ModernRelay/omnigraph.git
synced 2026-06-09 01:35:18 +02:00
The CODEOWNERS required checks blocked every PR — the real root cause was a name mismatch, compounded by a path filter: - branch-protection.json required the contexts `CODEOWNERS / drift` and `CODEOWNERS / noedit` (the GitHub UI "workflow / job-id" display form), but the jobs report check-run names from their `name:` fields — "CODEOWNERS matches source" / "CODEOWNERS not hand-edited". The required contexts therefore never matched any reported check and sat permanently pending. - The workflow was also path-filtered to CODEOWNERS files, so it didn't even run for most PRs. Net effect: with both required checks unsatisfiable, every PR could only land via admin override (e.g. #140). Fixes: - A: drop the `paths:` filter so the workflow runs on every PR and both required contexts always report. - name fix: point branch-protection.json at the actual job names verbatim, and add a doc note that the contexts must equal the job `name:` values. - B: the `drift` job now re-renders and, on same-repo PRs, auto-commits the regenerated artifacts back to the branch (mirrors the openapi.json job in ci.yml); forks / manual runs strict-check instead. Contributors no longer run the script by hand. - D: render-codeowners.py also generates a "who owns what" path->owners + roles table spliced into docs/dev/codeowners.md between markers, so the human-readable view never drifts. Idempotent; CODEOWNERS output unchanged. - docs: correct the stale `enforce_admins: true` line (JSON and live are false). NOTE: the branch-protection.json change only takes effect after an admin runs `./scripts/apply-branch-protection.sh` (deliberate manual step, per docs/dev/branch-protection.md). Until then `main` still requires the old mismatched contexts, so this PR itself needs an admin-override merge — the last one that should be necessary. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
30 lines
929 B
JSON
30 lines
929 B
JSON
{
|
|
"_comment": "Branch protection policy for main. Applied via scripts/apply-branch-protection.sh. See docs/branch-protection.md for rationale.",
|
|
"required_status_checks": {
|
|
"strict": true,
|
|
"contexts": [
|
|
"Classify Changes",
|
|
"Check AGENTS.md Links",
|
|
"Test Workspace",
|
|
"Test omnigraph-server --features aws",
|
|
"CODEOWNERS matches source",
|
|
"CODEOWNERS not hand-edited"
|
|
]
|
|
},
|
|
"enforce_admins": false,
|
|
"required_pull_request_reviews": {
|
|
"dismissal_restrictions": {},
|
|
"dismiss_stale_reviews": true,
|
|
"require_code_owner_reviews": true,
|
|
"required_approving_review_count": 1,
|
|
"require_last_push_approval": false
|
|
},
|
|
"restrictions": null,
|
|
"required_linear_history": true,
|
|
"allow_force_pushes": false,
|
|
"allow_deletions": false,
|
|
"block_creations": false,
|
|
"required_conversation_resolution": true,
|
|
"lock_branch": false,
|
|
"allow_fork_syncing": false
|
|
}
|