Skip to content

feat: add json output for gh pr checks - #9079

Merged
andyfeller merged 4 commits into
trunkfrom
pr_checks_json
May 16, 2024
Merged

andyfeller merged 4 commits into
trunkfrom
pr_checks_json

Conversation

@nobe4

@nobe4 nobe4 commented May 14, 2024

Copy link
Copy Markdown
Contributor

This PR proposes JSON ouptup support for the gh pr checks command.

Unlike the suggestion in #6056 (comment), it doesn't do any aggregation, and rather returns the plain values.

The fields were extracted from

Name string `json:"name"`
State string `json:"state"`
StartedAt time.Time `json:"startedAt"`
CompletedAt time.Time `json:"completedAt"`
Link string `json:"link"`
Bucket string `json:"bucket"`
Event string `json:"event"`
Workflow string `json:"workflow"`
Description string `json:"description"`

The logic was inspired by https://github.com/cli/cli/blob/4b077daf7e74dbe6bf933f69e220066e3a12e8b4/pkg/cmd/repo/deploy-key/list/list.go upon suggestions from @andyfeller.

Fixes #6056

@nobe4
nobe4 requested a review from a team as a code owner May 14, 2024 06:01
@nobe4
nobe4 requested a review from andyfeller May 14, 2024 06:01
@cliAutomation cliAutomation added the external pull request originating outside of the CLI core team label May 14, 2024
Comment thread pkg/cmd/pr/checks/checks.go
@nobe4 nobe4 self-assigned this May 14, 2024
@nobe4 nobe4 changed the title feat: add json output for PR checks feat: add json output for gh pr checks May 14, 2024
In order to filter json fields, the `ExportData` interface needed to be implemented with logic that iterated on the selected fields.
Comment thread pkg/cmd/pr/checks/aggregate.go

@andyfeller andyfeller left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thank you again, @nobe4, for your contribution! ❤️

@andyfeller
andyfeller merged commit e14f0d7 into trunk May 16, 2024
@andyfeller
andyfeller deleted the pr_checks_json branch May 16, 2024 17:14
izumin5210 referenced this pull request in izumin5210/dotfiles Jun 2, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [cli/cli](https://togithub.com/cli/cli) | minor | `v2.49.2` ->
`v2.50.0` |

---

### Release Notes

<details>
<summary>cli/cli (cli/cli)</summary>

### [`v2.50.0`](https://togithub.com/cli/cli/releases/tag/v2.50.0):
GitHub CLI 2.50.0

[Compare Source](https://togithub.com/cli/cli/compare/v2.49.2...v2.50.0)

#### What's Changed

- Refactor git credential flow code by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/9089](https://togithub.com/cli/cli/pull/9089)
- feat: add json output for `gh pr checks` by
[@&#8203;nobe4](https://togithub.com/nobe4) in
[https://github.com/cli/cli/pull/9079](https://togithub.com/cli/cli/pull/9079)
- Rework first auth tests with new gitcredential abstractions by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/9095](https://togithub.com/cli/cli/pull/9095)
- list the various alias permutations for the command and subcommands,
via '--help' and 'gh reference' by
[@&#8203;gabemontero](https://togithub.com/gabemontero) in
[https://github.com/cli/cli/pull/8824](https://togithub.com/cli/cli/pull/8824)
- Removed tty message when checking for extension upgrades by
[@&#8203;leevic31](https://togithub.com/leevic31) in
[https://github.com/cli/cli/pull/9088](https://togithub.com/cli/cli/pull/9088)
- Fix doc bug for gh run watch by
[@&#8203;jasonodonnell](https://togithub.com/jasonodonnell) in
[https://github.com/cli/cli/pull/9052](https://togithub.com/cli/cli/pull/9052)
- feat: add support for stateReason in `gh pr view` by
[@&#8203;nobe4](https://togithub.com/nobe4) in
[https://github.com/cli/cli/pull/9080](https://togithub.com/cli/cli/pull/9080)
- fix: rename the `Attempts` field to `Attempt`; expose in `gh run view`
and `gh run ls` by [@&#8203;cawfeecake](https://togithub.com/cawfeecake)
in
[https://github.com/cli/cli/pull/8905](https://togithub.com/cli/cli/pull/8905)
- Update regex in changedFilesNames to handle quoted paths by
[@&#8203;anda3](https://togithub.com/anda3) in
[https://github.com/cli/cli/pull/9115](https://togithub.com/cli/cli/pull/9115)
- Add a `gh variable get FOO` command by
[@&#8203;arnested](https://togithub.com/arnested) in
[https://github.com/cli/cli/pull/9106](https://togithub.com/cli/cli/pull/9106)
- Add macOS pkg installer to deployment
([#&#8203;7554](https://togithub.com/cli/cli/issues/7554)) by
[@&#8203;paulober](https://togithub.com/paulober) in
[https://github.com/cli/cli/pull/7555](https://togithub.com/cli/cli/pull/7555)
- Add integration tests for `gh attestation verify` shared workflow use
case by [@&#8203;malancas](https://togithub.com/malancas) in
[https://github.com/cli/cli/pull/9107](https://togithub.com/cli/cli/pull/9107)
- Add build provenance for gh CLI releases by
[@&#8203;malancas](https://togithub.com/malancas) in
[https://github.com/cli/cli/pull/9087](https://togithub.com/cli/cli/pull/9087)
- build(deps): bump github.com/gabriel-vasile/mimetype from 1.4.3 to
1.4.4 by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/9124](https://togithub.com/cli/cli/pull/9124)
- Build completions during release on macos by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/9136](https://togithub.com/cli/cli/pull/9136)
- Clarify Mac OS Installer packages are unsigned by
[@&#8203;andyfeller](https://togithub.com/andyfeller) in
[https://github.com/cli/cli/pull/9140](https://togithub.com/cli/cli/pull/9140)

#### New Contributors

- [@&#8203;gabemontero](https://togithub.com/gabemontero) made their
first contribution in
[https://github.com/cli/cli/pull/8824](https://togithub.com/cli/cli/pull/8824)
- [@&#8203;jasonodonnell](https://togithub.com/jasonodonnell) made their
first contribution in
[https://github.com/cli/cli/pull/9052](https://togithub.com/cli/cli/pull/9052)
- [@&#8203;anda3](https://togithub.com/anda3) made their first
contribution in
[https://github.com/cli/cli/pull/9115](https://togithub.com/cli/cli/pull/9115)
- [@&#8203;arnested](https://togithub.com/arnested) made their first
contribution in
[https://github.com/cli/cli/pull/9106](https://togithub.com/cli/cli/pull/9106)
- [@&#8203;paulober](https://togithub.com/paulober) made their first
contribution in
[https://github.com/cli/cli/pull/7555](https://togithub.com/cli/cli/pull/7555)

**Full Changelog**: cli/cli@v2.49.2...v2.50.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/izumin5210/dotfiles).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNzcuOCIsInVwZGF0ZWRJblZlciI6IjM3LjM3Ny44IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: izumin5210-update-aqua-checksum[bot] <169593670+izumin5210-update-aqua-checksum[bot]@users.noreply.github.com>
renovate Bot referenced this pull request in scottames/dots Jun 2, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [aquaproj/aqua-registry](https://togithub.com/aquaproj/aqua-registry)
| minor | `v4.185.1` -> `v4.188.0` |
| [casey/just](https://togithub.com/casey/just) | minor | `1.26.0` ->
`1.27.0` |
| [charmbracelet/gum](https://togithub.com/charmbracelet/gum) | patch |
`v0.14.0` -> `v0.14.1` |
| [cli/cli](https://togithub.com/cli/cli) | minor | `v2.49.2` ->
`v2.50.0` |
| [dagger/dagger](https://togithub.com/dagger/dagger) | patch |
`v0.11.4` -> `v0.11.6` |
| [dprint/dprint](https://togithub.com/dprint/dprint) | minor | `0.45.1`
-> `0.46.1` |
| [fujiwara/awslim](https://togithub.com/fujiwara/awslim) | patch |
`v0.1.1` -> `v0.1.2` |
| [golangci/golangci-lint](https://togithub.com/golangci/golangci-lint)
| minor | `v1.58.2` -> `v1.59.0` |
| [simulot/immich-go](https://togithub.com/simulot/immich-go) | minor |
`0.14.1` -> `0.15.0` |
| [snyk/cli](https://togithub.com/snyk/cli) | patch | `v1.1291.0` ->
`v1.1291.1` |
| [twpayne/chezmoi](https://togithub.com/twpayne/chezmoi) | patch |
`v2.48.1` -> `v2.48.2` |
| [weaveworks/eksctl](https://togithub.com/weaveworks/eksctl) | minor |
`v0.179.0` -> `v0.180.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>aquaproj/aqua-registry (aquaproj/aqua-registry)</summary>

###
[`v4.188.0`](https://togithub.com/aquaproj/aqua-registry/releases/tag/v4.188.0)

[Compare
Source](https://togithub.com/aquaproj/aqua-registry/compare/v4.187.1...v4.188.0)


[Issues](https://togithub.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.188.0)
| [Pull
Requests](https://togithub.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.188.0)
| aquaproj/aqua-registry@v4.187.1...v4.188.0

#### 🎉 New Packages


[#&#8203;23408](https://togithub.com/aquaproj/aqua-registry/issues/23408)
[getsavvyinc/savvy-cli](https://togithub.com/getsavvyinc/savvy-cli):
Create, share, and run runbooks from your terminal

[#&#8203;23384](https://togithub.com/aquaproj/aqua-registry/issues/23384)
[joshmedeski/sesh](https://togithub.com/joshmedeski/sesh): Smart session
manager for the terminal
[@&#8203;CrystalMethod](https://togithub.com/CrystalMethod)

###
[`v4.187.1`](https://togithub.com/aquaproj/aqua-registry/releases/tag/v4.187.1)

[Compare
Source](https://togithub.com/aquaproj/aqua-registry/compare/v4.187.0...v4.187.1)


[Issues](https://togithub.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.187.1)
| [Pull
Requests](https://togithub.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.187.1)
| aquaproj/aqua-registry@v4.187.0...v4.187.1

#### Fixes


[#&#8203;23378](https://togithub.com/aquaproj/aqua-registry/issues/23378)
authzed/zed: Use gnu binary instead of musl binary
[@&#8203;sapphi-red](https://togithub.com/sapphi-red)

musl version exists for linux, but it is dynamically linked to musl libc
and therefore doesn't work on glibc systems.

###
[`v4.187.0`](https://togithub.com/aquaproj/aqua-registry/releases/tag/v4.187.0)

[Compare
Source](https://togithub.com/aquaproj/aqua-registry/compare/v4.186.0...v4.187.0)


[Issues](https://togithub.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.187.0)
| [Pull
Requests](https://togithub.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.187.0)
| aquaproj/aqua-registry@v4.186.0...v4.187.0

#### 🎉 New Packages


[#&#8203;23375](https://togithub.com/aquaproj/aqua-registry/issues/23375)
[authzed/zed](https://togithub.com/authzed/zed): Official command-line
tool for managing SpiceDB
[@&#8203;sapphi-red](https://togithub.com/sapphi-red)

[#&#8203;23277](https://togithub.com/aquaproj/aqua-registry/issues/23277)
[nucleuscloud/neosync](https://togithub.com/nucleuscloud/neosync): Open
source data anonymization and synthetic data orchestration for
developers. Create high fidelity synthetic data and sync it across your
environments

###
[`v4.186.0`](https://togithub.com/aquaproj/aqua-registry/releases/tag/v4.186.0)

[Compare
Source](https://togithub.com/aquaproj/aqua-registry/compare/v4.185.1...v4.186.0)


[Issues](https://togithub.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.186.0)
| [Pull
Requests](https://togithub.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.186.0)
| aquaproj/aqua-registry@v4.185.1...v4.186.0

#### 🎉 New Packages


[#&#8203;23253](https://togithub.com/aquaproj/aqua-registry/issues/23253)
[stripe/stripe-cli](https://togithub.com/stripe/stripe-cli): A
command-line tool for Stripe

#### Fix


[#&#8203;23254](https://togithub.com/aquaproj/aqua-registry/issues/23254)
dlvhdr/gh-dash: Follow up changes of gh-dash v4.0.0

-
[https://github.com/dlvhdr/gh-dash/pull/336](https://togithub.com/dlvhdr/gh-dash/pull/336)

</details>

<details>
<summary>casey/just (casey/just)</summary>

###
[`v1.27.0`](https://togithub.com/casey/just/blob/HEAD/CHANGELOG.md#1270---2024-05-25)

[Compare
Source](https://togithub.com/casey/just/compare/1.26.0...1.27.0)

##### Changed

- Use cache dir for temporary files
([#&#8203;2067](https://togithub.com/casey/just/pull/2067))

##### Added

- Add `[doc]` attribute to set and suppress documentation comments
([#&#8203;2050](https://togithub.com/casey/just/pull/2050) by
[neunenak](https://togithub.com/neunenak))
- Add source_file() and source_directory() functions
([#&#8203;2088](https://togithub.com/casey/just/pull/2088))
- Add recipe groups
([#&#8203;1842](https://togithub.com/casey/just/pull/1842) by
[neunenak](https://togithub.com/neunenak))
- Add shell() function for running external commands
([#&#8203;2047](https://togithub.com/casey/just/pull/2047) by
[gyreas](https://togithub.com/gyreas))
- Add `--global-justfile` flag
([#&#8203;1846](https://togithub.com/casey/just/pull/1846) by
[neunenak](https://togithub.com/neunenak))
- Add shell-expanded strings
([#&#8203;2055](https://togithub.com/casey/just/pull/2055))
- Add `encode_uri_component` function
([#&#8203;2052](https://togithub.com/casey/just/pull/2052) by
[laniakea64](https://togithub.com/laniakea64))
- Add `choose` function for generating random strings
([#&#8203;2049](https://togithub.com/casey/just/pull/2049) by
[laniakea64](https://togithub.com/laniakea64))
- Add predefined constants
([#&#8203;2054](https://togithub.com/casey/just/pull/2054))
- Allow setting some command-line options with environment variables
([#&#8203;2044](https://togithub.com/casey/just/pull/2044) by
[neunenak](https://togithub.com/neunenak))
- Add prepend() function
([#&#8203;2045](https://togithub.com/casey/just/pull/2045) by
[gyreas](https://togithub.com/gyreas))
- Add append() function
([#&#8203;2046](https://togithub.com/casey/just/pull/2046) by
[gyreas](https://togithub.com/gyreas))
- Add --man subcommand
([#&#8203;2041](https://togithub.com/casey/just/pull/2041))
- Make `dotenv-path` relative to working directory
([#&#8203;2040](https://togithub.com/casey/just/pull/2040))
- Add `assert` expression
([#&#8203;1845](https://togithub.com/casey/just/pull/1845) by
[de1iza](https://togithub.com/de1iza))
- Add 'allow-duplicate-variables' setting
([#&#8203;1922](https://togithub.com/casey/just/pull/1922) by
[Mijago](https://togithub.com/Mijago))

##### Fixed

- List modules in source order with `--unsorted`
([#&#8203;2085](https://togithub.com/casey/just/pull/2085))
- Show submodule recipes in --choose
([#&#8203;2069](https://togithub.com/casey/just/pull/2069))
- Allow multiple imports of the same file in different modules
([#&#8203;2065](https://togithub.com/casey/just/pull/2065))
- Fix submodule recipe listing indentation
([#&#8203;2063](https://togithub.com/casey/just/pull/2063))
- Pass command as first argument to `shell`
([#&#8203;2061](https://togithub.com/casey/just/pull/2061))
- Allow shell expanded strings in mod and import paths
([#&#8203;2059](https://togithub.com/casey/just/pull/2059))
- Run imported recipes in root justfile with correct working directory
([#&#8203;2056](https://togithub.com/casey/just/pull/2056))
- Fix output `\r\n` stripping
([#&#8203;2035](https://togithub.com/casey/just/pull/2035))

##### Misc

- Forbid whitespace in shell-expanded string prefixes
([#&#8203;2083](https://togithub.com/casey/just/pull/2083))
- Add Debian and Ubuntu install instructions to readme
([#&#8203;2072](https://togithub.com/casey/just/pull/2072))
- Remove snap installation instructions from readme
([#&#8203;2070](https://togithub.com/casey/just/pull/2070))
- Fallback to wget in install script if curl isn't
available([#&#8203;1913](https://togithub.com/casey/just/pull/1913) by
[tgross35](https://togithub.com/tgross35))
- Use std::io::IsTerminal instead of atty crate
([#&#8203;2066](https://togithub.com/casey/just/pull/2066))
- Improve `shell()` documentation
([#&#8203;2060](https://togithub.com/casey/just/pull/2060) by
[laniakea64](https://togithub.com/laniakea64))
- Add bash completion for snap
([#&#8203;2058](https://togithub.com/casey/just/pull/2058) by
[albertodonato](https://togithub.com/albertodonato))
- Refactor list subcommand
([#&#8203;2062](https://togithub.com/casey/just/pull/2062))
- Document working directory
([#&#8203;2053](https://togithub.com/casey/just/pull/2053))
- Replace FunctionContext with Evaluator
([#&#8203;2048](https://togithub.com/casey/just/pull/2048))
- Update clap to version 4
([#&#8203;1924](https://togithub.com/casey/just/pull/1924) by
[poliorcetics](https://togithub.com/poliorcetics))
- Cleanup ([#&#8203;2026](https://togithub.com/casey/just/pull/2026) by
[adamnemecek](https://togithub.com/adamnemecek))
- Increase --list maximum alignable width from 30 to 50
([#&#8203;2039](https://togithub.com/casey/just/pull/2039))
- Document using `env -S`
([#&#8203;2038](https://togithub.com/casey/just/pull/2038))
- Update line continuation documentation
([#&#8203;1998](https://togithub.com/casey/just/pull/1998) by
[laniakea64](https://togithub.com/laniakea64))
- Add example using GNU parallel to run tasks in concurrently
([#&#8203;1915](https://togithub.com/casey/just/pull/1915) by
[amarao](https://togithub.com/amarao))
- Placate clippy: use `clone_into`
([#&#8203;2037](https://togithub.com/casey/just/pull/2037))
- Use --command-color when printing shebang recipe commands
([#&#8203;1911](https://togithub.com/casey/just/pull/1911) by
[avi-cenna](https://togithub.com/avi-cenna))
- Document how to use watchexec to re-run recipes when files change
([#&#8203;2036](https://togithub.com/casey/just/pull/2036))
- Update VS Code extensions in readme
([#&#8203;2034](https://togithub.com/casey/just/pull/2034))
- Add rust:just repology package table to readme
([#&#8203;2032](https://togithub.com/casey/just/pull/2032))

</details>

<details>
<summary>charmbracelet/gum (charmbracelet/gum)</summary>

###
[`v0.14.1`](https://togithub.com/charmbracelet/gum/releases/tag/v0.14.1)

[Compare
Source](https://togithub.com/charmbracelet/gum/compare/v0.14.0...v0.14.1)

#### What's Changed

- Show help with Huh? by
[@&#8203;maaslalani](https://togithub.com/maaslalani) in
[https://github.com/charmbracelet/gum/pull/587](https://togithub.com/charmbracelet/gum/pull/587)
- Support using the Home/End keys in pager by
[@&#8203;lzm0](https://togithub.com/lzm0) in
[https://github.com/charmbracelet/gum/pull/548](https://togithub.com/charmbracelet/gum/pull/548)

##### Fixes

- Handle `huh?` user aborted error by
[@&#8203;MikaelFangel](https://togithub.com/MikaelFangel) in
[https://github.com/charmbracelet/gum/pull/578](https://togithub.com/charmbracelet/gum/pull/578)
- Cursor styling by
[@&#8203;MikaelFangel](https://togithub.com/MikaelFangel) in
[https://github.com/charmbracelet/gum/pull/592](https://togithub.com/charmbracelet/gum/pull/592)
- Re-introduce <kbd>ESC</kbd> for `gum write` by
[@&#8203;MikaelFangel](https://togithub.com/MikaelFangel) in
[https://github.com/charmbracelet/gum/pull/579](https://togithub.com/charmbracelet/gum/pull/579)

#### New Contributors

- [@&#8203;CodeZea1ot](https://togithub.com/CodeZea1ot) made their first
contribution in
[https://github.com/charmbracelet/gum/pull/542](https://togithub.com/charmbracelet/gum/pull/542)
- [@&#8203;camcui](https://togithub.com/camcui) made their first
contribution in
[https://github.com/charmbracelet/gum/pull/537](https://togithub.com/charmbracelet/gum/pull/537)
- [@&#8203;lzm0](https://togithub.com/lzm0) made their first
contribution in
[https://github.com/charmbracelet/gum/pull/548](https://togithub.com/charmbracelet/gum/pull/548)

**Full Changelog**:
charmbracelet/gum@v0.14.0...v0.14.1

***

<a href="https://charm.sh/"><img alt="The Charm logo"
src="https://stuff.charm.sh/charm-badge.jpg" width="400"></a>

Thoughts? Questions? We love hearing from you. Feel free to reach out on
[Twitter](https://twitter.com/charmcli), [The
Fediverse](https://mastodon.technology/@&#8203;charm), or
[Slack](https://charm.sh/slack).

</details>

<details>
<summary>cli/cli (cli/cli)</summary>

### [`v2.50.0`](https://togithub.com/cli/cli/releases/tag/v2.50.0):
GitHub CLI 2.50.0

[Compare Source](https://togithub.com/cli/cli/compare/v2.49.2...v2.50.0)

#### What's Changed

- Refactor git credential flow code by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/9089](https://togithub.com/cli/cli/pull/9089)
- feat: add json output for `gh pr checks` by
[@&#8203;nobe4](https://togithub.com/nobe4) in
[https://github.com/cli/cli/pull/9079](https://togithub.com/cli/cli/pull/9079)
- Rework first auth tests with new gitcredential abstractions by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/9095](https://togithub.com/cli/cli/pull/9095)
- list the various alias permutations for the command and subcommands,
via '--help' and 'gh reference' by
[@&#8203;gabemontero](https://togithub.com/gabemontero) in
[https://github.com/cli/cli/pull/8824](https://togithub.com/cli/cli/pull/8824)
- Removed tty message when checking for extension upgrades by
[@&#8203;leevic31](https://togithub.com/leevic31) in
[https://github.com/cli/cli/pull/9088](https://togithub.com/cli/cli/pull/9088)
- Fix doc bug for gh run watch by
[@&#8203;jasonodonnell](https://togithub.com/jasonodonnell) in
[https://github.com/cli/cli/pull/9052](https://togithub.com/cli/cli/pull/9052)
- feat: add support for stateReason in `gh pr view` by
[@&#8203;nobe4](https://togithub.com/nobe4) in
[https://github.com/cli/cli/pull/9080](https://togithub.com/cli/cli/pull/9080)
- fix: rename the `Attempts` field to `Attempt`; expose in `gh run view`
and `gh run ls` by [@&#8203;cawfeecake](https://togithub.com/cawfeecake)
in
[https://github.com/cli/cli/pull/8905](https://togithub.com/cli/cli/pull/8905)
- Update regex in changedFilesNames to handle quoted paths by
[@&#8203;anda3](https://togithub.com/anda3) in
[https://github.com/cli/cli/pull/9115](https://togithub.com/cli/cli/pull/9115)
- Add a `gh variable get FOO` command by
[@&#8203;arnested](https://togithub.com/arnested) in
[https://github.com/cli/cli/pull/9106](https://togithub.com/cli/cli/pull/9106)
- Add macOS pkg installer to deployment
([#&#8203;7554](https://togithub.com/cli/cli/issues/7554)) by
[@&#8203;paulober](https://togithub.com/paulober) in
[https://github.com/cli/cli/pull/7555](https://togithub.com/cli/cli/pull/7555)
- Add integration tests for `gh attestation verify` shared workflow use
case by [@&#8203;malancas](https://togithub.com/malancas) in
[https://github.com/cli/cli/pull/9107](https://togithub.com/cli/cli/pull/9107)
- Add build provenance for gh CLI releases by
[@&#8203;malancas](https://togithub.com/malancas) in
[https://github.com/cli/cli/pull/9087](https://togithub.com/cli/cli/pull/9087)
- build(deps): bump github.com/gabriel-vasile/mimetype from 1.4.3 to
1.4.4 by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/9124](https://togithub.com/cli/cli/pull/9124)
- Build completions during release on macos by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/9136](https://togithub.com/cli/cli/pull/9136)
- Clarify Mac OS Installer packages are unsigned by
[@&#8203;andyfeller](https://togithub.com/andyfeller) in
[https://github.com/cli/cli/pull/9140](https://togithub.com/cli/cli/pull/9140)

#### New Contributors

- [@&#8203;gabemontero](https://togithub.com/gabemontero) made their
first contribution in
[https://github.com/cli/cli/pull/8824](https://togithub.com/cli/cli/pull/8824)
- [@&#8203;jasonodonnell](https://togithub.com/jasonodonnell) made their
first contribution in
[https://github.com/cli/cli/pull/9052](https://togithub.com/cli/cli/pull/9052)
- [@&#8203;anda3](https://togithub.com/anda3) made their first
contribution in
[https://github.com/cli/cli/pull/9115](https://togithub.com/cli/cli/pull/9115)
- [@&#8203;arnested](https://togithub.com/arnested) made their first
contribution in
[https://github.com/cli/cli/pull/9106](https://togithub.com/cli/cli/pull/9106)
- [@&#8203;paulober](https://togithub.com/paulober) made their first
contribution in
[https://github.com/cli/cli/pull/7555](https://togithub.com/cli/cli/pull/7555)

**Full Changelog**: cli/cli@v2.49.2...v2.50.0

</details>

<details>
<summary>dagger/dagger (dagger/dagger)</summary>

###
[`v0.11.6`](https://togithub.com/dagger/dagger/blob/HEAD/CHANGELOG.md#v0116---2024-05-30)

[Compare
Source](https://togithub.com/dagger/dagger/compare/v0.11.5...v0.11.6)

##### Added

- Add `withName` method to File by
[@&#8203;TomChv](https://togithub.com/TomChv) in
[https://github.com/dagger/dagger/pull/7491](https://togithub.com/dagger/dagger/pull/7491)

##### Fixed

- cli: don't validate flags when requesting `--help` by
[@&#8203;helderco](https://togithub.com/helderco) in
[https://github.com/dagger/dagger/pull/7417](https://togithub.com/dagger/dagger/pull/7417)
- fix container init being wrong platform in arm image by
[@&#8203;sipsma](https://togithub.com/sipsma) in
[https://github.com/dagger/dagger/pull/7497](https://togithub.com/dagger/dagger/pull/7497)
- fix container DNS resolution when host has no search domains by
[@&#8203;sipsma](https://togithub.com/sipsma) in
[https://github.com/dagger/dagger/pull/7501](https://togithub.com/dagger/dagger/pull/7501)
- honor system proxy config during git operations by
[@&#8203;sipsma](https://togithub.com/sipsma) in
[https://github.com/dagger/dagger/pull/7504](https://togithub.com/dagger/dagger/pull/7504)
- fix windows-style paths used as file+directory arg values in dagger
call by [@&#8203;sipsma](https://togithub.com/sipsma) in
[https://github.com/dagger/dagger/pull/7506](https://togithub.com/dagger/dagger/pull/7506)

##### What to do next?

-   Read the [documentation](https://docs.dagger.io)
-   Join our [Discord server](https://discord.gg/dagger-io)
-   Follow us on [Twitter](https://twitter.com/dagger_io)

###
[`v0.11.5`](https://togithub.com/dagger/dagger/blob/HEAD/CHANGELOG.md#v0115---2024-05-27)

[Compare
Source](https://togithub.com/dagger/dagger/compare/v0.11.4...v0.11.5)

##### Added

- cli: `dagger login` cloud traces support by
[@&#8203;aluzzardi](https://togithub.com/aluzzardi) in
[https://github.com/dagger/dagger/pull/7125](https://togithub.com/dagger/dagger/pull/7125)
- cli: improved `--progress=plain` implementation for better visibility
by [@&#8203;jedevc](https://togithub.com/jedevc) in
[https://github.com/dagger/dagger/pull/7272](https://togithub.com/dagger/dagger/pull/7272)

##### Changed

- cli: cleaner tty progress view by
[@&#8203;jedevc](https://togithub.com/jedevc) in
[https://github.com/dagger/dagger/pull/7347](https://togithub.com/dagger/dagger/pull/7347)
[https://github.com/dagger/dagger/pull/7371](https://togithub.com/dagger/dagger/pull/7371)
[https://github.com/dagger/dagger/pull/7386](https://togithub.com/dagger/dagger/pull/7386)
- cli: don't show functions that can't be called by
[@&#8203;helderco](https://togithub.com/helderco) in
[https://github.com/dagger/dagger/pull/7418](https://togithub.com/dagger/dagger/pull/7418)
- cli: don't show inherited flags in function commands by
[@&#8203;helderco](https://togithub.com/helderco) in
[https://github.com/dagger/dagger/pull/7419](https://togithub.com/dagger/dagger/pull/7419)
- core: remove shim and switch to
[dumb-init](https://togithub.com/Yelp/dumb-init) by
[@&#8203;sipsma](https://togithub.com/sipsma) in
[https://github.com/dagger/dagger/pull/7367](https://togithub.com/dagger/dagger/pull/7367)

##### Fixed

- core: fixed custom CA certs in modules by
[@&#8203;sipsma](https://togithub.com/sipsma) in
[https://github.com/dagger/dagger/pull/7356](https://togithub.com/dagger/dagger/pull/7356)
- cli: don't validate flags when requesting `--help` by
[@&#8203;helderco](https://togithub.com/helderco) in
[https://github.com/dagger/dagger/pull/7417](https://togithub.com/dagger/dagger/pull/7417)

##### What to do next?

-   Read the [documentation](https://docs.dagger.io)
-   Join our [Discord server](https://discord.gg/dagger-io)
-   Follow us on [Twitter](https://twitter.com/dagger_io)

</details>

<details>
<summary>dprint/dprint (dprint/dprint)</summary>

### [`v0.46.1`](https://togithub.com/dprint/dprint/releases/tag/0.46.1)

[Compare
Source](https://togithub.com/dprint/dprint/compare/0.46.0...0.46.1)

#### Changes

- fix: dprint 0.46 release for `cargo install` without `--locked` flag
([#&#8203;852](https://togithub.com/dprint/dprint/issues/852))
- fix: upgrade to rustls 0.23.8
([#&#8203;853](https://togithub.com/dprint/dprint/issues/853))

Please run `dprint config update` after upgrading as some BOM handling
happens in the plugins now and some may fail to parse files with a BOM
now. See [#&#8203;854](https://togithub.com/dprint/dprint/issues/854)
and sorry for any headaches (I'm unsure of the impact of this change, so
let me know if this is a huge hassle for you).

#### Install

Run `dprint upgrade` or see https://dprint.dev/install/

#### Checksums

|Artifact|SHA-256 Checksum|
|:--|:--|

|dprint-x86\_64-apple-darwin.zip|cdea84bce1d84c26e8eced2265d246b79a849ec2e7d1377d98dd7bdb21c7ce83|

|dprint-aarch64-apple-darwin.zip|f3ff4faef83d14c3b4ae262e79a40d4e0fc3fa1903d0b6e9b82f0b25b00e9499|

|dprint-x86\_64-pc-windows-msvc.zip|74e5ab38c744d5903862c2b5174d0fef9759b5506da775e1fb93b6a68c63101d|

|dprint-x86\_64-pc-windows-msvc-installer.exe|107786c41be76b49463a50d7d9d788397bba723e107e723347f8e8dde65339dc|

|dprint-x86\_64-unknown-linux-gnu.zip|cb72fa6b474e2847a3cf5705b43ee2cbfdafddd7c69ff162309fd1f4f43c872a|

|dprint-x86\_64-unknown-linux-musl.zip|4a7d6fa6b920ab150f580965556086cdd7992e07078e627ab9a9d1c3bd30ba85|

|dprint-aarch64-unknown-linux-gnu.zip|c4e892d5d237a57ede7900255e5ce669b56160e61c89798c118fbd4c36d48ff2|

|dprint-aarch64-unknown-linux-musl.zip|e2b6d87167d21f1f01571790e79526ef9caff3b8b75f5cac348c4f06f60a8c16|

### [`v0.46.0`](https://togithub.com/dprint/dprint/releases/tag/0.46.0)

[Compare
Source](https://togithub.com/dprint/dprint/compare/0.45.1...0.46.0)

##### Changes

- feat: gitignore support
([#&#8203;832](https://togithub.com/dprint/dprint/issues/832))
- feat: `DPRINT_TLS_CA_STORE` and `DPRINT_CERT`
([#&#8203;850](https://togithub.com/dprint/dprint/issues/850))
- fix: remove BOM handling from the CLI
([#&#8203;844](https://togithub.com/dprint/dprint/issues/844))

Please run `dprint config update` after upgrading as some BOM handling
happens in the plugins now and some may fail to parse files with a BOM
now. See [#&#8203;854](https://togithub.com/dprint/dprint/issues/854)
and sorry for any headaches (I'm unsure of the impact of this change, so
let me know if this is a huge hassle for you).

##### Install

Run `dprint upgrade` or see https://dprint.dev/install/

##### Checksums

|Artifact|SHA-256 Checksum|
|:--|:--|

|dprint-x86\_64-apple-darwin.zip|e339f1f891c60087676d72f70ba5f80dcaedde4bdc58730b9cb68a5483b3abfd|

|dprint-aarch64-apple-darwin.zip|4b608b3676f10e04328c3d8be396bded96328ebca9b95b70bf5baf67bed7b135|

|dprint-x86\_64-pc-windows-msvc.zip|786201545938f6f7c6d407e6404b31ae9bbf9e5a4abc4c88dc9bd73da369a906|

|dprint-x86\_64-pc-windows-msvc-installer.exe|e445b37af124e5d8ef691685632509d2bfc701962c58db89eebc8a8de7352ab4|

|dprint-x86\_64-unknown-linux-gnu.zip|8274ea44d2ab4d10b8bdfcc824d946a6d051594aede49c9db8c5e810887abd67|

|dprint-x86\_64-unknown-linux-musl.zip|7a2c12edc868259be890174c4ec3bd51c81ec8773aa294e12fac0634f36d15f5|

|dprint-aarch64-unknown-linux-gnu.zip|6617465acba53c9b939e73f20538a8027e45593342c34f7ac4826c9f4e6cf53b|

|dprint-aarch64-unknown-linux-musl.zip|e52c0a3398e34e88ffe560e719bf8361ba3f35b4e0927ab9ba0761796884ce24|

</details>

<details>
<summary>fujiwara/awslim (fujiwara/awslim)</summary>

### [`v0.1.2`](https://togithub.com/fujiwara/awslim/releases/tag/v0.1.2)

[Compare
Source](https://togithub.com/fujiwara/awslim/compare/v0.1.1...v0.1.2)

#### What's Changed

- feature: Add suport for building with specified OS/Arch by
[@&#8203;ToshihitoKon](https://togithub.com/ToshihitoKon) in
[https://github.com/fujiwara/awslim/pull/20](https://togithub.com/fujiwara/awslim/pull/20)
- merge [#&#8203;20](https://togithub.com/fujiwara/awslim/issues/20)
into main by [@&#8203;fujiwara](https://togithub.com/fujiwara) in
[https://github.com/fujiwara/awslim/pull/21](https://togithub.com/fujiwara/awslim/pull/21)

#### New Contributors

- [@&#8203;ToshihitoKon](https://togithub.com/ToshihitoKon) made their
first contribution in
[https://github.com/fujiwara/awslim/pull/20](https://togithub.com/fujiwara/awslim/pull/20)

**Full Changelog**:
fujiwara/awslim@v0.1.1...v0.1.2

</details>

<details>
<summary>golangci/golangci-lint (golangci/golangci-lint)</summary>

###
[`v1.59.0`](https://togithub.com/golangci/golangci-lint/compare/v1.58.2...v1.59.0)

[Compare
Source](https://togithub.com/golangci/golangci-lint/compare/v1.58.2...v1.59.0)

</details>

<details>
<summary>simulot/immich-go (simulot/immich-go)</summary>

###
[`v0.15.0`](https://togithub.com/simulot/immich-go/releases/tag/0.15.0)

[Compare
Source](https://togithub.com/simulot/immich-go/compare/0.14.1...0.15.0)

##### fix
[#&#8203;255](https://togithub.com/simulot/immich-go/issues/255) Last
percents of google puzzle solving are very slow when processing very
large takeout archive

The google puzzle solving is now much faster for large takeout archives.

##### fix
[#&#8203;215](https://togithub.com/simulot/immich-go/issues/215) Use
XDG_CONFIG_HOME for storing config

The configuration file that contains the server and the key is now
stored by default in following folder:

-   Linux `$HOME/.config/immich-go/immich-go.json`
-   Windows `%AppData%\immich-go\immich-go.json`
-   Apple `$HOME/Library/Application Support/immich-go/immich-go.json`

##### Store the log files into sensible dir for user's system

The default log file is:

-   Linux `$HOME/.cache/immich-go/immich-go_YYYY-MM-DD_HH-MI-SS.log`
-   Windows `%LocalAppData%\immich-go\immich-go_YYYY-MM-DD_HH-MI-SS.log`
- Apple
`$HOME/Library/Caches/immich-go/immich-go_YYYY-MM-DD_HH-MI-SS.log`

##### Feat:
\[[#&#8203;249](https://togithub.com/simulot/immich-go/issues/249)] Fix
Display the path of log file name

The log file name is printed when the program exits.

#### Changelog

- [`87471f6`](https://togithub.com/simulot/immich-go/commit/87471f6)
Edit releases.md
- [`d4269ee`](https://togithub.com/simulot/immich-go/commit/d4269ee) Fix
Display the path of log file name
([#&#8203;251](https://togithub.com/simulot/immich-go/issues/251))
- [`49bf673`](https://togithub.com/simulot/immich-go/commit/49bf673) Fix
Display the path of log file name
([#&#8203;256](https://togithub.com/simulot/immich-go/issues/256))
- [`73fde8d`](https://togithub.com/simulot/immich-go/commit/73fde8d)
Fixes [#&#8203;255](https://togithub.com/simulot/immich-go/issues/255)
- [`9b70932`](https://togithub.com/simulot/immich-go/commit/9b70932)
Merge branch 'main' into simulot/issue215
- [`734bbeb`](https://togithub.com/simulot/immich-go/commit/734bbeb)
Merge pull request
[#&#8203;257](https://togithub.com/simulot/immich-go/issues/257) from
simulot:simulot/issue255
- [`8805ca7`](https://togithub.com/simulot/immich-go/commit/8805ca7)
Merge pull request
[#&#8203;258](https://togithub.com/simulot/immich-go/issues/258) from
simulot:simulot/issue215
- [`c63dc09`](https://togithub.com/simulot/immich-go/commit/c63dc09)
Merge pull request
[#&#8203;260](https://togithub.com/simulot/immich-go/issues/260) from
simulot:simulot/issue259
- [`e4d1643`](https://togithub.com/simulot/immich-go/commit/e4d1643) Set
a timeout for all http queries
([#&#8203;253](https://togithub.com/simulot/immich-go/issues/253))
- [`f968bd6`](https://togithub.com/simulot/immich-go/commit/f968bd6) The
log doesn't show discared files Fixes
[#&#8203;259](https://togithub.com/simulot/immich-go/issues/259)
- [`37f4b83`](https://togithub.com/simulot/immich-go/commit/37f4b83) Use
XDG_CONFIG_HOME for storing config
([#&#8203;248](https://togithub.com/simulot/immich-go/issues/248))
- [`755e1b7`](https://togithub.com/simulot/immich-go/commit/755e1b7) Use
XDG_CONFIG_HOME for storing config Fixes
[#&#8203;215](https://togithub.com/simulot/immich-go/issues/215)

</details>

<details>
<summary>snyk/cli (snyk/cli)</summary>

### [`v1.1291.1`](https://togithub.com/snyk/cli/releases/tag/v1.1291.1)

[Compare
Source](https://togithub.com/snyk/cli/compare/v1.1291.0...v1.1291.1)

The Snyk CLI is being deployed to different deployment channels, users
can select the stability level according to their needs. For details
please see [this
documentation](https://docs.snyk.io/snyk-cli/releases-and-channels-for-the-snyk-cli)

##### Bug Fixes

- **dependencies:** Upgrade go-getter to v1.7.4 to fix vulnerabilities
([#&#8203;5252](https://togithub.com/snyk/snyk/issues/5252))

</details>

<details>
<summary>twpayne/chezmoi (twpayne/chezmoi)</summary>

###
[`v2.48.2`](https://togithub.com/twpayne/chezmoi/compare/v2.48.1...v2.48.2)

[Compare
Source](https://togithub.com/twpayne/chezmoi/compare/v2.48.1...v2.48.2)

</details>

<details>
<summary>weaveworks/eksctl (weaveworks/eksctl)</summary>

###
[`v0.180.0`](https://togithub.com/eksctl-io/eksctl/releases/tag/v0.180.0):
eksctl 0.180.0

[Compare
Source](https://togithub.com/weaveworks/eksctl/compare/0.179.0-rc.0...0.180.0)

### Release v0.180.0

#### 🐛 Bug Fixes

- Add option to create service account for pod identities which defaults
to `false`
([#&#8203;7784](https://togithub.com/weaveworks/eksctl/issues/7784))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 4pm on thursday" in timezone
America/Los_Angeles, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/scottames/dots).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNzcuOCIsInVwZGF0ZWRJblZlciI6IjM3LjM3Ny44IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: scottames-github-bot[bot] <162828115+scottames-github-bot[bot]@users.noreply.github.com>
"startedAt",
"completedAt",
"link",
"bucket",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I know this is not the right place to ask this, but can't find the better one and https://cli.github.com/manual/gh_pr_checks is light on details.
What is the bucket field? Looking at the values it has, it's similar to status, right?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

FWIW, it's defined and filled in

switch state {
case "SUCCESS":
item.Bucket = "pass"
counts.Passed++
case "SKIPPED", "NEUTRAL":
item.Bucket = "skipping"
counts.Skipping++
case "ERROR", "FAILURE", "TIMED_OUT", "ACTION_REQUIRED":
item.Bucket = "fail"
counts.Failed++
case "CANCELLED":
item.Bucket = "cancel"
counts.Canceled++
default: // "EXPECTED", "REQUESTED", "WAITING", "QUEUED", "PENDING", "IN_PROGRESS", "STALE"
item.Bucket = "pending"
counts.Pending++
}

It seems to be grouping checks by results

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@findepi : I think this is a great question and might be worth opening a new issue for improving the --help output to include a little more information about buckets.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

thanks @nobe4 for the link, the code suggests i want to use this field for filtering
thanks @andyfeller for suggestion -- #9205

renovate Bot referenced this pull request in DelineaXPM/github-workflows Jul 18, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [cli/cli](https://togithub.com/cli/cli) | minor | `v2.42.1` ->
`v2.53.0` |

---

### Release Notes

<details>
<summary>cli/cli (cli/cli)</summary>

### [`v2.53.0`](https://togithub.com/cli/cli/releases/tag/v2.53.0):
GitHub CLI 2.53.0

[Compare Source](https://togithub.com/cli/cli/compare/v2.52.0...v2.53.0)

#### What's Changed

- Add `--json` option to `variable get` command by
[@&#8203;babakks](https://togithub.com/babakks) in
[https://github.com/cli/cli/pull/9128](https://togithub.com/cli/cli/pull/9128)
- Add GH_DEBUG to issue template by
[@&#8203;TWiStErRob](https://togithub.com/TWiStErRob) in
[https://github.com/cli/cli/pull/9167](https://togithub.com/cli/cli/pull/9167)
- Fetch variable selected repo relationship when required by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/9256](https://togithub.com/cli/cli/pull/9256)
- build(deps): bump github.com/hashicorp/go-retryablehttp from 0.7.5 to
0.7.7 by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/9250](https://togithub.com/cli/cli/pull/9250)
- Alternate gh attestation trusted-root subcommand by
[@&#8203;steiza](https://togithub.com/steiza) in
[https://github.com/cli/cli/pull/9206](https://togithub.com/cli/cli/pull/9206)
- fix: indentation in 'gh release create --help' by
[@&#8203;cchristous](https://togithub.com/cchristous) in
[https://github.com/cli/cli/pull/9296](https://togithub.com/cli/cli/pull/9296)
- build(deps): bump actions/attest-build-provenance from 1.3.2 to 1.3.3
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/9305](https://togithub.com/cli/cli/pull/9305)
- docs: Update documentation for `gh repo create` to clarify owner by
[@&#8203;jessehouwing](https://togithub.com/jessehouwing) in
[https://github.com/cli/cli/pull/9309](https://togithub.com/cli/cli/pull/9309)
- Fix panic when calling `gh pr view --json stateReason` by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/9307](https://togithub.com/cli/cli/pull/9307)
- Add `issue create --editor` by
[@&#8203;notomo](https://togithub.com/notomo) in
[https://github.com/cli/cli/pull/7193](https://togithub.com/cli/cli/pull/7193)
- Add `pr update-branch` command by
[@&#8203;babakks](https://togithub.com/babakks) in
[https://github.com/cli/cli/pull/8953](https://togithub.com/cli/cli/pull/8953)

#### New Contributors

- [@&#8203;TWiStErRob](https://togithub.com/TWiStErRob) made their first
contribution in
[https://github.com/cli/cli/pull/9167](https://togithub.com/cli/cli/pull/9167)
- [@&#8203;cchristous](https://togithub.com/cchristous) made their first
contribution in
[https://github.com/cli/cli/pull/9296](https://togithub.com/cli/cli/pull/9296)
- [@&#8203;jessehouwing](https://togithub.com/jessehouwing) made their
first contribution in
[https://github.com/cli/cli/pull/9309](https://togithub.com/cli/cli/pull/9309)
- [@&#8203;notomo](https://togithub.com/notomo) made their first
contribution in
[https://github.com/cli/cli/pull/7193](https://togithub.com/cli/cli/pull/7193)

**Full Changelog**: cli/cli@v2.52.0...v2.53.0

### [`v2.52.0`](https://togithub.com/cli/cli/releases/tag/v2.52.0):
GitHub CLI 2.52.0

[Compare Source](https://togithub.com/cli/cli/compare/v2.51.0...v2.52.0)

#### What's Changed

- feat: add `-a` flag to `gh run list` by
[@&#8203;joshuajtward](https://togithub.com/joshuajtward) in
[https://github.com/cli/cli/pull/9162](https://togithub.com/cli/cli/pull/9162)
- Attestation Verification - Buffer Fix by
[@&#8203;Forrin](https://togithub.com/Forrin) in
[https://github.com/cli/cli/pull/9198](https://togithub.com/cli/cli/pull/9198)
- build(deps): bump actions/attest-build-provenance from 1.2.0 to 1.3.2
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/9222](https://togithub.com/cli/cli/pull/9222)
- build(deps): bump github.com/gorilla/websocket from 1.5.2 to 1.5.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/9211](https://togithub.com/cli/cli/pull/9211)
- build(deps): bump github.com/spf13/cobra from 1.8.0 to 1.8.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/9218](https://togithub.com/cli/cli/pull/9218)
- build(deps): bump github.com/google/go-containerregistry from 0.19.1
to 0.19.2 by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/9217](https://togithub.com/cli/cli/pull/9217)
- Remove `gh at verify` public beta note by
[@&#8203;phillmv](https://togithub.com/phillmv) in
[https://github.com/cli/cli/pull/9243](https://togithub.com/cli/cli/pull/9243)

#### New Contributors

- [@&#8203;joshuajtward](https://togithub.com/joshuajtward) made their
first contribution in
[https://github.com/cli/cli/pull/9162](https://togithub.com/cli/cli/pull/9162)
- [@&#8203;Forrin](https://togithub.com/Forrin) made their first
contribution in
[https://github.com/cli/cli/pull/9198](https://togithub.com/cli/cli/pull/9198)

**Full Changelog**: cli/cli@v2.51.0...v2.52.0

### [`v2.51.0`](https://togithub.com/cli/cli/releases/tag/v2.51.0):
GitHub CLI 2.51.0

[Compare Source](https://togithub.com/cli/cli/compare/v2.50.0...v2.51.0)

#### What's Changed

- Ensure signed RPMs have attestations by
[@&#8203;andyfeller](https://togithub.com/andyfeller) in
[https://github.com/cli/cli/pull/9143](https://togithub.com/cli/cli/pull/9143)
- Add `signer-repo` and `signer-workflow` flags to `gh attestation
verify` by [@&#8203;malancas](https://togithub.com/malancas) in
[https://github.com/cli/cli/pull/9137](https://togithub.com/cli/cli/pull/9137)
- Docs: Specify rpm repository to avoid conflicts with community
repositories by [@&#8203;hbenali](https://togithub.com/hbenali) in
[https://github.com/cli/cli/pull/9151](https://togithub.com/cli/cli/pull/9151)
- Replace `--json-result` flag with `--format=json` in the attestation
cmd by [@&#8203;phillmv](https://togithub.com/phillmv) in
[https://github.com/cli/cli/pull/9172](https://togithub.com/cli/cli/pull/9172)
- Bump go-keyring to fix keepassxc prompt confirmation by
[@&#8203;AlanD20](https://togithub.com/AlanD20) in
[https://github.com/cli/cli/pull/9179](https://togithub.com/cli/cli/pull/9179)
- build(deps): bump actions/attest-build-provenance from 1.1.2 to 1.2.0
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/9169](https://togithub.com/cli/cli/pull/9169)
- build(deps): bump goreleaser/goreleaser-action from 5 to 6 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/9175](https://togithub.com/cli/cli/pull/9175)
- build(deps): bump github.com/gorilla/websocket from 1.5.1 to 1.5.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/9192](https://togithub.com/cli/cli/pull/9192)
- build(deps): bump google.golang.org/protobuf from 1.34.1 to 1.34.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/9197](https://togithub.com/cli/cli/pull/9197)
- watch - handle annotation errors gracefully by
[@&#8203;wingleung](https://togithub.com/wingleung) in
[https://github.com/cli/cli/pull/9113](https://togithub.com/cli/cli/pull/9113)

#### New Contributors

- [@&#8203;hbenali](https://togithub.com/hbenali) made their first
contribution in
[https://github.com/cli/cli/pull/9151](https://togithub.com/cli/cli/pull/9151)
- [@&#8203;AlanD20](https://togithub.com/AlanD20) made their first
contribution in
[https://github.com/cli/cli/pull/9179](https://togithub.com/cli/cli/pull/9179)
- [@&#8203;wingleung](https://togithub.com/wingleung) made their first
contribution in
[https://github.com/cli/cli/pull/9113](https://togithub.com/cli/cli/pull/9113)

**Full Changelog**: cli/cli@v2.50.0...v2.51.0

### [`v2.50.0`](https://togithub.com/cli/cli/releases/tag/v2.50.0):
GitHub CLI 2.50.0

[Compare Source](https://togithub.com/cli/cli/compare/v2.49.2...v2.50.0)

#### What's Changed

- Refactor git credential flow code by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/9089](https://togithub.com/cli/cli/pull/9089)
- feat: add json output for `gh pr checks` by
[@&#8203;nobe4](https://togithub.com/nobe4) in
[https://github.com/cli/cli/pull/9079](https://togithub.com/cli/cli/pull/9079)
- Rework first auth tests with new gitcredential abstractions by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/9095](https://togithub.com/cli/cli/pull/9095)
- list the various alias permutations for the command and subcommands,
via '--help' and 'gh reference' by
[@&#8203;gabemontero](https://togithub.com/gabemontero) in
[https://github.com/cli/cli/pull/8824](https://togithub.com/cli/cli/pull/8824)
- Removed tty message when checking for extension upgrades by
[@&#8203;leevic31](https://togithub.com/leevic31) in
[https://github.com/cli/cli/pull/9088](https://togithub.com/cli/cli/pull/9088)
- Fix doc bug for gh run watch by
[@&#8203;jasonodonnell](https://togithub.com/jasonodonnell) in
[https://github.com/cli/cli/pull/9052](https://togithub.com/cli/cli/pull/9052)
- feat: add support for stateReason in `gh pr view` by
[@&#8203;nobe4](https://togithub.com/nobe4) in
[https://github.com/cli/cli/pull/9080](https://togithub.com/cli/cli/pull/9080)
- fix: rename the `Attempts` field to `Attempt`; expose in `gh run view`
and `gh run ls` by [@&#8203;cawfeecake](https://togithub.com/cawfeecake)
in
[https://github.com/cli/cli/pull/8905](https://togithub.com/cli/cli/pull/8905)
- Update regex in changedFilesNames to handle quoted paths by
[@&#8203;anda3](https://togithub.com/anda3) in
[https://github.com/cli/cli/pull/9115](https://togithub.com/cli/cli/pull/9115)
- Add a `gh variable get FOO` command by
[@&#8203;arnested](https://togithub.com/arnested) in
[https://github.com/cli/cli/pull/9106](https://togithub.com/cli/cli/pull/9106)
- Add macOS pkg installer to deployment
([#&#8203;7554](https://togithub.com/cli/cli/issues/7554)) by
[@&#8203;paulober](https://togithub.com/paulober) in
[https://github.com/cli/cli/pull/7555](https://togithub.com/cli/cli/pull/7555)
- Add integration tests for `gh attestation verify` shared workflow use
case by [@&#8203;malancas](https://togithub.com/malancas) in
[https://github.com/cli/cli/pull/9107](https://togithub.com/cli/cli/pull/9107)
- Add build provenance for gh CLI releases by
[@&#8203;malancas](https://togithub.com/malancas) in
[https://github.com/cli/cli/pull/9087](https://togithub.com/cli/cli/pull/9087)
- build(deps): bump github.com/gabriel-vasile/mimetype from 1.4.3 to
1.4.4 by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/9124](https://togithub.com/cli/cli/pull/9124)
- Build completions during release on macos by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/9136](https://togithub.com/cli/cli/pull/9136)
- Clarify Mac OS Installer packages are unsigned by
[@&#8203;andyfeller](https://togithub.com/andyfeller) in
[https://github.com/cli/cli/pull/9140](https://togithub.com/cli/cli/pull/9140)

#### New Contributors

- [@&#8203;gabemontero](https://togithub.com/gabemontero) made their
first contribution in
[https://github.com/cli/cli/pull/8824](https://togithub.com/cli/cli/pull/8824)
- [@&#8203;jasonodonnell](https://togithub.com/jasonodonnell) made their
first contribution in
[https://github.com/cli/cli/pull/9052](https://togithub.com/cli/cli/pull/9052)
- [@&#8203;anda3](https://togithub.com/anda3) made their first
contribution in
[https://github.com/cli/cli/pull/9115](https://togithub.com/cli/cli/pull/9115)
- [@&#8203;arnested](https://togithub.com/arnested) made their first
contribution in
[https://github.com/cli/cli/pull/9106](https://togithub.com/cli/cli/pull/9106)
- [@&#8203;paulober](https://togithub.com/paulober) made their first
contribution in
[https://github.com/cli/cli/pull/7555](https://togithub.com/cli/cli/pull/7555)

**Full Changelog**: cli/cli@v2.49.2...v2.50.0

### [`v2.49.2`](https://togithub.com/cli/cli/releases/tag/v2.49.2):
GitHub CLI 2.49.2

[Compare Source](https://togithub.com/cli/cli/compare/v2.49.1...v2.49.2)

#### What's Changed

- Improve `run list` doc with available `--json` fields by
[@&#8203;babakks](https://togithub.com/babakks) in
[https://github.com/cli/cli/pull/8934](https://togithub.com/cli/cli/pull/8934)
- Fix typos by [@&#8203;szepeviktor](https://togithub.com/szepeviktor)
in
[https://github.com/cli/cli/pull/9068](https://togithub.com/cli/cli/pull/9068)
- Move config interfaces into gh package by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/9060](https://togithub.com/cli/cli/pull/9060)
- Creating doc to capture Codespace usage guidance by
[@&#8203;andyfeller](https://togithub.com/andyfeller) in
[https://github.com/cli/cli/pull/9066](https://togithub.com/cli/cli/pull/9066)
- Fix repo fork regression by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/9063](https://togithub.com/cli/cli/pull/9063)
- Add --latest=false to `gh release create` docs by
[@&#8203;kuzdogan](https://togithub.com/kuzdogan) in
[https://github.com/cli/cli/pull/8987](https://togithub.com/cli/cli/pull/8987)
- build(deps): bump github.com/sigstore/protobuf-specs from 0.3.1 to
0.3.2 by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/9075](https://togithub.com/cli/cli/pull/9075)

#### New Contributors

- [@&#8203;szepeviktor](https://togithub.com/szepeviktor) made their
first contribution in
[https://github.com/cli/cli/pull/9068](https://togithub.com/cli/cli/pull/9068)
- [@&#8203;kuzdogan](https://togithub.com/kuzdogan) made their first
contribution in
[https://github.com/cli/cli/pull/8987](https://togithub.com/cli/cli/pull/8987)

**Full Changelog**: cli/cli@v2.49.1...v2.49.2

### [`v2.49.1`](https://togithub.com/cli/cli/releases/tag/v2.49.1):
GitHub CLI 2.49.1

[Compare Source](https://togithub.com/cli/cli/compare/v2.49.0...v2.49.1)

#### What's Changed

- Do not mutate headers when initialising tableprinter by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/9033](https://togithub.com/cli/cli/pull/9033)
- Document relationship between host and active account by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/9032](https://togithub.com/cli/cli/pull/9032)
- build(deps): bump golang.org/x/net from 0.22.0 to 0.23.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/9034](https://togithub.com/cli/cli/pull/9034)
- Run `attestation` command set integration tests separately by
[@&#8203;malancas](https://togithub.com/malancas) in
[https://github.com/cli/cli/pull/9035](https://togithub.com/cli/cli/pull/9035)
- Added support for jobs with long filenames by
[@&#8203;shayn-orca](https://togithub.com/shayn-orca) in
[https://github.com/cli/cli/pull/8684](https://togithub.com/cli/cli/pull/8684)
- Fix unused params across project by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/9059](https://togithub.com/cli/cli/pull/9059)
- Fix `attestation verify` source repository check bug by
[@&#8203;malancas](https://togithub.com/malancas) in
[https://github.com/cli/cli/pull/9053](https://togithub.com/cli/cli/pull/9053)

#### New Contributors

- [@&#8203;shayn-orca](https://togithub.com/shayn-orca) made their first
contribution in
[https://github.com/cli/cli/pull/8684](https://togithub.com/cli/cli/pull/8684)

**Full Changelog**: cli/cli@v2.49.0...v2.49.1

### [`v2.49.0`](https://togithub.com/cli/cli/releases/tag/v2.49.0):
GitHub CLI 2.49.0

[Compare Source](https://togithub.com/cli/cli/compare/v2.48.0...v2.49.0)

#### Support for GitHub Artifact Attestations

`v2.49.0` release introduces the `attestation` command set for
downloading and verifying attestations about artifacts built in GitHub
Actions! This is part of the larger Artifact Attestations initiative. An
artifact attestation is a piece of cryptographically signed metadata
that is generated as part of your artifact build process. These
attestations bind artifacts to the details of the workflow run that
produced them, and allow you to guarantee the integrity and provenance
of any artifact built in GitHub Actions.

```shell

### Verify a local artifact
gh attestation verify artifact.bin -o <your org>

### Verify a local artifact against a local artifact attestation
gh attestation verify artifact.bin -b ./artifact-v0.0.1-bundle.json -o <your org>

### Verify an OCI image
gh attestation verify oci://ghcr.io/foo/bar:latest -o <your org>

### Download artifact attestations
gh attestation download artifact.bin -o <your org>
```

To get started, check out gh help attestation. You can also use the `gh
at <command>` alias for short.

#### What's Changed

- Improve gh run rerun docs by
[@&#8203;sochotnicky](https://togithub.com/sochotnicky) in
[https://github.com/cli/cli/pull/8969](https://togithub.com/cli/cli/pull/8969)
- build(deps): bump golang.org/x/net from 0.21.0 to 0.23.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/8981](https://togithub.com/cli/cli/pull/8981)
- Update `sigstore-go` dependency to v0.3.0 by
[@&#8203;malancas](https://togithub.com/malancas) in
[https://github.com/cli/cli/pull/8977](https://togithub.com/cli/cli/pull/8977)
- `gh attestation tuf-root-verify` offline test fix by
[@&#8203;malancas](https://togithub.com/malancas) in
[https://github.com/cli/cli/pull/8975](https://togithub.com/cli/cli/pull/8975)
- Update `gh attestation verify` output by
[@&#8203;malancas](https://togithub.com/malancas) in
[https://github.com/cli/cli/pull/8991](https://togithub.com/cli/cli/pull/8991)
- build(deps): bump google.golang.org/grpc from 1.62.1 to 1.62.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/8989](https://togithub.com/cli/cli/pull/8989)
- Remove `Hidden` flag from `gh attestation` command by
[@&#8203;malancas](https://togithub.com/malancas) in
[https://github.com/cli/cli/pull/8998](https://togithub.com/cli/cli/pull/8998)
- Add colon for `gh secret set` by
[@&#8203;NeroBlackstone](https://togithub.com/NeroBlackstone) in
[https://github.com/cli/cli/pull/9004](https://togithub.com/cli/cli/pull/9004)
- Improve errors when loading bundle locally fails by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/8996](https://togithub.com/cli/cli/pull/8996)
- Support offline mode for `gh attestation verify` by
[@&#8203;steiza](https://togithub.com/steiza) in
[https://github.com/cli/cli/pull/8997](https://togithub.com/cli/cli/pull/8997)
- Add `projectsV2` to JSON fields of `gh repo` commands by
[@&#8203;babakks](https://togithub.com/babakks) in
[https://github.com/cli/cli/pull/9007](https://togithub.com/cli/cli/pull/9007)
- Support long URLs in `gh repo clone` by
[@&#8203;babakks](https://togithub.com/babakks) in
[https://github.com/cli/cli/pull/9008](https://togithub.com/cli/cli/pull/9008)
- Fix issue with closing pager stream by
[@&#8203;babakks](https://togithub.com/babakks) in
[https://github.com/cli/cli/pull/9020](https://togithub.com/cli/cli/pull/9020)
- proof of concept for flag-level disable auth check by
[@&#8203;andyfeller](https://togithub.com/andyfeller) in
[https://github.com/cli/cli/pull/9000](https://togithub.com/cli/cli/pull/9000)
- Be more general with attestation host checks by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/9019](https://togithub.com/cli/cli/pull/9019)
- Add beta designation on attestation command set by
[@&#8203;andyfeller](https://togithub.com/andyfeller) in
[https://github.com/cli/cli/pull/9022](https://togithub.com/cli/cli/pull/9022)
- Tweaked gh attestation help strings to generate nicer cli manual site.
by [@&#8203;phillmv](https://togithub.com/phillmv) in
[https://github.com/cli/cli/pull/9025](https://togithub.com/cli/cli/pull/9025)
- Update cli/go-gh to v2.9.0 by
[@&#8203;andyfeller](https://togithub.com/andyfeller) in
[https://github.com/cli/cli/pull/9023](https://togithub.com/cli/cli/pull/9023)
- Document repo clone protocol behaviour by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/9030](https://togithub.com/cli/cli/pull/9030)

#### New Contributors

- [@&#8203;sochotnicky](https://togithub.com/sochotnicky) made their
first contribution in
[https://github.com/cli/cli/pull/8969](https://togithub.com/cli/cli/pull/8969)
- [@&#8203;NeroBlackstone](https://togithub.com/NeroBlackstone) made
their first contribution in
[https://github.com/cli/cli/pull/9004](https://togithub.com/cli/cli/pull/9004)
- [@&#8203;phillmv](https://togithub.com/phillmv) made their first
contribution in
[https://github.com/cli/cli/pull/9025](https://togithub.com/cli/cli/pull/9025)

**Full Changelog**: cli/cli@v2.48.0...v2.49.0

### [`v2.48.0`](https://togithub.com/cli/cli/releases/tag/v2.48.0):
GitHub CLI 2.48.0

[Compare Source](https://togithub.com/cli/cli/compare/v2.47.0...v2.48.0)

#### The Big Stuff

- Added support for `--slurp`ing JSON responses in `gh api` by
[@&#8203;heaths](https://togithub.com/heaths) in
[https://github.com/cli/cli/pull/8620](https://togithub.com/cli/cli/pull/8620)
- Added `--skip-ssh-key` option to `gh auth login` command by
[@&#8203;babakks](https://togithub.com/babakks) in
[https://github.com/cli/cli/pull/8935](https://togithub.com/cli/cli/pull/8935)
- Added `numSelectedRepos` to JSON output of `gh secret list` by
[@&#8203;babakks](https://togithub.com/babakks) in
[https://github.com/cli/cli/pull/8899](https://togithub.com/cli/cli/pull/8899)
- Added support for multiple items in `gh api` nested array by
[@&#8203;Ebonsignori](https://togithub.com/Ebonsignori) in
[https://github.com/cli/cli/pull/8762](https://togithub.com/cli/cli/pull/8762)
- Fixed panic when running `gh repo rename` by
[@&#8203;babakks](https://togithub.com/babakks) in
[https://github.com/cli/cli/pull/8906](https://togithub.com/cli/cli/pull/8906)
- Fixed panic when parsing IPv6 remote URLs by
[@&#8203;babakks](https://togithub.com/babakks) in
[https://github.com/cli/cli/pull/8893](https://togithub.com/cli/cli/pull/8893)
- Fixed `gh pr lock/unlock` not working when URL is passed by
[@&#8203;t4kamura](https://togithub.com/t4kamura) in
[https://github.com/cli/cli/pull/8837](https://togithub.com/cli/cli/pull/8837)
- Fixed viewing run logs with filenames that the regex didn't handle
[@&#8203;zdrve](https://togithub.com/zdrve) in
[https://github.com/cli/cli/pull/8882](https://togithub.com/cli/cli/pull/8882)

#### The Rest

- Tidy `go.mod` by
[@&#8203;matthewhughes934](https://togithub.com/matthewhughes934) in
[https://github.com/cli/cli/pull/8958](https://togithub.com/cli/cli/pull/8958)
- Fix cache contention in Go CI jobs by
[@&#8203;matthewhughes934](https://togithub.com/matthewhughes934) in
[https://github.com/cli/cli/pull/8957](https://togithub.com/cli/cli/pull/8957)
- Fix `go` directive in `go.mod` by
[@&#8203;matthewhughes934](https://togithub.com/matthewhughes934) in
[https://github.com/cli/cli/pull/8956](https://togithub.com/cli/cli/pull/8956)
- Update install_linux.md by
[@&#8203;richterdavid](https://togithub.com/richterdavid) in
[https://github.com/cli/cli/pull/8950](https://togithub.com/cli/cli/pull/8950)
- build(deps): bump google.golang.org/grpc from 1.61.1 to 1.61.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/8925](https://togithub.com/cli/cli/pull/8925)
- Add codeowners entry for the GitHub TUF root included in the
`attestation` command set by
[@&#8203;malancas](https://togithub.com/malancas) in
[https://github.com/cli/cli/pull/8919](https://togithub.com/cli/cli/pull/8919)
- Create stronger run log cache abstraction by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/8931](https://togithub.com/cli/cli/pull/8931)
- Remove naked returns from git ParseURL by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/8929](https://togithub.com/cli/cli/pull/8929)
- Fix api cache test by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/8932](https://togithub.com/cli/cli/pull/8932)
- Ensure run log cache creates cache dir if it doesn't exist by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/8944](https://togithub.com/cli/cli/pull/8944)
- Close zip file in run view tests by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/8945](https://togithub.com/cli/cli/pull/8945)
- Fix `attestation` cmd offline unit test failure by
[@&#8203;malancas](https://togithub.com/malancas) in
[https://github.com/cli/cli/pull/8933](https://togithub.com/cli/cli/pull/8933)
- Add support to `attestation` command for more predicate types. by
[@&#8203;steiza](https://togithub.com/steiza) in
[https://github.com/cli/cli/pull/8949](https://togithub.com/cli/cli/pull/8949)

#### New Contributors

- [@&#8203;babakks](https://togithub.com/babakks) made their first
contribution in
[https://github.com/cli/cli/pull/8906](https://togithub.com/cli/cli/pull/8906)
- [@&#8203;t4kamura](https://togithub.com/t4kamura) made their first
contribution in
[https://github.com/cli/cli/pull/8837](https://togithub.com/cli/cli/pull/8837)
- [@&#8203;zdrve](https://togithub.com/zdrve) made their first
contribution in
[https://github.com/cli/cli/pull/8882](https://togithub.com/cli/cli/pull/8882)
- [@&#8203;Ebonsignori](https://togithub.com/Ebonsignori) made their
first contribution in
[https://github.com/cli/cli/pull/8762](https://togithub.com/cli/cli/pull/8762)
- [@&#8203;matthewhughes934](https://togithub.com/matthewhughes934) made
their first contribution in
[https://github.com/cli/cli/pull/8958](https://togithub.com/cli/cli/pull/8958)
- [@&#8203;richterdavid](https://togithub.com/richterdavid) made their
first contribution in
[https://github.com/cli/cli/pull/8950](https://togithub.com/cli/cli/pull/8950)

**Full Changelog**: cli/cli@v2.47.0...v2.48.0

### [`v2.47.0`](https://togithub.com/cli/cli/releases/tag/v2.47.0):
GitHub CLI 2.47.0

[Compare Source](https://togithub.com/cli/cli/compare/v2.46.0...v2.47.0)

#### What's Changed

- Fix typo in auth switch help example by
[@&#8203;ihommani](https://togithub.com/ihommani) in
[https://github.com/cli/cli/pull/8870](https://togithub.com/cli/cli/pull/8870)
- Bump go-gh to 2.7.0 by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/8884](https://togithub.com/cli/cli/pull/8884)
- gh-attestation cmd integration by
[@&#8203;malancas](https://togithub.com/malancas) in
[https://github.com/cli/cli/pull/8698](https://togithub.com/cli/cli/pull/8698)
- Upgrade to Go 1.22 by [@&#8203;yanskun](https://togithub.com/yanskun)
in
[https://github.com/cli/cli/pull/8836](https://togithub.com/cli/cli/pull/8836)
- Rely on go.mod go version in all workflows by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/8911](https://togithub.com/cli/cli/pull/8911)
- build(deps): bump gopkg.in/go-jose/go-jose.v2 from 2.6.1 to 2.6.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/8902](https://togithub.com/cli/cli/pull/8902)
- build(deps): bump github.com/docker/docker from 24.0.7+incompatible to
24.0.9+incompatible by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/8903](https://togithub.com/cli/cli/pull/8903)
- Fix segfault in error handling of `gh repo rename` by
[@&#8203;satoqz](https://togithub.com/satoqz) in
[https://github.com/cli/cli/pull/8888](https://togithub.com/cli/cli/pull/8888)
- build(deps): bump google.golang.org/grpc from 1.61.0 to 1.61.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/8912](https://togithub.com/cli/cli/pull/8912)
- build(deps): bump github.com/gorilla/websocket from 1.5.0 to 1.5.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/8913](https://togithub.com/cli/cli/pull/8913)
- build(deps): bump github.com/google/go-containerregistry from 0.19.0
to 0.19.1 by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/8914](https://togithub.com/cli/cli/pull/8914)
- build(deps): bump github.com/sigstore/protobuf-specs from 0.3.0 to
0.3.1 by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/8923](https://togithub.com/cli/cli/pull/8923)
- Bump glamour to v0.7.0 and go mod tidy by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/8920](https://togithub.com/cli/cli/pull/8920)

#### New Contributors

- [@&#8203;ihommani](https://togithub.com/ihommani) made their first
contribution in
[https://github.com/cli/cli/pull/8870](https://togithub.com/cli/cli/pull/8870)
- [@&#8203;malancas](https://togithub.com/malancas) made their first
contribution in
[https://github.com/cli/cli/pull/8698](https://togithub.com/cli/cli/pull/8698)
- [@&#8203;satoqz](https://togithub.com/satoqz) made their first
contribution in
[https://github.com/cli/cli/pull/8888](https://togithub.com/cli/cli/pull/8888)

**Full Changelog**: cli/cli@v2.46.0...v2.47.0

### [`v2.46.0`](https://togithub.com/cli/cli/releases/tag/v2.46.0):
GitHub CLI 2.46.0

[Compare Source](https://togithub.com/cli/cli/compare/v2.45.0...v2.46.0)

#### What's Changed

- Draft issue IDs are included in `project item-list` output by
[@&#8203;yasunori0418](https://togithub.com/yasunori0418) in
[https://github.com/cli/cli/pull/8754](https://togithub.com/cli/cli/pull/8754)
- New `--dry-run` option for `pr create` by
[@&#8203;v1v](https://togithub.com/v1v) in
[https://github.com/cli/cli/pull/8376](https://togithub.com/cli/cli/pull/8376)
- Bump go-keyring to fix race condition by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/8833](https://togithub.com/cli/cli/pull/8833)
- PR numbers are prefixed with owner/repo for context by
[@&#8203;nobe4](https://togithub.com/nobe4) in
[https://github.com/cli/cli/pull/8778](https://togithub.com/cli/cli/pull/8778)
- Extra word removed in `codespaces` code comments by
[@&#8203;cuinix](https://togithub.com/cuinix) in
[https://github.com/cli/cli/pull/8795](https://togithub.com/cli/cli/pull/8795)
- Clarified description of the `-u`, `--user` option for `gh auth token`
by [@&#8203;gregsmi](https://togithub.com/gregsmi) in
[https://github.com/cli/cli/pull/8797](https://togithub.com/cli/cli/pull/8797)
- Fixed formatting for the description of `release upload` by
[@&#8203;malor](https://togithub.com/malor) in
[https://github.com/cli/cli/pull/8834](https://togithub.com/cli/cli/pull/8834)
- Clarified the usage of `auth status` to list all authenticated
accounts by [@&#8203;jsoref](https://togithub.com/jsoref) in
[https://github.com/cli/cli/pull/8838](https://togithub.com/cli/cli/pull/8838)
- Document auth switch behavior for two or more accounts by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/8839](https://togithub.com/cli/cli/pull/8839)
- Document run watch and view not supporting fine grained PATs by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/8843](https://togithub.com/cli/cli/pull/8843)
- build(deps): bump google.golang.org/protobuf from 1.30.0 to 1.33.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/8811](https://togithub.com/cli/cli/pull/8811)
- build(deps): bump github.com/cpuguy83/go-md2man/v2 from 2.0.3 to 2.0.4
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/8844](https://togithub.com/cli/cli/pull/8844)

#### New Contributors

- [@&#8203;cuinix](https://togithub.com/cuinix) made their first
contribution in
[https://github.com/cli/cli/pull/8795](https://togithub.com/cli/cli/pull/8795)
- [@&#8203;gregsmi](https://togithub.com/gregsmi) made their first
contribution in
[https://github.com/cli/cli/pull/8797](https://togithub.com/cli/cli/pull/8797)
- [@&#8203;nobe4](https://togithub.com/nobe4) made their first
contribution in
[https://github.com/cli/cli/pull/8778](https://togithub.com/cli/cli/pull/8778)
- [@&#8203;malor](https://togithub.com/malor) made their first
contribution in
[https://github.com/cli/cli/pull/8834](https://togithub.com/cli/cli/pull/8834)
- [@&#8203;yasunori0418](https://togithub.com/yasunori0418) made their
first contribution in
[https://github.com/cli/cli/pull/8754](https://togithub.com/cli/cli/pull/8754)

**Full Changelog**: cli/cli@v2.45.0...v2.46.0

### [`v2.45.0`](https://togithub.com/cli/cli/releases/tag/v2.45.0):
GitHub CLI 2.45.0

[Compare Source](https://togithub.com/cli/cli/compare/v2.44.1...v2.45.0)

#### What's Changed

- Resolve go compiler regression by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/8716](https://togithub.com/cli/cli/pull/8716)
- bug: fixed the msg returned for patching a repo variable by
[@&#8203;dean-tate](https://togithub.com/dean-tate) in
[https://github.com/cli/cli/pull/8715](https://togithub.com/cli/cli/pull/8715)
- Fix regression around commas in commit titles during `pr create` by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/8768](https://togithub.com/cli/cli/pull/8768)
- feat: Add `ref` option to `gh cache list` by
[@&#8203;toshimaru](https://togithub.com/toshimaru) in
[https://github.com/cli/cli/pull/8711](https://togithub.com/cli/cli/pull/8711)
- Make comments in the default config file more informative by
[@&#8203;bartekpacia](https://togithub.com/bartekpacia) in
[https://github.com/cli/cli/pull/8756](https://togithub.com/cli/cli/pull/8756)
- Link Project to Repository or Team Command by
[@&#8203;benebsiny](https://togithub.com/benebsiny) in
[https://github.com/cli/cli/pull/8595](https://togithub.com/cli/cli/pull/8595)
- Clarify helptext for search prs regarding archived repos by
[@&#8203;stuart-leitch](https://togithub.com/stuart-leitch) in
[https://github.com/cli/cli/pull/8738](https://togithub.com/cli/cli/pull/8738)
- Simplify install command for Debian & Ubuntu by
[@&#8203;hongquan](https://togithub.com/hongquan) in
[https://github.com/cli/cli/pull/8693](https://togithub.com/cli/cli/pull/8693)
- Support `project view --web` with TTY by
[@&#8203;harveysanders](https://togithub.com/harveysanders) in
[https://github.com/cli/cli/pull/8773](https://togithub.com/cli/cli/pull/8773)
- Bump cli/go-gh v2.6.0 for tenant using GH_TOKEN by
[@&#8203;andyfeller](https://togithub.com/andyfeller) in
[https://github.com/cli/cli/pull/8787](https://togithub.com/cli/cli/pull/8787)

#### New Contributors

- [@&#8203;dean-tate](https://togithub.com/dean-tate) made their first
contribution in
[https://github.com/cli/cli/pull/8715](https://togithub.com/cli/cli/pull/8715)
- [@&#8203;bartekpacia](https://togithub.com/bartekpacia) made their
first contribution in
[https://github.com/cli/cli/pull/8756](https://togithub.com/cli/cli/pull/8756)
- [@&#8203;stuart-leitch](https://togithub.com/stuart-leitch) made their
first contribution in
[https://github.com/cli/cli/pull/8738](https://togithub.com/cli/cli/pull/8738)
- [@&#8203;hongquan](https://togithub.com/hongquan) made their first
contribution in
[https://github.com/cli/cli/pull/8693](https://togithub.com/cli/cli/pull/8693)

**Full Changelog**: cli/cli@v2.44.1...v2.45.0

### [`v2.44.1`](https://togithub.com/cli/cli/releases/tag/v2.44.1):
GitHub CLI 2.44.1

[Compare Source](https://togithub.com/cli/cli/compare/v2.44.0...v2.44.1)

#### What's Changed

- Fix PR create regression around title and body when there is only one
commit by [@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/8707](https://togithub.com/cli/cli/pull/8707)

**Full Changelog**: cli/cli@v2.44.0...v2.44.1

### [`v2.44.0`](https://togithub.com/cli/cli/releases/tag/v2.44.0):
GitHub CLI 2.44.0

[Compare Source](https://togithub.com/cli/cli/compare/v2.43.1...v2.44.0)

#### What's Changed

- Feature: added Order flag for release list command by
[@&#8203;leevic31](https://togithub.com/leevic31) in
[https://github.com/cli/cli/pull/8632](https://togithub.com/cli/cli/pull/8632)
- autofill with body by
[@&#8203;guerinoni](https://togithub.com/guerinoni) in
[https://github.com/cli/cli/pull/8423](https://togithub.com/cli/cli/pull/8423)
- Add default values to web manual and man pages by
[@&#8203;zsloane](https://togithub.com/zsloane) in
[https://github.com/cli/cli/pull/8395](https://togithub.com/cli/cli/pull/8395)
- build(deps): bump microsoft/setup-msbuild from 1.3.2 to 2.0.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/8648](https://togithub.com/cli/cli/pull/8648)
- Documentation for built-in aliases by
[@&#8203;Rebeccasun31](https://togithub.com/Rebeccasun31) in
[https://github.com/cli/cli/pull/8367](https://togithub.com/cli/cli/pull/8367)
- Add more detail to fork failure message by
[@&#8203;chrisroat](https://togithub.com/chrisroat) in
[https://github.com/cli/cli/pull/8614](https://togithub.com/cli/cli/pull/8614)
- feat: Add cache key option to `gh cache list` by
[@&#8203;toshimaru](https://togithub.com/toshimaru) in
[https://github.com/cli/cli/pull/8667](https://togithub.com/cli/cli/pull/8667)

#### New Contributors

- [@&#8203;zsloane](https://togithub.com/zsloane) made their first
contribution in
[https://github.com/cli/cli/pull/8395](https://togithub.com/cli/cli/pull/8395)
- [@&#8203;Rebeccasun31](https://togithub.com/Rebeccasun31) made their
first contribution in
[https://github.com/cli/cli/pull/8367](https://togithub.com/cli/cli/pull/8367)
- [@&#8203;chrisroat](https://togithub.com/chrisroat) made their first
contribution in
[https://github.com/cli/cli/pull/8614](https://togithub.com/cli/cli/pull/8614)
- [@&#8203;toshimaru](https://togithub.com/toshimaru) made their first
contribution in
[https://github.com/cli/cli/pull/8667](https://togithub.com/cli/cli/pull/8667)

**Full Changelog**: cli/cli@v2.43.1...v2.44.0

### [`v2.43.1`](https://togithub.com/cli/cli/releases/tag/v2.43.1):
GitHub CLI 2.43.1

[Compare Source](https://togithub.com/cli/cli/compare/v2.43.0...v2.43.1)

#### What's Changed

- Fix label create regression in v2.43.0 by
[@&#8203;williammartin](https://togithub.com/williammartin) in
[https://github.com/cli/cli/pull/8653](https://togithub.com/cli/cli/pull/8653)

**Full Changelog**: cli/cli@v2.43.0...v2.43.1

### [`v2.43.0`](https://togithub.com/cli/cli/releases/tag/v2.43.0):
GitHub CLI 2.43.0

[Compare Source](https://togithub.com/cli/cli/compare/v2.42.1...v2.43.0)

#### Special note

With this release, the GitHub CLI team sees
[@&#8203;samcoe](https://togithub.com/samcoe) off to new adventures
beyond GitHub! 😿 Sam has been an amazing maintainer and colleague who
has helped so many people adopt `gh` while trying to connect with the
community regarding its needs. There will forever be a Sam-shaped hole
no one can fill but hope he continues to be a part wherever his
whirlwind journey takes him! ❤️

#### What's Changed

- Remove project JSON formatting objects by
[@&#8203;heaths](https://togithub.com/heaths) in
[https://github.com/cli/cli/pull/8541](https://togithub.com/cli/cli/pull/8541)
- build(deps): bump actions/upload-artifact from 3 to 4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/8467](https://togithub.com/cli/cli/pull/8467)
- build(deps): bump actions/download-artifact from 3 to 4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/8466](https://togithub.com/cli/cli/pull/8466)
- Add option --json for gh variable list by
[@&#8203;w1mvy](https://togithub.com/w1mvy) in
[https://github.com/cli/cli/pull/8516](https://togithub.com/cli/cli/pull/8516)
- Add `--json` export flag for release list by
[@&#8203;v1v](https://togithub.com/v1v) in
[https://github.com/cli/cli/pull/8474](https://togithub.com/cli/cli/pull/8474)
- 📝 (search/repos) add usage tips for --archived=false by
[@&#8203;shion1305](https://togithub.com/shion1305) in
[https://github.com/cli/cli/pull/8391](https://togithub.com/cli/cli/pull/8391)
- fix: Prevent nil dereference in `pr view`. by
[@&#8203;octo](https://togithub.com/octo) in
[https://github.com/cli/cli/pull/8566](https://togithub.com/cli/cli/pull/8566)
- Fix some typos raised by codespell by
[@&#8203;fpistm](https://togithub.com/fpistm) in
[https://github.com/cli/cli/pull/8589](https://togithub.com/cli/cli/pull/8589)
- Add force flag to setup-git command by
[@&#8203;rajhawaldar](https://togithub.com/rajhawaldar) in
[https://github.com/cli/cli/pull/8552](https://togithub.com/cli/cli/pull/8552)
- build(deps): bump actions/cache from 3 to 4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/8594](https://togithub.com/cli/cli/pull/8594)
- Feature: output URL for newly created repo by
[@&#8203;leevic31](https://togithub.com/leevic31) in
[https://github.com/cli/cli/pull/8574](https://togithub.com/cli/cli/pull/8574)
- Update Arch repo to \[extra] by
[@&#8203;Xeonacid](https://togithub.com/Xeonacid) in
[https://github.com/cli/cli/pull/8607](https://togithub.com/cli/cli/pull/8607)
- build(deps): bump microsoft/setup-msbuild from 1.3.1 to 1.3.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/8629](https://togithub.com/cli/cli/pull/8629)
- fix(pr create): clarify refspec to push to correct branch in the event
of a conflicting tag by
[@&#8203;arunsathiya](https://togithub.com/arunsathiya) in
[https://github.com/cli/cli/pull/8618](https://togithub.com/cli/cli/pull/8618)
- Send activity signals during non-interactive codespace SSH command by
[@&#8203;dmgardiner25](https://togithub.com/dmgardiner25) in
[https://github.com/cli/cli/pull/8639](https://togithub.com/cli/cli/pull/8639)
- Upgrade cli/go-gh to v2.5.0 for home-manager fix by
[@&#8203;andyfeller](https://togithub.com/andyfeller) in
[https://github.com/cli/cli/pull/8647](https://togithub.com/cli/cli/pull/8647)

#### New Contributors

- [@&#8203;w1mvy](https://togithub.com/w1mvy) made their first
contribution in
[https://github.com/cli/cli/pull/8516](https://togithub.com/cli/cli/pull/8516)
- [@&#8203;v1v](https://togithub.com/v1v) made their first contribution
in
[https://github.com/cli/cli/pull/8474](https://togithub.com/cli/cli/pull/8474)
- [@&#8203;octo](https://togithub.com/octo) made their first
contribution in
[https://github.com/cli/cli/pull/8566](https://togithub.com/cli/cli/pull/8566)
- [@&#8203;fpistm](https://togithub.com/fpistm) made their first
contribution in
[https://github.com/cli/cli/pull/8589](https://togithub.com/cli/cli/pull/8589)
- [@&#8203;leevic31](https://togithub.com/leevic31) made their first
contribution in
[https://github.com/cli/cli/pull/8574](https://togithub.com/cli/cli/pull/8574)
- [@&#8203;Xeonacid](https://togithub.com/Xeonacid) made their first
contribution in
[https://github.com/cli/cli/pull/8607](https://togithub.com/cli/cli/pull/8607)

**Full Changelog**: cli/cli@v2.42.1...v2.43.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/DelineaXPM/github-workflows).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yOTMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjQzMS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
TheIanLi added a commit to TheIanLi/no-mistakes that referenced this pull request Jul 10, 2026
gh pr checks --json was added in gh v2.50.0 (cli/cli#9079); on older gh
(e.g. distro-packaged 2.45.0) it fails every poll with "unknown flag:
--json" and no-mistakes' ci step spins until ci_timeout even on a green,
mergeable PR. GetChecks now detects that specific stderr, memoizes it
per Host so the unsupported flag is attempted at most once per process,
and falls back to `gh pr view --json statusCheckRollup`, which has been
stable far longer and exits 0 regardless of check state (unlike `pr
checks`, which uses nonzero exits to signal pending/failing).

The fallback mapper reuses normalizeCheckBucket, and explicitly coerces
its empty-string default to CheckBucketPending: an unmapped bucket is
neither Failing() nor Pending(), so ci.go's aggregation would otherwise
count an unrecognized future gh state as passed and green-light the
merge gate.
TheIanLi added a commit to TheIanLi/no-mistakes that referenced this pull request Jul 11, 2026
gh pr checks --json was added in gh v2.50.0 (cli/cli#9079); on older gh
(e.g. distro-packaged 2.45.0) it fails every poll with "unknown flag:
--json" and no-mistakes' ci step spins until ci_timeout even on a green,
mergeable PR. GetChecks now detects that specific stderr, memoizes it
per Host so the unsupported flag is attempted at most once per process,
and falls back to `gh pr view --json statusCheckRollup`, which has been
stable far longer and exits 0 regardless of check state (unlike `pr
checks`, which uses nonzero exits to signal pending/failing).

The fallback mapper reuses normalizeCheckBucket, and explicitly coerces
its empty-string default to CheckBucketPending: an unmapped bucket is
neither Failing() nor Pending(), so ci.go's aggregation would otherwise
count an unrecognized future gh state as passed and green-light the
merge gate.
dwiedeman added a commit to dwiedeman/work-harness that referenced this pull request Jul 30, 2026
…d (DER-2774)

`parseChecksOutput` read the human `gh pr checks` TSV, matched a row literally
NAMED `checks`, and returned `checks: null` when it found none. That one answer
meant three different things at once: the probe died, the repo has no CI, and —
on any repo whose required job is not called `checks` — the CI is RED. This repo
is the third case (`tests (node 20|22|24)`, `static checks`,
`public-comment security regression`).

`readyVerdict` waived a null `checks` under `repo.allowMergeWithoutChecks: true`,
which is the loosening the SHIPPED example config hands adopters alongside
`"mergeMode": "direct"`. So on most adopter repos the key an owner enabled to
mean "I have no CI" silently also meant "ignore CI". Executed on the parent
commit against PR #2 of this repo, a genuinely red tree: `ready` printed
`*** MERGEABLE (direct) ***`.

The probe now runs `gh pr checks <n> --json name,state,bucket,link` and the
parser answers from every check's BUCKET, returning pass / fail / pending /
absent / unknown. Ground truth measured against gh 2.76.2 and 2.86.0 (the
exit-code lore from the TSV mode does not carry over — the JSON exporter writes
and returns BEFORE the exit-code logic, so a failing tree exits 0):
  - exit 0            → classify from buckets only; exit 0 is never itself "pass"
  - exit != 0 and stderr "no checks reported on the '<b>' branch" → ABSENT
  - anything else (auth, 404, throttle, SIGKILL timeout, no gh)   → UNKNOWN
The waiver now keys on ABSENT alone; fail, pending and UNKNOWN all block with the
flag on. The zero-checks sentence is pinned as an exported sample and the matcher
is DERIVED from it, so it is load-bearing rather than a test-only fixture.

Second fix: `mergeAction` emits `--match-head-commit <sha>` in direct mode, and
`ready` threads the `headRefOid` every other gate was evaluated against. `ready`
prints a command someone runs later; without the pin a push landing in that
window merges a tree nothing gated. Queue mode is unchanged — the native queue
re-evaluates its own entry.

Regression tests were run against the parent commit and observed FAILING first
(9 failures), including the end-to-end P0. Rewrote, not supplemented, the tests
that pinned the old shape: the mergeAction argv deep-equals now expect the head
binding, and the waiver test constructs its input THROUGH THE REAL PARSER from
recorded gh captures — handing it a `checks: null` literal is why it passed while
the shipped pair waived a red tree. Added a call-site test that derives the
production call sites from source, so a parameter threaded nowhere cannot pass.

Docs swept for copy that asserted the old behavior: work.config.example.json,
work-shepherd/SKILL.md, work/SKILL.md, and README (which now states the gh >= 2.50
floor that `pr checks --json` needs — cli/cli#9079; verified 2.76.2 and 2.86.0).

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
dwiedeman added a commit to dwiedeman/work-harness that referenced this pull request Jul 30, 2026
…d (DER-2774) (#18)

* fix(ready): a red CI is not an absent CI; direct merges bind to a head (DER-2774)

`parseChecksOutput` read the human `gh pr checks` TSV, matched a row literally
NAMED `checks`, and returned `checks: null` when it found none. That one answer
meant three different things at once: the probe died, the repo has no CI, and —
on any repo whose required job is not called `checks` — the CI is RED. This repo
is the third case (`tests (node 20|22|24)`, `static checks`,
`public-comment security regression`).

`readyVerdict` waived a null `checks` under `repo.allowMergeWithoutChecks: true`,
which is the loosening the SHIPPED example config hands adopters alongside
`"mergeMode": "direct"`. So on most adopter repos the key an owner enabled to
mean "I have no CI" silently also meant "ignore CI". Executed on the parent
commit against PR #2 of this repo, a genuinely red tree: `ready` printed
`*** MERGEABLE (direct) ***`.

The probe now runs `gh pr checks <n> --json name,state,bucket,link` and the
parser answers from every check's BUCKET, returning pass / fail / pending /
absent / unknown. Ground truth measured against gh 2.76.2 and 2.86.0 (the
exit-code lore from the TSV mode does not carry over — the JSON exporter writes
and returns BEFORE the exit-code logic, so a failing tree exits 0):
  - exit 0            → classify from buckets only; exit 0 is never itself "pass"
  - exit != 0 and stderr "no checks reported on the '<b>' branch" → ABSENT
  - anything else (auth, 404, throttle, SIGKILL timeout, no gh)   → UNKNOWN
The waiver now keys on ABSENT alone; fail, pending and UNKNOWN all block with the
flag on. The zero-checks sentence is pinned as an exported sample and the matcher
is DERIVED from it, so it is load-bearing rather than a test-only fixture.

Second fix: `mergeAction` emits `--match-head-commit <sha>` in direct mode, and
`ready` threads the `headRefOid` every other gate was evaluated against. `ready`
prints a command someone runs later; without the pin a push landing in that
window merges a tree nothing gated. Queue mode is unchanged — the native queue
re-evaluates its own entry.

Regression tests were run against the parent commit and observed FAILING first
(9 failures), including the end-to-end P0. Rewrote, not supplemented, the tests
that pinned the old shape: the mergeAction argv deep-equals now expect the head
binding, and the waiver test constructs its input THROUGH THE REAL PARSER from
recorded gh captures — handing it a `checks: null` literal is why it passed while
the shipped pair waived a red tree. Added a call-site test that derives the
production call sites from source, so a parameter threaded nowhere cannot pass.

Docs swept for copy that asserted the old behavior: work.config.example.json,
work-shepherd/SKILL.md, work/SKILL.md, and README (which now states the gh >= 2.50
floor that `pr checks --json` needs — cli/cli#9079; verified 2.76.2 and 2.86.0).

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* test(ready): a never-probed `checks` is not a verified-absent one (DER-2774)

Orchestrator constraint: assert directly on `readyVerdict` that no UNSET value
can route into the `allowMergeWithoutChecks` waiver. The pre-fix predicate was
`checks == null || checks === ""`, so a caller that never ran the probe — or ran
it and dropped the result — was indistinguishable from a repo with genuinely no
CI, and the opt-in merged it.

Covers null, undefined, "" and the key omitted entirely. Observed failing on the
parent commit in isolation first: 4/4 assertions failed, each returning
`{ready:true, why:"all gates pass (checks UNKNOWN — WAIVED …)"}`; 4/4 pass on the
fix. The surrounding test's earlier assertions mask this one, which is why it was
also proven standalone.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

---------

Co-authored-by: Derrek Wiedeman <[email protected]>
Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
radiusred-cody Bot added a commit to radiusred/gh-codecrew that referenced this pull request Aug 28, 2026
…tity check (#148)

README and the quickstart state the gh floor (pr checks --json, cli/cli#9079; #119 findings 21, 30) and that a protected default branch makes the scaffold the first PR (finding 4); the README says App-held seats arrive by dispatch (finding 5); identities.md gets the qa permission rationale (finding 14), per-agent GH_CONFIG_DIR and the 401 rule (findings 10, 22), that an App cannot create a repo (finding 3), and an identity check that works under an installation token (#139).
radiusred-cody Bot added a commit to radiusred/gh-codecrew that referenced this pull request Aug 28, 2026
…tity check (#148)

README and the quickstart state the gh floor (pr checks --json, cli/cli#9079; #119
findings 21, 30) and that a protected default branch makes the scaffold the first PR
(finding 4); the README says App-held seats arrive by dispatch (finding 5);
identities.md gets the qa permission rationale (finding 14), per-agent GH_CONFIG_DIR
and the 401 rule (findings 10, 22), that an App cannot create a repo (finding 3), and
an identity check that works under an installation token (#139).
radiusred-cody Bot added a commit to radiusred/gh-codecrew that referenced this pull request Aug 28, 2026
…tity check (#148)

README and the quickstart state the gh floor (pr checks --json, cli/cli#9079; #119
findings 21, 30) and that a protected default branch makes the scaffold the first PR
(finding 4); the README says App-held seats arrive by dispatch (finding 5);
identities.md gets the qa permission rationale (finding 14), per-agent GH_CONFIG_DIR
and the 401 rule (findings 10, 22), that an App cannot create a repo (finding 3), and
an identity check that works under an installation token (#139).
radiusred-cody Bot added a commit to radiusred/gh-codecrew that referenced this pull request Aug 28, 2026
…iling inside a gate (#153)

gh.Version parses the gh --version banner; load() checks it against ghFloor (2.50.0,
for gh pr checks --json, cli/cli#9079) and refuses GH_TOO_OLD naming both versions. A
banner that does not parse proceeds with a note. The crew's container carried Debian's
2.46: task finish died inside gh and milestone close skipped its sweep (#119 findings
21, 30; #149). Table tests for the parser and comparator; the check is stubbed through
a func var.
radiusred-cody Bot added a commit to radiusred/gh-codecrew that referenced this pull request Aug 28, 2026
…iling inside a gate (#153)

gh.Version parses the gh --version banner; load() checks it against ghFloor (2.50.0,
for gh pr checks --json, cli/cli#9079) and refuses GH_TOO_OLD naming both versions. A
banner that does not parse proceeds with a note. The crew's container carried Debian's
2.46: task finish died inside gh and milestone close skipped its sweep (#119 findings
21, 30; #149). Table tests for the parser and comparator; the check is stubbed through
a func var.
radiusred-cody Bot added a commit to radiusred/gh-codecrew that referenced this pull request Aug 28, 2026
…iling inside a gate (#153)

gh.Version parses the gh --version banner; load() checks it against ghFloor (2.50.0,
for gh pr checks --json, cli/cli#9079) and refuses GH_TOO_OLD naming both versions. A
banner that does not parse proceeds with a note. The crew's container carried Debian's
2.46: task finish died inside gh and milestone close skipped its sweep (#119 findings
21, 30; #149). Table tests for the parser and comparator; the check is stubbed through
a func var.
HawkeyePierce89 added a commit to HawkeyePierce89/pisaka that referenced this pull request Sep 4, 2026
#54)

* add plan: github-pull-requests-part-1-gh-cli-macos

* feat: the gh seam, command vocabulary, version bound and availability

Task 1 of the GitHub pull requests plan: everything that can be decided
before any GitHub data is parsed, all of it Foundation-only in PisakaCore.

- GitHubCLI.swift: the narrow app/Core seam — GitHubCommand (arguments,
  working directory, per-command deadline, refreshesExecutableLocation),
  GitHubCommandResult, the GitHubCLITransport protocol, GitHubCLIError's
  three launch-side failures with their sentences, and the non-interactive
  environment overlay as a Core value the app merges over the inherited one.
- GitHubCommands.swift: eight factories over the seven gh commands in scope,
  with the three --json field lists as ordered constants shared with the
  parsers. No --repo anywhere (gh resolves the repository from the remote,
  which is what makes Enterprise work for free) and no --web.
- GitHubVersion.swift: parse gh's two-line --version output by the line's
  first two words, drop prerelease/build suffixes, compare, and pin 2.50.0
  with the one flag that is the reason (pr checks --json, cli/cli#9079).
- GitHubAvailability.swift: the four states from the two probes alone, the
  version judged before the sign-in, each carrying its sentence and its
  exact next step.

Tests: every argument list byte for byte, the re-location flag by set
equality over the factories, version parsing and comparison, and all four
availability states.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* feat: the one gh schema file, its closed tables, parsers and the summary rule

`GitHubPullRequest.swift` carries the value types and the five closed
vocabularies — a `CheckRun`'s status and conclusion, a `StatusContext`'s state,
`gh`'s own five-way bucket and the review decision whose `""` is `.none` rather
than an absence. `GitHubAPI.swift` is the one schema file: the parsers for
`pr list` (both `__typename`s), `pr checks`, `repo view` and the create URL, and
`GitHubSchemaError`, which names the key path that did not match.

The summary rule is pinned in the order it is applied — `noChecks` on an empty
rollup, then `pending` (unfinished outranks a failure already in, as GitHub's own
badge does), then `failure`, then `success` — and a mixed array is decided over
both tables at once, which is why the rollup keeps the two kinds apart instead of
flattening them.

Fixtures under `Tests/PisakaCoreTests/Fixtures/github/` are four verbatim
captures from `gh 2.99.0` against this repository plus two authored violation
cases; provenance in that directory's README, and the folder is listed in the
test target's `exclude:` like the other two.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* feat: PullRequestModel — the reader, its two tokens and the scripted seam

The main-actor model behind both GitHub surfaces: it re-probes availability
on every refresh and never more often, lists the open pull requests, looks
the current branch's own up with a `--head` filter, and reads a row's
per-job checks when it is expanded.

Two generation tokens counted apart — a refresh and a checks load are
independently re-triggerable — each bumped in its method's synchronous
prefix, so a superseded run publishes nothing at all. A failed command or a
schema refusal lands in the one message slot and leaves the rows exactly as
they were; the slot records whose sentence it holds, so a refresh that
succeeded cannot clear the only explanation an expanded row's empty jobs
list has. Availability going not-ready is the stated exception and does
clear the rows: a `gh` that is gone, too old or signed out is a different
state of the world, not a failed read.

`pr checks` is judged on its stdout parsing and never on its exit status
(exit 8 is "pending", exit 1 is "a check failed", and both print the JSON);
an empty `--head` array is "no pull request", not an error.

`ScriptedGitHubCLI` joins the shared support helpers: answers keyed by the
argument list `GitHubCommands` composes, a queue per key with a sticky last
step, an unscripted call throws, every command logged in order, and a `Gate`
per key so the superseding races are staged causally rather than timed.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* feat: the create flow — the repo view base, push-first and the one-write rule

`GitHubCreatePlan` is the New Pull Request sheet's pure half: the base comes
from `gh repo view` and nowhere else, the two refusals are
`PushUnavailableReason.detachedHEAD`/`.noRemote` verbatim (they are literally
the same two impossibilities the commit dialog's push half names), and an empty
base is the third way Create is off — carrying no sentence of its own, because
the `repo view` failure that produced it already put gh's words in the model's
one message slot.

`PullRequestModel` gains the sheet's read (`prepareCreate`, under a third
generation token so a branch-change refresh cannot blank an open sheet's picker)
and the write: raise `isWriteInFlight`, read a *fresh* `CommitContext`, refuse
per the plan, push through the existing `GitServicing.push(_:root:)` on both
`PushPlan` branches, then `gh pr create` with an always-explicit `--base`, the
number read out of the printed URL and the new row selected after the refresh.
A push that fails never reaches `pr create`.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* feat: the shared executable locator and the one gh Process transport

`ExecutableLocator` is now the one definition of "where is this program on
this Mac": inherited `PATH` → a caller-supplied well-known directory list →
the login shell's own `$PATH` (`-l -c /usr/bin/env`, the `PATH=` line), with
the found path carried together with the `PATH` that found it. It was lifted
verbatim out of `LSPRustToolchainService`, which is now one of its two
callers; `LSPGoToolchainService` is deliberately left alone. The one step
that costs a subprocess is handed out as a closure, so each caller keeps its
own child registry, deadline and teardown.

`GitHubCLIProcessTransport` is the one app file that runs `Process` for
`gh`. It merges Core's non-interactive overlay over the inherited
environment (with the discovered `PATH`), runs in the repository root,
drains both pipes on queues of their own, bounds the command by its own
deadline and tears a late child down as a process group (SIGTERM → grace →
SIGKILL), so a quit during `gh pr checkout` leaves behind neither `gh` nor
the `git` it shelled out to. It decides nothing but the three
`GitHubCLIError` cases; a non-zero status is an answer, not a failure.

Discovery is per refresh, not per command and not per app run: the located
`gh` is cached with its `PATH` and re-located only when the command carries
`refreshesExecutableLocation` (the version probe, the first command of every
refresh), when the cached path is gone from disk, or when a launch fails —
in which case the search re-runs once and the command is retried. One
login-shell spawn per refresh is the budget, and a `gh` installed a moment
ago from the embedded terminal still lands on the next refresh.

No new Core tests are possible here — `Process` cannot be linked from the
test target — so the rules are pinned statically in Task 8. The Rust
service's existing suites pass unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* feat: the panel case, the coordinator and the eighth gated operation

`BottomPanel.pullRequests` and `LocalHistoryEvent.pullRequest` (tag written
out, because the case name is not the tag), `PullRequestModel.checkout(_:)`
— which composes the command, asks an injected gate before anything is sent
and hands the operation out exactly once — and `PullRequestCoordinator`, the
`DatabaseViewerTabs` analogue that owns the model, the transport and the one
site through which a checkout reaches the writer bracket.

`runBranchOperation` is generalised to take the Local History event and an
operation answering `String?`: `nil` is success, a sentence is a failure worth
an alert, and `""` is a failure already published where the reader is looking
— which is the only one this feature returns. The two branch callers keep
passing `.branch`; the coordinator passes `.pullRequest`.

The measured lint ceilings move with the scene's twenty-one lines (1838→1859,
1822→1843), with the reason recorded in `.swiftlint.yml` beside the number.

The macOS app target does not build at this commit: `ContentView.panelContent`
is exhaustive over `BottomPanel`, and the new case's branch — with the panel
view it hosts — is the next task's. `swift test` and `swiftlint --strict` are
both green.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* feat: the panel, the sheet, the indicator and the refresh triggers

The Pull Requests feature's three macOS surfaces, plus the two refresh
triggers that were still missing.

`PullRequestsPanelView` is the sixth bottom-dock panel: the three
not-ready states each printing `GitHubAvailability`'s sentence and its
one next step, rows carrying number, title, author, head -> base, the
draft marker, the review decision and the checks summary, Checkout and
Open on GitHub per row, and an expandable per-job checks list with each
job's link. New Pull Request, Checkout and refresh all disable on the
one write term, `isWriteInFlight`. It states no minimum height, like its
five siblings. The **panel-shown trigger** is its one `.onAppear` —
`ContentView`'s owner holds the selected panel in `@State` and publishes
nothing the coordinator could subscribe to, so the panel's own view is
where "the panel is on screen" is known.

`NewPullRequestSheet` is the commit dialog's shape: the title seeded
from `HEAD`'s subject, a body, a base picker defaulting to `repo view`'s
answer, a Draft checkbox, and the plan's three sentences — the base, the
publish-to-remote line and the uncommitted-changes note. A failure
leaves the sheet open with every field intact.

`PullRequestIndicatorView` sits beside the branch widget and draws
nothing at all unless the checked-out branch has an open pull request —
which is also the answer on a detached HEAD and when `gh` is not ready.
Clicking it opens the panel with that row expanded.

`PullRequestCoordinator` gains the **branch-change subscription** (the
publisher's value, never `branchSwitcher.current`, which `@Published`
leaves one behind; `dropFirst()` so the value that was already current
at wiring time is not read as a change) and the **post-checkout
refresh**; create's post-operation read is the model's own tail, so
there is deliberately no second one. It also answers the sheet's two
reads: `HEAD`'s subject and the local branch list.

`ContentView` gains the sixth bar button, the `panelContent(_:)` branch
and the indicator, reading the coordinator out of the window
environment. `PisakaApp.swift` grows by **zero** lines — the injection
is chained onto the existing `.environmentObject(databaseViewers)`
modifier, so both measured ceilings stay where they are, and the scene
still names no refresh trigger.

`BottomPanelSourceGatingTests`' per-panel table gains the new case, so
the new panel root is checked for a stated minimum height like the other
five; the table is pinned to `panelContent(_:)`'s case labels by set
equality, which is what forced this edit.

`swift test` 4846/4846, `swiftlint --strict` clean, macOS and iOS
Simulator builds green.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* feat: the source-gating suite for the Pull Requests feature

GitHubSourceGatingTests reads the feature's sources through #filePath and pins
the rules the compiler cannot see: Process runs gh in one app file and Core
names it nowhere; the app half is macOS-gated by set equality and the iOS layer
names none of it; no gh argument is spelled in the app layer while the whole
vocabulary is composed in GitHubCommands.swift; the checkout reaches the writer
bracket through one site and no file under the feature names the gate; the
executable locator has one definition and two callers; the refresh triggers live
in the coordinator and the panel view, with the scene naming none; and the
feature never polls, with GitHubCLIProcessTransport as the one stated exception.

The vocabulary rule reads a second, comment-only stripper: the flags and
subcommands *are* string literals, so the repository's usual scanner would
delete the very text the rule is about.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* feat: verify the Pull Requests feature's acceptance gates

Runs the plan's Task 9 gates on the landed feature and records the
results: `swift test` (4861 tests, 0 failures), `swiftlint --strict`
from the repository root (0 violations over 492 files), `xcodegen
generate`, the Release macOS build and the iOS Simulator build (both
succeeded), and the ci.yml launch smoke test against the built
`Pisaka.app` — the app survived its 5s deadline and was terminated by
the step, with an empty log, so the dyld gate is clear.

No source change: this task is verification only.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* feat: the Pull Requests feature's documentation

`docs/architecture/core-github.md` carries both halves with decisions G1–G12:
the narrow seam, the one schema file and its closed tables, the checks
exit-status rule, the 2.50.0 minimum and the flag that sets it, the
non-interactive environment, why nothing composes `owner/repo`, discovery and
its per-refresh cache, the four availability states, event-driven freshness and
the three tokens, one write in flight, push-before-create with the `repo view`
base, and the eighth gated operation's capture-first order — plus a per-file
entry for each of the eight Core and six app files, the test inventory and the
known limits.

`CLAUDE.md` gains the two index blocks and one invariant paragraph; the
disk-writer and Local History invariants now say eight. `README.md` and
`docs/FEATURES.md` describe the panel, the sheet, the indicator and what is
deliberately not there. The moved ceilings (1838→1859, 1822→1843) are itemised
in `style-lint.md` with what each line bought.

Four sibling docs were stale as of the code that shipped and are corrected
here: `core-local-history.md` (nine events, eight operations across seven
brackets, the new tag's raw value), `app-window.md` (six bar buttons, the sixth
`panelContent` branch, the environment-injected coordinator, the indicator),
`core-services.md` (the enum's sixth case) and `app-shell.md` (the sixth View
menu command and `runBranchOperation`'s generalisation).

`swift test` 4861 tests green; `swiftlint --strict` clean.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* fix: address code review findings

Correctness and safety
- The checks link opens only http/https, `LeetCodeDescriptionView`'s rule for
  its reason: a check's `detailsUrl` is published by whatever integration posted
  the check, and `NSWorkspace.open` would hand a `file:` url to the Finder.
- A failed `pr checks` read is recorded in `checksFailures` and drawn as its own
  answer: `checks[number] == nil` means "still reading", so the expanded row was
  left spinning forever on the one state the two-state split does not cover.
- The create sheet draws `createMessage` — the slot only when the sentence is the
  create's own — so a background refresh's failure no longer reads as a refusal
  on a sheet where nothing has been submitted.
- `clearRows()` drops `repository`, `createPlan` and the context they were planned
  over: an open sheet kept an enabled Create over a `create` that had started
  returning at its readiness guard without a word.
- An empty title is refused by `create(...)` before anything is pushed, rather
  than by the sheet's button alone.
- `gh pr checkout` now asks the same dirty-tree confirmation `switchBranch` and
  `checkoutRemote` ask, and an unwired coordinator refuses before the model
  raises the one-write flag — both in `PullRequestCoordinator.checkout(_:)`,
  because the flag is raised at the hand-out and a refusal after it would strand.
- `pullRequests.terminateNow()` is called from the terminate observer beside the
  language servers' own; it existed and had no caller, so a `pr checkout` in
  flight could outlive the app with a `git` beneath it.
- The bottom bar's Pull Requests glyph is `arrow.triangle.merge`, not Changes'
  own `arrow.triangle.pull`; the indicator expands only a row the panel has.

Tests
- `ScriptedGitHubCLI` gains `hold(_:on:forCall:)`. Holding a key holds both
  racers, so they resume in call order, the stale run publishes first and the
  token tests passed over a deleted guard — verified by mutation. The two
  superseded-refresh tests now let the fresh run finish and the stale one land
  last; both fail with the guard removed.
- New coverage, each mutation-checked: the create sheet's token (two cases), the
  `auth status` failure branch, `pruneChecks` clearing a stale selection, the
  root guard on a model whose folder was closed under a ready panel (the old test
  refused at `isReady` a line earlier), the fractional-seconds timestamp and the
  last-`/pull/N`-wins rule.

Docs
- `GitHubSourceGatingTests`, `ScriptedGitHubCLI` and the comment-only stripper's
  stated exception in CLAUDE.md; `gh` in the hardened-runtime subprocess lists;
  `gh` as a requirement and a network destination in README; the sixth panel in
  core-zoom and FEATURES; the coordinator in app-shell; `ExecutableLocator` in
  app-editor's Rust entry, which still described the moved search as its own.
- Both measured lint ceilings move by the scene's two new lines, with the reason
  recorded beside the numbers.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* fix: address code review findings

- `gh pr checks` prints no JSON for a pull request without CI: it exits
  non-zero with "no checks reported on the … branch" on stderr. That was read
  as a failed read, so expanding a healthy pull request with no checks put an
  orange warning strip across the panel and "Could not read checks" under the
  row — while the row's own badge already said `noChecks`, and the view's
  empty-list branch was unreachable. An empty stdout under a `noChecks` row now
  publishes the empty list the panel has a state for; the same shape under a row
  that does claim checks is still `gh` declining to answer, shown verbatim.

- The post-checkout refresh asked `gh pr list --head` about the branch that was
  just *left*: `didWrite()` only starts the branch widget's re-read, so
  `branchSwitcher.current` is still the old branch on the next line. It now
  names the pull request's own `headRefName`, recorded at the click.

- Re-expanding a row kept the previous read's failure for the whole of the new
  read, so "Could not read checks" outlived its reason and the "Reading checks…"
  state was reachable only on a row's first expansion.

- The two moments the model blanks everything a sentence could be about —
  availability going not-ready, and the project closing — cleared the message
  slot only when a *refresh* had filled it, leaving a checks or create sentence
  standing above a panel drawing no rows.

- `blockedMessage`'s doc comment had been spliced onto `untitledMessage`.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* fix: address code review findings

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* fix: address code review findings

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* fix: address code review findings

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* fix: address code review findings

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* fix: address codex review findings

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* fix: address code review findings

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* fix: address code review findings

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* fix: address code review findings

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* fix: address code review findings

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* fix: address code review findings

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* move completed plan: 20260903-github-pull-requests-part-1-gh-cli-macos.md

---------

Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
hunterdsp added a commit to just-buildit/just-buildit.github.io that referenced this pull request Oct 5, 2026
…o verdict

`q` discarded gh's stderr, so a failed call and an empty answer were the
same empty string. On gh 2.46.0 (Debian 13's package) `gh pr checks
--json` fails with `unknown flag: --json`, which read as "no checks
yet", and the watcher waited out its whole timeout; an unauthenticated
gh read as "cannot read PR (transient?)" until timeout the same way.

Every read is now judged by gh's exit code, with its stderr kept for
`gh_failed` to classify:

- an unknown flag exits 2 at once, naming the installed gh and the
  minimum, 2.50.0 -- the first release with `gh pr checks --json`
  (cli/cli#9079; 2.49.2 rejects the flag, 2.50.0 takes it, both run);
- gh's auth exit code 4, or an HTTP 401, exits 2 at once;
- gh's "no checks reported" error (how gh >= 2.50 answers an empty set)
  is the existing "no checks reported yet -- waiting (not green)";
- any other error is named while the loop waits, and is never a verdict.

The same discarded error was worse on five other reads: with the
pending count, the failing-check names, the head branch, the runs list
or a run's jobs failing, the loop reported "all N checks settled green"
and exited 0 -- for a PR with a check still pending or red. Those reads
are checked too, and stuck_runs returns gh's exit code instead of
reporting nothing stuck.

Exit codes are unchanged for every case that already reached one: 2
still means no verdict (the header now says so), and gh too old or
unauthenticated was already exit 2, after the timeout.

Tests: the fake gh can now fail any read as a recorded gh did (stderr,
exit code), and logs the reads it is asked; the read list is checked
against a green run, so a new read cannot go untested.

Closes #113

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01XzBqCe1mXzakoALxqcyyzx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

external pull request originating outside of the CLI core team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support output json gh pr checks

4 participants