Skip to content

ci: fix required status check context in main ruleset#378

Merged
santoshkumarradha merged 1 commit intomainfrom
ci/fix-ruleset-context
Apr 9, 2026
Merged

ci: fix required status check context in main ruleset#378
santoshkumarradha merged 1 commit intomainfrom
ci/fix-ruleset-context

Conversation

@santoshkumarradha
Copy link
Copy Markdown
Member

Problem

The main branch ruleset's required status check context was stored as `"Coverage Summary / coverage-summary"` — the "workflow / job" display format that GitHub's UI uses, not the actual check-run name. GitHub's check-runs API only reports the job name (`"coverage-summary"`), so the matcher could never find a satisfying run on any PR head commit.

Symptom: every open PR (#375, #376, etc.) showed:
```
Coverage Summary / coverage-summary — Expected: Waiting for status to be reported [Required]
```
…even though the workflow was green on the same commit. The successful check and the ghost "Expected" entry sat side-by-side in the GitHub checks UI, and the "Expected" one blocked merge via the ruleset's required-check rule.

Discovered while debugging why #375 and #376 were stuck with seemingly-passing CI. Verified against the raw API:

  • Ruleset required context: `"Coverage Summary / coverage-summary"`
  • Actual check-run name on head commit: `"coverage-summary"` (app: `github-actions`, app_id: 15368)

Fix

Change the context to `"coverage-summary"` (matches the actual check-run name from the aggregator job in `.github/workflows/coverage.yml`) and pin it to the `github-actions` app (`integration_id: 15368`) so no third-party app can satisfy the required check by posting a status with the same name.

Everything else in the ruleset — merge queue (squash + ALLGREEN), PR review requirements, code-owner review, thread resolution, bypass actors, strict mode — is unchanged.

Notes

Test plan

The rule-set's required check context was stored as
"Coverage Summary / coverage-summary" — the "workflow / job" display
format used in GitHub's UI, not the actual check-run name. GitHub's
check-runs API reports the job name only ("coverage-summary"), so the
matcher could not find a satisfying run on any PR head commit.

Symptom: every open PR surfaced
"Coverage Summary / coverage-summary — Expected: Waiting for status to
be reported" as a blocking required check, even though the workflow
itself was green on that commit. The UI displayed the workflow's
actual check run as successful AND the ghost "Expected" entry from
the ruleset side-by-side.

Fix: change the context to "coverage-summary" (matches the actual
check-run name emitted by .github/workflows/coverage.yml's aggregator
job) and pin it to the github-actions app (app_id=15368) so no
third-party app can satisfy it by posting a status with the same
name.

Everything else in the ruleset — merge queue, PR review requirements,
code-owner review, thread resolution, bypass actors, strict mode —
is unchanged.

This JSON file is the source of truth; the Sync Rulesets workflow
applies it to the live repo on push to main, so this commit restores
consistency between the checked-in config and the running rule.
@santoshkumarradha santoshkumarradha requested review from a team and AbirAbbas as code owners April 9, 2026 19:07
@santoshkumarradha santoshkumarradha merged commit b04dc82 into main Apr 9, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant