Skip to content

Fix a CI gate that reports pending on a green main - #6

Merged
leggetter merged 2 commits into
mainfrom
fix/ci-gate-status-check
Aug 13, 2026
Merged

Fix a CI gate that reports pending on a green main#6
leggetter merged 2 commits into
mainfrom
fix/ci-gate-status-check

Conversation

@leggetter

Copy link
Copy Markdown
Contributor

Found while cutting 0.1.0 — the release skill's "is main green?" check said pending while both checks had passed.

gh api .../commits/${SHA}/status reads legacy commit statuses. GitHub Actions doesn't write those; it writes check runs. This repo has zero statuses, so the call returns pending with total_count: 0 regardless of CI. The skill then says "Do not release on pending" — so an agent following it literally never releases.

Replaced with statusCheckRollup, which folds check runs and legacy statuses into one verdict:

legacy status: pending (total=0)
rollup state:  SUCCESS

Docs only — no code or workflow change. Inherited verbatim from the hookdeck-cli release skill, which has the same bug: hookdeck/hookdeck-cli#336.

leggetter and others added 2 commits August 12, 2026 20:23
The skill checked `main` was green with

    gh api "repos/.../commits/${SHA}/status" --jq .state

and said not to release on `pending`. That endpoint reads legacy commit
statuses, which GitHub Actions does not write — it writes check runs.
This repository has zero statuses, so the call returns `pending` with
`total_count: 0` however green CI is. An agent following the skill
literally would refuse to release, always.

I hit this cutting 0.1.0: the gate said pending while both checks had
passed. Replaced with `statusCheckRollup`, which folds check runs and
legacy statuses into one verdict, so it stays correct if a status-writing
integration is ever added. Verified `SUCCESS` against the released
commit. The rollup states are uppercase, so the surrounding wording
changed too.

Inherited verbatim from the hookdeck-cli release skill, which has the
same bug — filed as hookdeck/hookdeck-cli#336.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ab8ayFXEtVZQ14PQ9kthSc
Drops the issue link and the account of how the CI-gate bug was found —
an agent reading this needs the command and the trap, not the history.

Same for the auth section: the bootstrapping story is done and lives in
the README, and the trusted publisher is already configured, so the skill
now states its settings rather than explaining the sequence that led to
them.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ab8ayFXEtVZQ14PQ9kthSc
@leggetter
leggetter merged commit 4afd423 into main Aug 13, 2026
3 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