fix: map cancelled check runs to failure, preserve raw conclusion#464
Merged
Conversation
Cancelled runs (manual cancel or timeout) now map to "failure" instead of "error" so they block merge like real failures. The description field now stores the raw GitHub conclusion (cancelled, failure, timed_out, etc.) instead of the mapped state, so dashboards can differentiate between true failures and cancelled runs. Updated both the webhook and refresh paths for consistency. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
509d9fb to
b41eab0
Compare
Member
Author
|
cr 👍 makes sense to me.
deploy_block 🌵 |
These GitHub check conclusions represent runs that did not complete successfully and should block merge. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Member
Author
|
Good call. QA 📱 CR 📱 carry-over Ref: https://docs.github.com/en/graphql/reference/checks#enum-checkconclusionstate |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Summary
failureinstead oferror, so they block merge like real failuresdescriptionfield incommit_statusesnow stores the raw GitHub conclusion (cancelled,failure,timed_out, etc.) instead of the mapped state, so Grafana dashboards can differentiate between true failures and cancelled runsgithubHooks.js) and the refresh path (git-manager.js) for consistencyContext
GitHub Actions reports skipped/cancelled jobs with conclusion
cancelled, which was falling into thedefaultcase inmapCheckToStatus()and being recorded asstate='error'. This polluted CI dashboards with ~800 false error entries per week.The
descriptioncolumn is only used for display text in the Pulldasher UI popover — no code branches on its value. Storing the raw conclusion is arguably better UX since it tells users why a check failed.Test plan
failure(noterror) incommit_statusessuccess🤖 Generated with Claude Code