cli/api
Kynan Ware 1c274a8a56 fix(pr status): don't count cancelled checks as failures
When a GitHub Actions workflow uses concurrency with cancel-in-progress,
cancelled runs were counted as failures in `gh pr status` and
`gh pr view`, even when a newer run for the same check name succeeded.
The GitHub web UI and `gh pr checks` both handle this correctly.

Three changes fix this:

1. Add a `cancelled` check status category. Cancelled runs are now
   excluded from all summary counts (passing/failing/pending) and
   subtracted from the total, matching the web UI behavior.

2. Move `eliminateDuplicates` from pkg/cmd/pr/checks to
   `api.EliminateDuplicateChecks` (exported). The function operates
   entirely on `api.CheckContext` and is now shared by both `pr checks`
   and `ChecksStatus()` (used by `pr status` and `pr view`).

3. Apply deduplication in the `ChecksStatus()` slow path, keeping only
   the most recent run per check name — consistent with `pr checks`.

Fixes #12895

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-11 12:33:31 -06:00
..
client.go refactor: deduplicate scope error handling between api/client.go and project queries 2026-03-05 20:57:32 +05:30
client_test.go Merge pull request #12596 from elijahthis/fix/clarify-scope-error 2026-03-02 11:12:35 -07:00
export_pr.go Add closedByPullRequestsReferences JSON field to issue view (#10941) 2025-05-07 13:59:22 +01:00
export_pr_test.go Add databaseId to assignees GraphQL fragment 2026-02-25 10:26:46 -05:00
export_repo.go Remove unnecessary pointers to Go maps 2021-10-25 17:20:12 +02:00
http_client.go pin REST API version to 2022-11-28 2026-02-13 19:46:16 +01:00
http_client_test.go pin REST API version to 2022-11-28 2026-02-13 19:46:16 +01:00
pull_request_test.go fix(pr status): don't count cancelled checks as failures 2026-03-11 12:33:31 -06:00
queries_branch_issue_reference.go Update api/queries_branch_issue_reference.go 2024-08-18 09:25:30 +08:00
queries_comments.go Add generic actorDisplayName for all actor display names 2026-03-06 11:55:09 -07:00
queries_issue.go Add generic actorDisplayName for all actor display names 2026-03-06 11:55:09 -07:00
queries_org.go Refactor OrganizationTeam 2024-01-26 00:21:52 +08:00
queries_pr.go fix(pr status): don't count cancelled checks as failures 2026-03-11 12:33:31 -06:00
queries_pr_review.go Address review comments: use actorDisplayName for Copilot author display 2026-03-06 20:36:46 -07:00
queries_pr_test.go Fetch org teams via repository.owner inline fragment 2026-03-06 09:47:47 -07:00
queries_projects_v2.go typo: dont to don't 2026-01-26 22:25:00 +08:00
queries_projects_v2_test.go Add test to ensure null values are skipped 2025-12-22 10:16:21 -05:00
queries_repo.go Address review comments: use actorDisplayName for Copilot author display 2026-03-06 20:36:46 -07:00
queries_repo_test.go Address review comments: use actorDisplayName for Copilot author display 2026-03-06 20:36:46 -07:00
queries_user.go refactor: use a more straightforward return value 2025-02-23 22:59:33 +08:00
query_builder.go feat(pr): add changeType field to files JSON output 2026-03-01 15:35:05 +05:30
query_builder_test.go feat(pr): add changeType field to files JSON output 2026-03-01 15:35:05 +05:30
reaction_groups.go Eliminate API overfetching in pr commands 2021-04-30 20:34:36 +02:00
reaction_groups_test.go Address PR comments 2020-12-08 10:24:02 -05:00