Skip to content

feat(pr-status): name the required checks that never reported - #152

Merged
CybotTM merged 1 commit into
mainfrom
feat/detect-undispatched-and-fork-runs
Aug 7, 2026
Merged

feat(pr-status): name the required checks that never reported#152
CybotTM merged 1 commit into
mainfrom
feat/detect-undispatched-and-fork-runs

Conversation

@CybotTM

@CybotTM CybotTM commented Aug 7, 2026

Copy link
Copy Markdown
Member

The dead end

BLOCKED with no failing check, no open thread and no missing review currently ends at NEXT: investigate — check branch protection manually.

That is the signature of a required context which never reported at all. The status rollup only lists checks that ran, so the PR page shows nothing but green — there is no red thing to look at, and mergeStateStatus alone never says which context is missing. Hit three times in one session — t3x-nr-repurpose#70, t3x-nr-mcp-agent#92, t3x-cowriter#134 — each answered by hand-diffing the ruleset's required contexts against the reported check-runs.

Two causes, both mechanical

  • Workflows never dispatched. Common after an Actions incident, or after a force-push during one. gh run list for the branch shows nothing at all. Close+reopen re-fires the pull_request events without adding a commit.
  • Fork PR awaiting approval. Runs sit at completed/action_required and need approving once per push. Until then the PR shows a misleadingly small green set: cowriter#134 displayed 5 passing checks of 88, and approving them immediately exposed a Rector failure and eight failing unit cells. A fork PR's green is not green until approved.

The change

Both inputs were already collected — $required from the rules endpoint, $checks from the rollup — so the diff costs no extra API call. The verdict now names them:

NEXT: await-checks — 7 required check(s) never reported — All security checks, CodeQL, Opengrep OSS, betterleaks, ci / All CI checks, scorecard, zizmor. Nothing is red; they were never dispatched, or this is a fork PR whose runs need approving (once per push)

undispatched is also exposed in --json next to the other check facts. This follows the fix-signatures precedent immediately above it, added for the same reason: a gate GitHub reports only as mergeStateStatus, with no red check to find.

Verified

  • the jq diff reproduces exactly the seven contexts hand-derived from repurpose#70 at the time
  • no regression: merged PRs still answer none — PR is MERGED, and undispatched is [] on a clean PR
  • bash -n clean — the cmd string deliberately carries no single quotes, the trap the neighbouring fix-signatures comment already documents

BLOCKED with no failing check, no open thread and no missing review fell
through to "investigate — check branch protection manually". That is the
shape of a required context which never reported at all: the rollup only
lists what ran, so the PR page shows nothing but green.

Hit three times in one session (t3x-nr-repurpose#70, t3x-nr-mcp-agent#92,
t3x-cowriter#134), each time answered by hand-diffing the ruleset's
required contexts against the reported check-runs. Both underlying causes
are mechanical:

- workflows never dispatched (common after an Actions incident, or after
  a force-push during one) — close+reopen re-fires the events
- a fork PR whose runs sit at action_required and need approving once per
  push — until then the PR shows a misleadingly small green set;
  cowriter#134 displayed 5 of 88 passing, and approving them immediately
  exposed a Rector failure and eight failing unit cells

Both inputs were already collected: $required from the rules endpoint and
$checks from the rollup. The diff needs no extra API call.

Follows the fix-signatures precedent directly above, which was added for
the same reason — a gate GitHub reports only as mergeStateStatus.

Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
Copilot AI lite review requested due to automatic review settings August 7, 2026 17:43
@sonarqubecloud

sonarqubecloud Bot commented Aug 7, 2026

Copy link
Copy Markdown

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@CybotTM
CybotTM merged commit c311705 into main Aug 7, 2026
21 of 22 checks passed
@CybotTM
CybotTM deleted the feat/detect-undispatched-and-fork-runs branch August 7, 2026 17:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants