Summary
main's branch protection required_status_checks.contexts is:
```
["test (ubuntu-latest, 1.22)", "test (ubuntu-latest, 1.23)", "lint", "generate"]
```
None of these match the current CI workflow's actual job names (`Test (ubuntu-latest, Go 1.22)`, `golangci-lint`, `go generate check`, etc. — capitalization and wording have drifted since the required-checks list was last configured, likely from an earlier workflow rename). Because GitHub matches required checks by exact context-name string, these four checks never report as passing/failing — they sit permanently pending, which puts every PR into mergeStateStatus: BLOCKED even when every actual CI job (12+ checks) is green.
Impact
Hit this merging PR #46: fully green CI, gh pr merge --merge refused with "the base branch policy prohibits the merge." Had to fall back to --admin to bypass. enforce_admins is false, so this doesn't block outright, but it silently defeats the purpose of required-status-checks (any admin merge — including an accidental one — skips them entirely rather than being genuinely gated on the checks passing).
Suggested fix
Update the branch protection required_status_checks.contexts to match the current workflow's real job names (e.g. via gh api repos/SoundMatt/go-FuSa/branches/main/protection/required_status_checks -X PATCH ... or the repo Settings UI), most likely:
Test (ubuntu-latest, Go 1.22)
Test (ubuntu-latest, Go 1.23)
golangci-lint
go generate check
(or whichever subset should actually gate merges going forward).
Summary
main's branch protectionrequired_status_checks.contextsis:```
["test (ubuntu-latest, 1.22)", "test (ubuntu-latest, 1.23)", "lint", "generate"]
```
None of these match the current CI workflow's actual job names (`Test (ubuntu-latest, Go 1.22)`, `golangci-lint`, `go generate check`, etc. — capitalization and wording have drifted since the required-checks list was last configured, likely from an earlier workflow rename). Because GitHub matches required checks by exact context-name string, these four checks never report as passing/failing — they sit permanently pending, which puts every PR into
mergeStateStatus: BLOCKEDeven when every actual CI job (12+ checks) is green.Impact
Hit this merging PR #46: fully green CI,
gh pr merge --mergerefused with "the base branch policy prohibits the merge." Had to fall back to--adminto bypass.enforce_adminsisfalse, so this doesn't block outright, but it silently defeats the purpose of required-status-checks (any admin merge — including an accidental one — skips them entirely rather than being genuinely gated on the checks passing).Suggested fix
Update the branch protection
required_status_checks.contextsto match the current workflow's real job names (e.g. viagh api repos/SoundMatt/go-FuSa/branches/main/protection/required_status_checks -X PATCH ...or the repo Settings UI), most likely:Test (ubuntu-latest, Go 1.22)Test (ubuntu-latest, Go 1.23)golangci-lintgo generate check(or whichever subset should actually gate merges going forward).