github: Implement ChecksByChange with per-run detail and checks URL#1265
Open
ed-irl wants to merge 1 commit into
Open
github: Implement ChecksByChange with per-run detail and checks URL#1265ed-irl wants to merge 1 commit into
ed-irl wants to merge 1 commit into
Conversation
Collaborator
Author
|
This change is part of the following stack:
Change managed by git-spice. |
This was referenced Jun 13, 2026
2d1068f to
8c55472
Compare
c273782 to
5c49ed5
Compare
Implements the GitHub side of the per-change checks API: rollup
state, per-run name/state/url for both CheckRun and StatusContext
nodes, and the PR's checks summary page URL.
- Per-PR GraphQL query over PullRequest.commits(last:1).
StatusCheckRollup gives us the rollup state and the contexts
connection (capped at 50 per PR; pagination not yet needed).
- rollupFromStatusCheckRollupState collapses the StatusState enum
to the upstream rollup taxonomy. Empty input -> ChecksNone
distinguishes 'no checks' from 'all passed'. Unknown states
fall back to ChecksFailed.
- nativeCheckRunState lower-cases CheckRun.conclusion when status
is COMPLETED, otherwise CheckRun.status. nativeStatusContextState
lower-cases StatusContext.state. Forge-native vocabulary is
preserved in runs[] so future UI surfaces can distinguish
neutral/cancelled/skipped/timed_out without an upstream API
change.
- PullRequest.permalink + '/checks' provides the click target.
- ChangeChecksState (merge handler) gets a small refactor onto
the new rollup helper without changing its existing 'no rollup
-> passed' semantics.
ChecksByChange issues one query per PR. Batched-via-aliases would
be sharper for tall stacks but is awkward in shurcooL/githubv4;
the per-PR queries are cheap relative to the rest of gs ll.
Integration fixtures regenerate on the next forgetest -update
pass (real GH credentials).
8c55472 to
6cf278c
Compare
5c49ed5 to
bccbbeb
Compare
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.
Implements the GitHub side of the per-change checks API: rollup
state, per-run name/state/url for both CheckRun and StatusContext
nodes, and the PR's checks summary page URL.
StatusCheckRollup gives us the rollup state and the contexts
connection (capped at 50 per PR; pagination not yet needed).
to the upstream rollup taxonomy. Empty input -> ChecksNone
distinguishes 'no checks' from 'all passed'. Unknown states
fall back to ChecksFailed.
is COMPLETED, otherwise CheckRun.status. nativeStatusContextState
lower-cases StatusContext.state. Forge-native vocabulary is
preserved in runs[] so future UI surfaces can distinguish
neutral/cancelled/skipped/timed_out without an upstream API
change.
the new rollup helper without changing its existing 'no rollup
-> passed' semantics.
ChecksByChange issues one query per PR. Batched-via-aliases would
be sharper for tall stacks but is awkward in shurcooL/githubv4;
the per-PR queries are cheap relative to the rest of gs ll.
Integration fixtures regenerate on the next forgetest -update
pass (real GH credentials).