GitHub CLI Changelog

What's new in GitHub CLI 2.48.0

Apr 18, 2024
  • WHAT'S CHANGED:
  • Fix panic when running gh repo rename by @babakks in #8906
  • build(deps): bump google.golang.org/grpc from 1.61.1 to 1.61.2 by @dependabot in #8925
  • Add codeowners entry for the GitHub TUF root included in the attestation command set by @malancas in #8919
  • Fix parsing IPv6 remote URLs by @babakks in #8893
  • Fixed gh pr lock/unlock not working when URL is passed by @t4kamura in #8837
  • Anchor the log filename to the start by @zdrve in #8882
  • Create stronger run log cache abstraction by @williammartin in #8931
  • Remove naked returns from git ParseURL by @williammartin in #8929
  • Fix api cache test by @williammartin in #8932
  • Ensure run log cache creates cache dir if it doesn't exist by @williammartin in #8944
  • Close zip file in run view tests by @williammartin in #8945
  • Include numSelectedRepos in JSON output of gh secret list by @babakks in #8899
  • allow multiple items in nested array by @Ebonsignori in #8762
  • Fix attestation cmd offline unit test failure by @malancas in #8933
  • Add support to attestation command for more predicate types. by @steiza in #8949
  • Tidy go.mod by @matthewhughes934 in #8958
  • Fix cache contention in Go CI jobs by @matthewhughes934 in #8957
  • Add --skip-ssh-key option to gh auth login command by @babakks in #8935
  • Fix go directive in go.mod by @matthewhughes934 in #8956
  • Update install_linux.md by @richterdavid in #8950
  • Merge JSON responses from gh api by @heaths in #8620
  • New Contributors:
  • @babakks made their first contribution in #8906
  • @t4kamura made their first contribution in #8837
  • @zdrve made their first contribution in #8882
  • @Ebonsignori made their first contribution in #8762
  • @matthewhughes934 made their first contribution in #8958
  • @richterdavid made their first contribution in #8950

New in GitHub CLI 2.47.0 (Apr 6, 2024)

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

New in GitHub CLI 2.46.0 (Mar 25, 2024)

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

New in GitHub CLI 2.45.0 (Mar 6, 2024)

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

New in GitHub CLI 2.44.1 (Feb 20, 2024)

  • Fix PR create regression around title and body when there is only one commit by @williammartin in #8707

New in GitHub CLI 2.44.0 (Feb 20, 2024)

  • WHAT'S CHANGED:
  • Feature: added Order flag for release list command by @leevic31 in #8632
  • autofill with body by @guerinoni in #8423
  • Add default values to web manual and man pages by @zsloane in #8395
  • build(deps): bump microsoft/setup-msbuild from 1.3.2 to 2.0.0 by @dependabot in #8648
  • Documentation for built-in aliases by @Rebeccasun31 in #8367
  • Add more detail to fork failure message by @chrisroat in #8614
  • feat: Add cache key option to gh cache list by @toshimaru in #8667
  • NEW CONTRIBUTORS:
  • @zsloane made their first contribution in #8395
  • @Rebeccasun31 made their first contribution in #8367
  • @chrisroat made their first contribution in #8614
  • @toshimaru made their first contribution in #8667

New in GitHub CLI 2.43.1 (Feb 2, 2024)

  • What's Changed:
  • Fix label create regression in v2.43.0 by @williammartin in #8653

New in GitHub CLI 2.43.0 (Jan 31, 2024)

  • SPECIAL NOTE:
  • With this release, the GitHub CLI team sees @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!
  • CHANGED:
  • Remove project JSON formatting objects by @heaths in #8541
  • build(deps): bump actions/upload-artifact from 3 to 4 by @dependabot in #8467
  • build(deps): bump actions/download-artifact from 3 to 4 by @dependabot in #8466
  • Add option --json for gh variable list by @w1mvy in #8516
  • Add --json export flag for release list by @v1v in #8474
  • (search/repos) add usage tips for --archived=false by @shion1305 in #8391
  • fix: Prevent nil dereference in pr view. by @octo in #8566
  • Fix some typos raised by codespell by @fpistm in #8589
  • Add force flag to setup-git command by @rajhawaldar in #8552
  • build(deps): bump actions/cache from 3 to 4 by @dependabot in #8594
  • Feature: output URL for newly created repo by @leevic31 in #8574
  • Update Arch repo to [extra] by @Xeonacid in #8607
  • build(deps): bump microsoft/setup-msbuild from 1.3.1 to 1.3.2 by @dependabot in #8629
  • fix(pr create): clarify refspec to push to correct branch in the event of a conflicting tag by @arunsathiya in #8618
  • Send activity signals during non-interactive codespace SSH command by @dmgardiner25 in #8639
  • Upgrade cli/go-gh to v2.5.0 for home-manager fix by @andyfeller in #8647
  • NEW CONTRIBUTORS:
  • @w1mvy made their first contribution in #8516
  • @v1v made their first contribution in #8474
  • @octo made their first contribution in #8566
  • @fpistm made their first contribution in #8589
  • @leevic31 made their first contribution in #8574
  • @Xeonacid made their first contribution in #8607

New in GitHub CLI 2.42.1 (Jan 17, 2024)

  • WHAT'S CHANGED:
  • chore: Unify calling gh in examples by @ihmpavel in #8560
  • Move create codespace permission opt out behind else to fix token permissions by @dmgardiner25 in #8569
  • Align devcontainer Go version with go.mod by @greggroth in #8570
  • Add Webi as an option for installation by @wesleycoder in #8555
  • NEW CONTRIBUTORS:
  • @ihmpavel made their first contribution in #8560
  • @wesleycoder made their first contribution in #8555

New in GitHub CLI 2.42.0 (Jan 13, 2024)

  • Support template, jq flags with standard format flag by @heaths in #7832
  • Prevent downloading releases with assets that match windows reserved filenames by @samcoe in #8517
  • Backquote settings in gh-config docs by @muzimuzhi in #8479

New in GitHub CLI 2.41.0 (Jan 8, 2024)

  • As you can see from the notes below, this release contains some quality of life improvements as well as a move to Azure Code Signing for Windows .exe and .msi release artifacts. This change was extensively tested prior to the holidays before our previous signing certificate expired, however the CLI team is being attentive to issues or discussions raised by our Windows community if any problems or concerns arise.
  • WHAT'S CHANGED:
  • Enhance HSM deployment prototype to use the same signing process for .exe and .msi by @andyfeller in #8457
  • Fix issue sourcing signtool for Windows signing by @andyfeller in #8464
  • build(deps): bump github/codeql-action from 2 to 3 by @dependabot in #8463
  • Verify the downloaded zip for gh run view --log by @benebsiny in #8459
  • Update deployment workflow for final HSM solution by @andyfeller in #8465
  • build(deps): bump golang.org/x/crypto from 0.14.0 to 0.17.0 by @dependabot in #8473
  • Add more help message to browse command by @samueldurantes in #8453
  • Remove redundant MSI signing environment variables typo by @andyfeller in #8542
  • NEW CONTRIBUTORS:
  • @samueldurantes made their first contribution in #8453

New in GitHub CLI 2.40.1 (Dec 15, 2023)

  • WHAT'S CHANGED:
  • Removed repository requirement language from by @mateusmarquezini in #8432
  • Bumped actions/setup-go from 4 to 5 by @dependabot in #8428
  • Fixed run exported jobs error for completedAt by @andyfeller in #8447
  • Updated multi-account migration error msg by @samcoe in #8448
  • Removed redundant error on migration failure by @williammartin in #8449
  • OTHER THINGS:
  • Create HSM testing workflow by @andyfeller in #8421
  • Fix release script to invoke HSM goreleaser config by @andyfeller in #8450
  • Fix flaky tests coupled to relative dates by @williammartin in #8454

New in GitHub CLI 2.40.0 (Dec 9, 2023)

  • MULTIPLE ACCOUNT SUPPORT:
  • With the v2.40.0 release, multi-account support is introduced to gh for GitHub.com and GitHub Enterprise and it is only the beginning!
  • Thanks to @gabe565 for his efforts to support multi-account capabilities with gh-profile extension for this long requested feature!
  • This release focuses on several specific use cases:
  • adding multiple accounts for GitHub.com and GitHub Enterprise with gh auth login
  • switching manually between accounts for gh and git use with gh auth switch
  • seeing multiple accounts with gh auth status
  • logging out of accounts with gh auth logout
  • Future enhancements such as automatic account switching based on context and more git automatic git configuration will be planned based on community feedback.
  • For much more detail about the specific of multiple account support in this release as well as a discussion of the sharp edges, please see this doc.
  • Please provide feedback in our release discussion.
  • WHAT'S CHANGED:
  • Better codespaces error handling when the display name flag exceeds 48 characters by @mateusmarquezini in #8361
  • Better error handling in auth status when there are connection issues by @tal66 in #8337
  • Filtering run list results by commit sha by @nelsonchen304 in #8350
  • More informative pr merge output when running interactively by @ffalor in #8381
  • Unification of doc mark-ups by @muzimuzhi in #8342
  • Addition of progress indicator when installing an extension by @steiza in #8411
  • Support for multiple accounts on a single host by @williammartin in #8425
  • OTHER TECHNICAL CHANGES:
  • Enhance discussion triage workflow by @andyfeller in #8394
  • Simplify triage workflow given GitHub Actions limitations on OSS pull requests by @andyfeller in #8412
  • andyfeller/triage the final enhancements by @andyfeller in #8420
  • Simplify git AddRemote to remove unused arg by @samcoe in #8392
  • NEW CONTRIBUTORS:
  • @mateusmarquezini made their first contribution in #8361
  • @tal66 made their first contribution in #8337
  • @nelsonchen304 made their first contribution in #8350
  • @steiza made their first contribution in #8411

New in GitHub CLI 2.39.2 (Dec 2, 2023)

  • WHAT'S CHANGED:
  • build(deps): bump github.com/creack/pty from 1.1.20 to 1.1.21 by @dependabot in #8345
  • gh repo sync should be able to sync a local branch with an upstream remote by @benebsiny in #8229
  • Update to latest go-gh by @samcoe in #8359
  • Fix project status unmarshaling by @williammartin in #8384

New in GitHub CLI 2.39.1 (Nov 15, 2023)

  • WHAT'S CHANGED
  • Fix executable location by @xqm32 in #8238
  • Query project item status field properly by @samcoe in #8332
  • NEW CONTRIBUTORS:
  • @xqm32 made their first contribution in #8238

New in GitHub CLI 2.39.0 (Nov 15, 2023)

  • WHAT'S CHANGED:
  • release create: Fix --latest flag behavior when creating release wth assets by @arunsathiya in #8207
  • issue/pr: Include project item status when exporting issues and pull requests by @mattruggio in #8202
  • codespace: Resolve race condition in codespaces connection by @dmgardiner25 in #8275
  • release download: Improve usage documentation by @muzimuzhi in #8294
  • run view: Simplify annotation fetch error handling by @williammartin in #8301
  • api: Set default Accept header when one is not specified by @samcoe in #8303
  • build(deps): bump github.com/henvic/httpretty from 0.1.2 to 0.1.3 by @dependabot in #8286
  • NEW CONTRIBUTORS:
  • @mattruggio made their first contribution in #8202
  • @muzimuzhi made their first contribution in #8294

New in GitHub CLI 2.38.0 (Nov 2, 2023)

  • HIGHLIGHTS:
  • extension install no longer errors unhelpfully if the extension is already installed by @Delta456 in #8211
  • All tables now have headers by @heaths in #8157
  • project commands have a clearer error message when no owner can be resolved by @ffalor in #8235
  • workflow run now presents a select for choice workflow input types by @adarshjhaa100 in #8180
  • codespace create no longer polls for additional codespace permissions unnecessarily by @dmgardiner25 in #8267
  • go install now works with the removal of our crypto fork by @samcoe in #8204
  • EVERYTHING ELSE:
  • Additional testing for config by @williammartin in #8213
  • Bumped cpuguy83/go-md2man from 2.0.1 to 2.0.3 by @mikelolasagasti in #8209
  • Bumped mattn/go-isatty from 0.0.19 to 0.0.20 by @dependabot in #8205
  • Bumped google.golang.org/grpc from 1.53.0 to 1.56.3 by @dependabot in #8251
  • Bumped creack/pty from 1.1.18 to 1.1.20 by @dependabot in #8265
  • Provide default config to bumped go-gh by @samcoe in #8244
  • NEW CONTRIBUTORS:
  • @mikelolasagasti made their first contribution in #8209
  • @Delta456 made their first contribution in #8211
  • @adarshjhaa100 made their first contribution in #8180

New in GitHub CLI 2.37.0 (Oct 18, 2023)

  • BRAEKING CHANGES:
  • project: Remove template field from --format=json output by @samcoe in #8160
  • In v2.34.0 we introduced the template field when outputing projects to JSON, unfortunately
  • we forgot to take into account our GHES users. This field does not exist on GHES 3.8 and older.
  • Including this field in our queries and output broke nearly all the project commands for users
  • targeting these older versions of GHES. As we try our hardest to keep gh compatible with all
  • non-deprecated GHES versions this was a pretty big mistake. In order to fix it we are reverting
  • the querying and exporting of the template field for project commands. We apologize for the
  • inconvenience this may cause, and plan to bring back this field once GHES 3.8 gets deprecated.
  • WHAT'S CHANGED:
  • repo create: Allow --disable-issues and --template flags to be used together by @utouto97 in #7918
  • repo create: Allow --homepage and --template flag to be used together by @arunsathiya in #8188
  • repo create: Allow creating repositories from templates in interactive mode by @JunNishimura in #7769
  • repo fork: Set default repo when forking repo by @kbailey4444 in #7768
  • codespace: Migrate all Codespaces operations from Live Share to Dev Tunnels by @dmgardiner25 in #8149
  • codespace create: Poll permission acceptance endpoint on codespace creation by @dmgardiner25 in #8179
  • pr create: Remove duplicates targets for push survey by @benebsiny in #8184
  • pr create: Fix typo in documentation by @darthwalsh in #8115
  • browse: Do not use relative paths when --repo flag is used by @benebsiny in #8141
  • OTHER CHANGES:
  • Add homebrew-bump-debug workflow by @williammartin in #8114
  • Update deployment.yml by @andyfeller in #8116
  • dependencies: Update to fix security vulnerability by @samcoe in #8176
  • dependencies: bump github.com/gabriel-vasile/mimetype from 1.4.2 to 1.4.3 by @dependabot in #8185
  • NEW CONTRIBUTORS:
  • @darthwalsh made their first contribution in #8115
  • @benebsiny made their first contribution in #8184

New in GitHub CLI 2.36.0 (Oct 5, 2023)

  • WHAT'S CHANGED:
  • codespace: Hint adding codespace scope when not logged in by @rajhawaldar in #7961
  • codespace ports: Forward codespace ports over Dev Tunnels by @dmgardiner25 in #8023
  • cache delete: Percent-encode keys by @benoit-pierre in #8030
  • gpg-key delete, run watch: Return HTTP errors properly by @heaths in #8037
  • pr checks: Show cancelled checks by @rajhawaldar in #7960
  • cache list: Add JSON exporting support by @siketyan in #7954
  • auth: Fix startup panic when logged out by @alrs in #8105
  • secret list, deploy-key list: Support standard output format flags by @rajhawaldar in #8081
  • pr create: Update the docs on flag --fill by @peterramaldes in #8080
  • run view: Use attempt input when fetching jobs by @arunsathiya in #7831
  • project item-edit: New clear flag to remove item field value by @arunsathiya in #8024
  • build(deps): Bump mislav/bump-homebrew-formula-action from 2 to 3 by @dependabot in #8033
  • Update triage documentation with link to unlabeled open issues by @andyfeller in #8082
  • NEW CONTRIBUTORS:
  • @benoit-pierre made their first contribution in #8030
  • @siketyan made their first contribution in #7954
  • @alrs made their first contribution in #8105
  • @peterramaldes made their first contribution in #8080
  • @arunsathiya made their first contribution in #7831

New in GitHub CLI 2.35.0 (Sep 19, 2023)

  • WHAT'S NEW:
  • gh alias delete now supports the --all flag by @JunNishimura in #7900
  • gh release delete now supports the --cleanup-tag flag by @kemingy in #7884
  • gh release create now supports the --notes-from-tag flag by @kbailey4444 in #7861
  • WHAT'S CHANGED:
  • Clarified gh repo list --fork and --source behavior for orgs @ncalteen in #7964
  • gh cs create now shows the full permissions URL by @joshmgross in #7983
  • Documented when gh auth login falls back to using insecure storage by @kbailey4444 in #7781
  • Bumped goreleaser/goreleaser-action from 4 to 5 by @dependabot in #7981
  • NEW CONTRIBUTORS:
  • @kemingy made their first contribution in #7884
  • @ncalteen made their first contribution in #7964
  • @kbailey4444 made their first contribution in #7861
  • Full Changelog: v2.34.0...v2.35.0

New in GitHub CLI 2.34.0 (Sep 8, 2023)

  • NEW:
  • api: Add --verbose flag by @JunNishimura in #7826
  • config clear-cache: New command to clear the cli cache by @ffalor in #7693
  • workflow list: Add --json, --jq and --template flags by @rajhawaldar in #7902
  • project mark-template: New command to control project template options by @mntlty in #7916 #7923
  • CHANGED:
  • docs: Fix Nix/NixOS install docs by @junaga in #7891
  • repo rename: Properly rename remote for GHES hosts by @samcoe in #7890
  • pr checks: Return different exit code for PENDING vs FAILED by @rajhawaldar in #7866
  • repo create: Execute clone when readme option is enabled by @shion1305 in #7837
  • repo create: Allow --disable-wiki flag with --template flag by @utouto97 in #7886
  • auth status: Reword token invalid message by @kousikmitra in #7906
  • status: Show status even if a comment 404s by @rwe in #7873
  • run view: Fetch all run jobs by @harveysanders in #7879
  • Use go-gh prompter package by @samcoe in #7896
  • Add formula-path to homebrew-bump step by @williammartin in #7930
  • build(deps): bump actions/checkout from 3 to 4 by @dependabot in #7937
  • NEW CONTRIBUTORS:
  • @junaga made their first contribution in #7891
  • @utouto97 made their first contribution in #7886
  • @rwe made their first contribution in #7873

New in GitHub CLI 2.33.0 (Aug 23, 2023)

  • Meowdy terminal aficionados!
  • WHAT'S CHANGED:
  • Delete local branch more often when merging PR by @armandgrillet in #7709
  • Do not allow issue and pr templates to be symlinks by @samcoe in #7756
  • release create: Trim spaces on tag name by @harveysanders in #7759
  • Use filepath.Base to sanitize path for archive downloads by @samcoe in #7805
  • Codespaces: Use the host name from the logged in server for commands by @jkeech in #7795
  • Update CONTRIBUTING.md by @andyfeller in #7812
  • Allow --org parameter in lieu of a repo context for rulesets, add current_user_can_bypass to rs view by @vaindil in #7747
  • add missing ls aliases to list subcommands by @cawfeecake in #7818
  • port repo edit prompts by @vilmibm in #7816
  • add clobber flag to alias set by @JunNishimura in #7787
  • Remove GHE handling for workflow by @jamietanna in #7841
  • Upgrade to Go 1.21 by @samcoe in #7843
  • switch to prompter in workflow commands by @vilmibm in #7847
  • update more prompts by @vilmibm in #7850
  • switch to prompter in pr shared code by @vilmibm in #7859
  • THE FINAL PROMPTDOWN by @vilmibm in #7860
  • codespace: Handle HTTP request retry interruption by @azrsh in #7846
  • NEW CONTRIBUTORS:
  • @armandgrillet made their first contribution in #7709
  • @harveysanders made their first contribution in #7759
  • @andyfeller made their first contribution in #7812
  • @JunNishimura made their first contribution in #7787
  • @jamietanna made their first contribution in #7841
  • @azrsh made their first contribution in #7846

New in GitHub CLI 2.32.1 (Jul 25, 2023)

  • What's Changed:
  • pr checks: Fix regression making it unusable in GHES versions older than 3.9 by @samcoe in #7725
  • pr edit: Do not make reviewer update request if there are no reviewer changes by @samcoe in #7730
  • repo view: Sanitize file contents before displaying them by @samcoe in #7694
  • release download: Use filepath.Clean to sanitize path for archive downloads by @samcoe in #7720
  • auth: Do not add auth token to redirect requests which do not have the same host as the initial request by @samcoe in #7692
  • Use asciisanitization package from go-gh by @samcoe in #7745

New in GitHub CLI 2.32.0 (Jul 13, 2023)

  • gh ruleset:
  • Repository Rulesets are in beta on git hub dot com and they are now also in beta on git hub sea ell eye. You can list, view, and check branches against rulesets set at the repository or organization level. Major shoutouts to @vaindil for this big contribution. My favorite command in here is gh rs check which will tell you what rules would apply to a hypothetical branch name. To learn more, run gh help ruleset.
  • gh cache:
  • gh cache is a new top level command in our suite of support for Actions. It lets you list and delete caches saved in Actions. It's neat and I like it. Thanks, @joshkraft ! To learn more, run gh help cache.
  • Other new stuff:
  • Add option to remove file from gist by @kousikmitra in #7560
  • Add remove/reset to auth refresh by @n1lesh in #7597
  • Small tweaks to auth refresh remove-scopes and reset-scopes flags by @samcoe in #7631
  • make gh pr create behavior like gh repo fork by @leavesster in #7330
  • chore: add title to iteration and milestone fields by @kamaz in #7621
  • AutoFetch new branch created with gh issue develop by @shion1305 in #7589
  • feat: add statuscheck description to pr checks output by @jgrumboe in #7451
  • Always show created gist privacy status. by @seanbright in #7645
  • [Codespaces] Support random --server-port=0 and printing connection details by @josebalius in #7655
  • gh release edit: support --verify-tag like gh release create by @rajhawaldar in #7646
  • Feature: Add fill-first flag to pr create command by @kousikmitra in #7398
  • Return error on no-browser option if repo don't exists by @kousikmitra in #7314
  • Bugfixes:
  • Early exit repo sync if merge-upstream requires workflow scope by @williammartin in #7612
  • Don't deduplicate checks that stem from different events by @samcoe in #7618
  • gh run cancel needs input validation by @rajhawaldar in #7647
  • Ensure gist edit request body matches desired schema by @williammartin in #7635
  • fix(api): do not interpret "branch" placeholder when GH_REPO is set by @alex-petrov-vt in #7626
  • fix pr create crash on interactive milestone selection by @vilmibm in #7666
  • Fix issue develop command by @samcoe in #7656
  • Docs & Dev:
  • docs: example of setting multiple vars using stdin by @iloveitaly in #7683
  • Remove old code paths and improve code comments for repo sync by @samcoe in #7610
  • Update httpretty to released version by @josebalius in #7654
  • build(deps): bump github.com/henvic/httpretty from 0.1.1 to 0.1.2 by @dependabot in #7657
  • build(deps): bump google.golang.org/grpc from 1.49.0 to 1.53.0 by @dependabot in #7665
  • Use SmartBaseRepoFunc for api command by @whi-tw in #7594
  • Clean up style nits and simplify some logic by @samcoe in #7687
  • add gh cache to Actions explainer by @vilmibm in #7689
  • New Contributors:
  • @leavesster made their first contribution in #7330
  • @kamaz made their first contribution in #7621
  • @shion1305 made their first contribution in #7589
  • @jgrumboe made their first contribution in #7451
  • @whi-tw made their first contribution in #7594
  • @seanbright made their first contribution in #7645
  • @iloveitaly made their first contribution in #7683

New in GitHub CLI 2.31.0 (Jun 21, 2023)

  • WHAT'S NEW:
  • New suite of project commands for interacting with and manipulating projects. Huge shoutout for the time and effort put into this work by @mntlty in #7375 #7578
  • New search code command by @joshkraft in #7376
  • New cs view command by @dmgardiner25 in #7496 #7539
  • WHAT'S CHANGED:
  • api: output a single JSON array in REST pagination mode by @mislav in #7190
  • api: support array params in GET queries by @mislav in #7513
  • api: force method to uppercase by @ffalor in #7514
  • alias: Allow aliases to recognize extended commands by @srz-zumix in #7523
  • alias import: Fix --clobber flag by @samcoe in #7569
  • run rerun: Improve docs around --job flag by @williammartin in #7527
  • run view: Support viewing logs for jobs with composite actions by @williammartin in #7526
  • gist edit: Add selector option to gist edit command by @kousikmitra in #7537
  • repo clone: Set upstream remote to track all branches after initial fetch by @samcoe in #7542
  • extension: Speed up listing extensions by lazy-loading extension information when needed by @mislav in #7493
  • auth: Add timeouts to keyring operations by @samcoe in #7580
  • auth status: write to stdout on success by @rajhawaldar in #7540
  • completion: Fix bash completions for extensions and aliases by @mislav in #7525
  • issue/pr view: alphabetically sort labels for gh pr/issue view by @ffalor in #7587
  • Fix error handling for extension and shell alias commands by @samcoe in #7567
  • Fix pkg imported more than once by @testwill in #7591
  • Refactor a nested if statement by @yanskun in #7596
  • Fix a typo by @lerocknrolla in #7557
  • Fix flaky test by @samcoe in #7515
  • Credential rotations, renames and decouplings from Mislav by @williammartin in #7544
  • build(deps): bump github.com/cli/go-gh/v2 from 2.0.0 to 2.0.1 by @dependabot in #7546
  • build(deps): bump github.com/AlecAivazis/survey/v2 from 2.3.6 to 2.3.7 by @dependabot in #7576
  • NEW CONTRIBUTORS:
  • @srz-zumix made their first contribution in #7523
  • @lerocknrolla made their first contribution in #7557
  • @testwill made their first contribution in #7591
  • @rajhawaldar made their first contribution in #7540

New in GitHub CLI 2.30.0 (May 31, 2023)

  • WHAT'S NEW:
  • Support for nested aliases by @samcoe in #7457
  • repo set-default --view can now be called without a repo argument by @Jackenmen in #7441
  • WHAT'S CHANGED:
  • Color control and sensible defaults in modern terminals by @rick-kilgore in #7354
  • Fix windows crash by bumping wincred by @mislav in #7459
  • Update browser package to avoid Windows crash by @mislav in #7474
  • release upload sanitizes asset filenames prior to uploading by @jtpetty in #7477
  • pr status uses lighter API in supported environments by @williammartin in #7462
  • All commands start up time improvements by @mislav in #7487
  • More commands use latin matching filter by @benjlevesque in #7492
  • pr create respects GH_REPO env variable by @ffalor in #7445
  • Do not fall back to legacy template if template selector returns nil by @samcoe in #7444
  • ALL THE DETAILS:
  • Fix release guard for deployment workflow by @mislav in #7424
  • Introduce helpTopics type and reduce duplication across commands by @williammartin in #7414
  • Allow gh repo set-default --view without repo argument by @Jackenmen in #7441
  • make prompt default values visible and also the color controllable in… by @rick-kilgore in #7354
  • Mention setting GH_ENTERPRISE_TOKEN when GH_HOST is set by @goldstar611 in #7449
  • respect GH_REPO env variable in pr create by @ffalor in #7445
  • Do not fall back to legacy template if template selector returns nil by @samcoe in #7444
  • Remove old, unused detector fields by @williammartin in #7458
  • Fix windows crash by bumping wincred by @mislav in #7459
  • Get some additional confidence around PullRequest ChecksStatus by @williammartin in #7454
  • build(deps): bump github.com/stretchr/testify from 1.8.1 to 1.8.2 by @dependabot in #7460
  • build(deps): bump github.com/stretchr/testify from 1.8.2 to 1.8.3 by @dependabot in #7469
  • Update triage.md with severity descriptions by @williammartin in #7473
  • Clarify docs regarding what is listed when running gh workflow list by @torgeir in #7475
  • build(deps): bump github.com/mattn/go-isatty from 0.0.18 to 0.0.19 by @dependabot in #7476
  • Update browser package to avoid Windows crash by @mislav in #7474
  • Updated to sanitize asset filename prior to uploading. Fixes #7024 by @jtpetty in #7477
  • replace prompts in gh run commands by @vilmibm in #7302
  • Allow nested aliases by @samcoe in #7457
  • Use new GQL fields that support CheckRun and StatusContext counts by state by @williammartin in #7462
  • Speed up gh start up time by @mislav in #7487
  • Do not generate docs for aliases by @samcoe in #7497
  • fix: apply latin matching filter to more fields by @benjlevesque in #7492
  • build(deps): bump github.com/stretchr/testify from 1.8.3 to 1.8.4 by @dependabot in #7510
  • NEW CONTRIBUTORS:
  • @williammartin made their first contribution in #7414
  • @rick-kilgore made their first contribution in #7354
  • @goldstar611 made their first contribution in #7449
  • @torgeir made their first contribution in #7475

New in GitHub CLI 2.29.0 (May 10, 2023)

  • WHAT'S NEW:
  • Add alias import command by @kevhlee in #7118
  • codespace: Add capability to filter by --repo-owner by @kousikmitra in #7347
  • pr status: display auto-merge information by @mjpieters in #7386
  • pr view: display auto-merge information by @mjpieters in #7385
  • pr: add autoMergeRequest field to JSON output by @mjpieters in #7384
  • WHAT'S CHANGED:
  • repo create: fix empty default description for local repository by @vwkd in #7383
  • release download: show progress bar by @joshkraft in #7380
  • codespace delete: print confirmation message by @kousikmitra in #7353
  • Fix shellcheck errors in generate.sh by @cmbrose in #7392
  • New deployment workflow for releases by @mislav in #7324
  • make install: fix for macOS by @Xerkus in #7369
  • NEW CONTRIBUTORS:
  • @vwkd made their first contribution in #7383

New in GitHub CLI 2.28.0 (Apr 26, 2023)

  • WHAT'S NEW:
  • macOS binaries are now signed and notarized
  • warning macOS archives attached to our releases are no longer .tar.gz, but .zip instead. This is because .tar.gz archives cannot be notarized.
  • The checksums.txt file attached to every release now includes the checksum of the Windows MSI installer too.
  • macOS and Windows binaries are now compiled from their respective platforms and have cgo enabled. This might help resolve respecting system proxy settings and avoid related networking issues.
  • issue edit: edit multiple issues at the same time by @heaths in #7259
  • Add gh org list by @joshkraft in #7257
  • ssh-key: add ability to manage signing keys by @kousikmitra in #7270
  • search: enable owner flag to take multiple values by @kousikmitra in #7305
  • codespace: add --web flag for list & create commands by @doaortu in #7288
  • Our Debian & RPM packages now ship with shell completion scripts by @Xerkus in #7293
  • run list: add --event and --created filters by @cawfeecake in #7363 #7352
  • repo: add visibility JSON field by @yeikel in #7337
  • WHAT'S CHANGED:
  • Fix typo in cs stop command: Stoppping -> Stopping by @FalseDev in #7318
  • Update go-gh to v2 by @samcoe in #7299
  • auth login: normalize host name by @tuananhlai in #6999
  • build(deps): bump github.com/cenkalti/backoff/v4 from 4.2.0 to 4.2.1 by @dependabot in #7323
  • Clarify how SSH keys are selected for gh codespace ssh by @jkeech in #7325
  • Initialize deployment.yml workflow file by @mislav in #7328
  • Fix gh cs ports requiring sudo for privileged port numbers by @cmbrose in #7326
  • Correct some typos by @goggle in #7342
  • Diacritics substitution in prompt by @benjlevesque in #7205
  • gh: move CODEOWNERS inside the .github/ dir by @SauravMaheshkar in #7366
  • Pretty-print gh api output when using --jq by @mjpieters in #7236
  • New Contributors:
  • @joshkraft made their first contribution in #7257
  • @kousikmitra made their first contribution in #7270
  • @doaortu made their first contribution in #7288
  • @FalseDev made their first contribution in #7318
  • @tuananhlai made their first contribution in #6999
  • @goggle made their first contribution in #7342
  • @Xerkus made their first contribution in #7293
  • @cawfeecake made their first contribution in #7363
  • @yeikel made their first contribution in #7337
  • @SauravMaheshkar made their first contribution in #7366
  • @mjpieters made their first contribution in #7236

New in GitHub CLI 2.28.0 Pre 0 (Apr 23, 2023)

  • WHAT'S CHANGED:
  • feat: add gh org list by @joshkraft in #7257
  • Add option to add and list ssh singing key for logged in user by @kousikmitra in #7270
  • Enable owner flag to take multiple values for searching by @kousikmitra in #7305
  • feat: add web flag for codespace list & create subcommand by @doaortu in #7288
  • Fix typo in cs stop command: Stoppping -> Stopping by @FalseDev in #7318
  • Update go-gh to v2 by @samcoe in #7299
  • fix: normalize hostname for auth login by @tuananhlai in #6999
  • build(deps): bump github.com/cenkalti/backoff/v4 from 4.2.0 to 4.2.1 by @dependabot in #7323
  • Clarify how SSH keys are selected for gh codespace ssh by @jkeech in #7325
  • Initialize deployment.yml workflow file by @mislav in #7328
  • Fix gh cs ports requiring sudo for privileged port numbers by @cmbrose in #7326
  • NEW CONTRIBUTORS:
  • @joshkraft made their first contribution in #7257
  • @kousikmitra made their first contribution in #7270
  • @doaortu made their first contribution in #7288
  • @FalseDev made their first contribution in #7318
  • @tuananhlai made their first contribution in #6999

New in GitHub CLI 2.27.0 (Apr 8, 2023)

  • This is primarily an out of band bugfix release for codespaces users, but does include a new command gh run delete.
  • NEW FEATURES:
  • add command gh run delete by @phillippbertram in #7254
  • add R as shorthand of --repo for search subcommands by @kkocha in #7274
  • BUG FIXES:
  • Fix codespaces invoker immediately closing by @cmbrose in #7284
  • NEW CONTRIBUTORS:
  • @phillippbertram made their first contribution in #7254

New in GitHub CLI 2.26.1 (Apr 6, 2023)

  • extend secure storage default to auth refresh by @vilmibm in #7278

New in GitHub CLI 2.26.0 (Apr 6, 2023)

  • gh 2.26.0:
  • Important: credentials now stored securely by default
  • When running gh auth login, your credentials will now be stored in your operating system's credential storage instead of directly on disk. In other words, --secure-storage is now default behavior. We've added a new flag, --insecure-storage, to opt into the old insecure behavior in case you need to debug an issue with credential storage.
  • As before, to take advantage of credential storage, please re-run gh auth login.
  • For more context, you can read the v2.24.0 release notes
  • Ref: secure storage by default by @vilmibm in #7276
  • OTHER NEW CHANGES:
  • Allow filtering workflow runs by status by @alex-petrov-vt in #7249
  • Gist rename by @wingkwong in #7212
  • Add a --fail-fast option to pr checks --watch by @benjlevesque in #7203
  • Add --template for issue and PR by @guerinoni in #7185
  • gh run view --attempt by @wingkwong in #7232
  • utocomplete branch flags by @bchadwic in #6031
  • Bugfixes
  • Make number arg, commit arg, and flags mutually exclusive by @kkocha in #7268
  • Check SSH key existence before uploading by @vaindil in #7246
  • Throw error for non-existing org / repo with non-zero status in repo list by @wingkwong in #7240
  • DOCS AND DEVELOPMENT CHANGES:
  • Bump github.com/mattn/go-isatty from 0.0.17 to 0.0.18 by @dependabot in #7217
  • Properly handle closing files that have been writen to by @samcoe in #7199
  • Added apt update command to linux install docs. by @srgk26 in #7186
  • Revise GH_CONFIG_DIR content in help_topic.go by @wingkwong in #7230
  • Refine the Makefile file so that it can do the basic work by @cubxxw in #7228
  • Clearer message with actionable hint for repo sync by @macmacbr in #7110
  • Fix typo in README.md by @SonicGDX in #7244
  • Retry fetching repo from template by @heaths in #7080
  • Repo list: add test for invalid owner error by @mislav in #7241
  • Improve Amazon Linux install instructions by @mislav in #7252
  • Add commit SHA arg to gh browse help by @kkocha in #7267
  • Additional help doc and example for auth setup-git by @kkocha in #7243
  • NEW CONTRIBUTORS:
  • @wingkwong made their first contribution in #7212
  • @srgk26 made their first contribution in #7186
  • @cubxxw made their first contribution in #7228
  • @macmacbr made their first contribution in #7110
  • @SonicGDX made their first contribution in #7244
  • @vaindil made their first contribution in #7246
  • @kkocha made their first contribution in #7267

New in GitHub CLI 2.26.0 Pre 0 (Apr 6, 2023)

  • WHAT'S CHANGED:
  • Bump github.com/mattn/go-isatty from 0.0.17 to 0.0.18 by @dependabot in #7217
  • Properly handle closing files that have been writen to by @samcoe in #7199
  • feat: gist rename by @wingkwong in #7212
  • Added apt update command to linux install docs. by @srgk26 in #7186
  • docs: revise GH_CONFIG_DIR content in help_topic.go by @wingkwong in #7230
  • add a --fail-fast option to pr checks --watch by @benjlevesque in #7203
  • Add --template for issue and PR by @guerinoni in #7185
  • Feature(Fixes #7229) : Refine the Makefile file so that it can do the basic work by @cubxxw in #7228
  • feat: gh run view --attempt by @wingkwong in #7232
  • fix: throw error for non-existing org / repo with non-zero status in repo list by @wingkwong in #7240
  • issue-6910 clearer message with actionable hint for repo sync by @macmacbr in #7110
  • Autocomplete branch flags by @bchadwic in #6031
  • Fix typo in README.md by @SonicGDX in #7244
  • Retry fetching repo from template by @heaths in #7080
  • repo list: add test for invalid owner error by @mislav in #7241
  • feat: allow filtering workflow runs by status by @alex-petrov-vt in #7249
  • Improve Amazon Linux install instructions by @mislav in #7252
  • Check SSH key existence before uploading by @vaindil in #7246
  • docs: add commit SHA arg to gh browse help by @kkocha in #7267
  • Additional help doc and example for auth setup-git by @kkocha in #7243
  • fix: make number arg, commit arg, and flags mutually exclusive by @kkocha in #7268
  • secure storage by default by @vilmibm in #7276
  • NEW CONTRIBUTORS:
  • @wingkwong made their first contribution in #7212
  • @srgk26 made their first contribution in #7186
  • @cubxxw made their first contribution in #7228
  • @macmacbr made their first contribution in #7110
  • @SonicGDX made their first contribution in #7244
  • @vaindil made their first contribution in #7246
  • @kkocha made their first contribution in #7267
  • Full Changelog: v2.25.1...v2.26.0-pre0

New in GitHub CLI 2.25.1 (Mar 22, 2023)

  • WHAT'S CHANGED:
  • variable: fix listing and deleting per-environment variables by @rsteube in #7207

New in GitHub CLI 2.25.0 (Mar 22, 2023)

  • WHAT'S NEW:
  • New suit of commands for working with Repository and Organization variables
  • variable set by @atirikt in #6928
  • variable list by @atirikt in #6995
  • variable delete by @atirikt in #6929
  • ext install: Introduce new --force flag by @heaths in #7173
  • WHAT'S CHANGED:
  • browse: Improve documentation and consistency of the --commit flag by @alex-petrov-vt in #7105
  • repo sync: Ensure git fetch is always authenticated by @samcoe in #7139
  • repo delete: Don't delete repos that have transfered ownership by @samcoe in #7106
  • auth: Skip searching keyring when checking for environment tokens by @benjlevesque in #7169
  • auth refresh: Improve documentation of --scopes flag behavior by @alex-petrov-vt in #7132
  • pr status: Hide "current branch" when using --repo flag by @jtpetty in #7180
  • repo archive: Change to use Prompter package by @Ruminateer in #7083
  • search: Fix multiword keyword quoting by @samcoe in #7170
  • Replace deprecated command with environment file by @jongwooo in #7195
  • New prompt testing utility by @vilmibm in #7116
  • Use transform.Transformer interface for ascii sanitization by @samcoe in #7117
  • Only replace control sequences by @samcoe in #7168
  • Tech debt cleanup for variable and secret commands by @samcoe in #7151
  • Bump actions/setup-go from 3 to 4 by @dependabot in #7177
  • NEW CONTRIBUTORS:
  • @atirikt made their first contribution in #6928
  • @jtpetty made their first contribution in #7180
  • @jongwooo made their first contribution in #7195

New in GitHub CLI 2.24.3 (Mar 9, 2023)

  • config get: support getting oauth_token from keyring by @mislav in #7124

New in GitHub CLI 2.24.2 (Mar 9, 2023)

  • codespace ssh: fix "connection reset by peer" by @mislav in #7120

New in GitHub CLI 2.24.1 (Mar 9, 2023)

  • WHAT'S CHANGED:
  • Fix progress indicator bug with generic RunWithProgress function by @jungaretti in #6848
  • auth login: Fix retrieving current login name when pasting auth token @samcoe in #7114

New in GitHub CLI 2.24.0 (Mar 9, 2023)

  • WHAT'S NEW:
  • Option to store gh access token in system encrypted storage
  • The gh auth login and gh auth refresh commands gained the new --secure-storage flag. In this mode, the access token that GitHub CLI uses for GitHub API requests will now be stored in the system keyring instead of in the plain text config file.
  • To migrate as an existing GitHub CLI user, re-authenticate like so:
  • gh auth refresh --secure-storage -h github.com
  • Depending on your system, you could get an interactive prompt to allow the CLI tool to access the system keyring. The systems that are supported are:
  • Keychain on macOS
  • GNOME Keyring on Linux (Secret Service dbus interface)
  • Wincred on Windows
  • If none of the system storage providers are found, or the store operation fails, the token will be written to the config file as before.
  • Using this feature could result in Go extensions breaking if they were not updated to the latest go-gh version. If extensions you are using no longer work after migrating your token to secure token storage, please report the issue to that extension's repository.
  • Storing tokens in system keyring most likely won't work in “headless” environments.
  • OTHER ADDITIONS:
  • Add option to store credentials in OS keyring by @samcoe @mislav in #7033 #7043 #7098
  • browse: add --releases option by @owenvoke in #6996
  • Add gpg-key add --title to name GPG keys by @rpadaki in #6993
  • Add command gh repo unarchive by @Ruminateer in #7003
  • Add macOS arm64 prebuilt binaries by @beret in #4435
  • Introduce GH_PATH environment variable by @samcoe in #7025
  • What's Changed
  • repo fork: retry git clone on git clone failure by @jsoref in #6962
  • repo fork: add newline after printing error about existing fork by @digitalfu in #7030
  • codespace: add --repo filter to more commands by @cmbrose in #6669
  • codespace code: always open new VS Code window by @cmbrose in #7092
  • pr diff: sanitize control characters for terminal output by @mislav in #7108
  • browse: use --commit flag to browse commit SHAs containing only digits by @yanskun in #7038
  • pr status: fix when on a detached HEAD by @alex-petrov-vt in #7082
  • auth token: respect GH_HOST if a hostname is not provided by @samcoe in #7094
  • Address Projects bugs by @samcoe in #7007
  • Properly handle C1 control sequences by @samcoe in #7079
  • Cleanup logic to retry on failure by @samcoe in #7027
  • Cleanup config.AuthToken and config.DefaultHost methods by @samcoe in #7049
  • Bump golang.org/x/net package by @samcoe in #7026
  • Bump github.com/gabriel-vasile/mimetype from 1.4.1 to 1.4.2 by @dependabot in #7107
  • Update working-with-us.md by @vilmibm in #7077
  • NEW CONTRIBUTORS:
  • @beret made their first contribution in #4435
  • @digitalfu made their first contribution in #7030
  • @Ruminateer made their first contribution in #7003
  • @alex-petrov-vt made their first contribution in #7082

New in GitHub CLI 2.23.0 (Feb 10, 2023)

  • WHAT'S NEW:
  • repo fork: Add --default-branch-only flag by @jsoref in #6983
  • repo edit: Add visibility warning by @tuananhlai and @samcoe in #6980
  • WHAT'S CHANGED:
  • secret set: Fix setting Codespaces user secrets by @joshmgross in #6923
  • secret set: Fix setting Dependabot org secrets by @samcoe in #6941
  • secret set: Fix multiline values when reading from .env file by @mislav in #6932
  • run: Fix integer overflow error when more than 255 run attempts by @samcoe in #6935
  • extension browse: Improve usability and accessibility by @vilmibm in #6584
  • issue/pr edit: Fix adding/removing projects using flags by @samcoe in #6955
  • codespace delete: Default to authenticated user by @luanzeba in #6944
  • codespace create: Default to using current repo by @rneatherway in #6596
  • repo set-default: Fix interactive mode not showing all remotes by @despreston in #6969
  • GH_DEBUG: Fix API logging corrupting response bodies by @mislav in #6976
  • pr create/repo fork: Avoid implicitly fetching when adding a new git remote by @mislav in #6990
  • Sanitize ANSII control characters returned from the server by @samcoe in #6916, #6956
  • Disable gh update checker in our precompiled binaries by @mislav in #6977
  • Disallow update checker delaying the gh process by @mislav in #6978
  • Bump github.com/cli/oauth from 1.0.0 to 1.0.1 by @dependabot in #6948
  • Bump microsoft/setup-msbuild from 1.1.3 to 1.3.1 by @dependabot in #6973

New in GitHub CLI 2.22.1 (Jan 30, 2023)

  • WHAT'S CHANGED:
  • Fix gh issue edit and gh pr edit for GitHub Enterprise Server by @mislav in #6921
  • Add --reviewer flag completion by @benjlevesque in #6873
  • Rename --confirm flag to --yes for various destructive commands by @damiensedgwick in #6915
  • Fix race conditions in invoker_test by @cmbrose in #6905
  • NEW CONTRIBUTORS:
  • @benjlevesque made their first contribution in #6873

New in GitHub CLI 2.22.0 (Jan 30, 2023)

  • WHAT'S NEW:
  • Add all-new Projects support to issue and PR commands by @qoega @samcoe in #6735 #6907
  • Commands like gh issue create --project mytitle now work with all-new GitHub Projects, not just with “Projects (classic)” as it was before. However, an additional OAuth scope is needed to interact with new Projects. To enable this, run:
  • gh auth refresh -h github.com -s project
  • Add search commits command by @kevhlee in #6817
  • Add repo edit --enable-discussions by @azu in #6903
  • auth status now shows token scopes by @mntlty in #6546
  • extension create now makes the initial git commit by @mntlty in #6833
  • WHAT'S CHANGED:
  • pr list/view: fix JSON export payloads for reviewers and mergedBy by @mislav in #6881
  • repo set-default: support bare git repos by @mislav in #6880
  • gh api: warn against Windows absolute paths by @kevhlee in #6895
  • repo delete: change confirmation flag to --yes by @damiensedgwick in #6911
  • Codespaces:
  • Fix typo in has_uncommitted_changes for codespaces by @jkeech in #6812
  • Create centralized Codespaces RPC invoker by @dmgardiner25 in #6657
  • Rebuild container using gRPC client by @dmgardiner25 in #6830
  • Start SSH server with gRPC client by @dmgardiner25 in #6838
  • Use gRPC client to notify codespace of activity by @dmgardiner25 in #6870
  • Codespaces create: Fix missing billable owner notice for individuals by @RyanJamesCaldwell in #6891
  • Half close port forwarding connections to fix hangs by @cmbrose in #6888
  • avoid panic when bad default given to Select by @vilmibm in #6831
  • search: migrate search commands to new table printer and add headers by @samcoe in #6869
  • Use AuthToken function to retrieve AuthToken instead of GetOrDefault by @samcoe in #6878
  • Fix flakey TestUpdateProjectV2Items by @mislav in #6909
  • Bump the oauth library by @mislav in #6885
  • NEW CONTRIBUTORS:
  • @jkeech made their first contribution in #6812
  • @qoega made their first contribution in #6735
  • @RyanJamesCaldwell made their first contribution in #6891
  • @azu made their first contribution in #6903

New in GitHub CLI 2.21.3 Pre 0 (Jan 11, 2023)

  • What's Changed:
  • Fix typo in has_uncommitted_changes for codespaces by @jkeech in #6812
  • Create centralized Codespaces RPC invoker by @dmgardiner25 in #6657
  • avoid panic when bad default given to Select by @vilmibm in #6831
  • New Contributors:
  • @jkeech made their first contribution in #6812

New in GitHub CLI 2.21.2 (Jan 4, 2023)

  • WHAT'S CHANGED:
  • docs: update codespace installation instructions by @levenleven in #6781
  • Bump github.com/mattn/go-isatty from 0.0.16 to 0.0.17 by @dependabot in #6794
  • Bump github.com/gdamore/tcell/v2 from 2.5.3 to 2.5.4 by @dependabot in #6798
  • Handle erase operation in auth git-credential command by @samcoe in #6805
  • select base repo correctly when only one remote by @vilmibm in #6803
  • NEW CONTRIBUTORS:
  • @levenleven made their first contribution in #6781

New in GitHub CLI 2.21.1 (Dec 23, 2022)

  • WHAT'S CHANGED:
  • Fix fetching issue/PR comments by @mislav in #6779

New in GitHub CLI 2.21.0 (Dec 23, 2022)

  • WHAT'S NEW:
  • Selecting a default repository:
  • When running a gh command for the first time in a local git repository that has multiple git remotes, gh used to interactively ask Which should be the base repository? so that the user may choose the git remote to default to when making queries to GitHub repositories. This had several problems:
  • Some users did not fully understand what they are being asked to choose;
  • The term “base repository” isn't an established GitHub term, except in the context of Pull Requests;
  • Once chosen, the only way to undo or change the choice made was to manually edit .git/config in the local repository.
  • The new behavior is as follows:
  • gh commands in a repository with multiple remotes will now error out until a default has been chosen.
  • The new gh repo set-default command can be used to select a default, view the selected value, or undo the selection altogether.
  • Internal git operations are now always authenticated:
  • Previously, it could be confusing that a properly authenticated gh repo clone command could fail with a prompt for GitHub password. The underlying reason was that gh repo clone would shell out to git clone , and from then on the authentication was entirely up to git's own credential management. If git wasn't set up to authenticate to GitHub, this could result in a generic password prompt, which appeared as if it was coming from gh.
  • The best general solution for setting up git to use credentials from GitHub CLI is to run gh auth setup-git. However, in this release, gh ensures that all underlying git operations are authenticated by gh, even if git on its own wasn't configured with a credential helper.
  • The way this works is by injecting extra configuration arguments when shelling out to git:
  • git -c credential.helper='!gh auth git-credential' clone
  • Thank you @samcoe! #6541
  • The gh api command now accepts nested JSON parameters
  • The gh api command is similar to the popular curl tool, but with JSON encoding & parsing support and with built-in GitHub authentication. Sending JSON POST parameters was as easy as:
  • gh api -f 'param1=value1' -f 'param2=value2'
  • Now there is also a way to send nested JSON objects and arrays via a special brackets syntax when specifying field names:
  • gh api -f 'head[branch][name]=main'
  • gh api -f 'labels[]=bug' -f 'labels[]=priority-1'
  • Thank you @mislav! #6614
  • OTHER GOODIES:
  • Add issue lock/unlock and pr lock/unlock commands by @chemotaxis in #5333
  • release create: add --verify-tag flag by @luanzeba in #6632
  • release create: add --exclude-pre-releases flag by @owenvoke in #6625
  • repo create: prompt for repository owner in interactive mode by @twelvelabs in #6578
  • repo edit: add --allow-update-branch flag by @browniebroke in #6706
  • extension upgrade: show version change information by @despreston in #6647
  • Codespaces: Use -R for --repo shorthand and deprecate -r by @cmbrose in #6725
  • codespace create: allow setting display name for the new codespace by @despreston in #6739
  • alias list: change output format to YAML by @ptforness in #6603
  • JSON export improvements:
  • Add author information in pr list JSON output by @hirasawayuki in #5049
  • Add isDraft to search prs json options, matching pr view by @mgabeler-lee-6rs in #6704
  • Expose commit SHA in PR reviews JSON export by @mislav in #6646
  • What's Changed
  • ap: avoid sending empty JSON body when no params for a non-GET request by @mislav in #6775
  • release: more resilient release creation and asset management by @mislav in #6667
  • A failed release create no longer leaves a temporary draft release behind
  • A draft release made by release create is now immediately referencable by tag name
  • Failed asset uploads will get retried several times
  • Fix clobbering existing files in release download by @mislav in #6694
  • pr create: exclude the current user from potential reviewers by @nsmag in #6464
  • codespace ports: use new domain in URLs of forwarded ports by @jshorty in #6705
  • Document installing GitHub CLI in Codespaces by @mislav in #6653
  • docs: Update installation instructions for WinGet by @vegerot in #6716
  • Update Cobra and make use of its new command grouping by @mislav in #6589
  • Update go-gh to v1.0.0 by @samcoe in #6618
  • Bump mislav/bump-homebrew-formula-action from 1 to 2 by @dependabot in #6634
  • Upgrade to Go 1.19 by @mislav in #6723
  • Use Prompter in pr package by @vilmibm in #6451
  • Use Prompter in release command by @vilmibm in #6711
  • Linter fixes by @samcoe in #6722
  • Bump goreleaser/goreleaser-action from 3 to 4 by @dependabot in #6727
  • Fix signing Windows exe on release by @mislav in #6776
  • NEW CONTRIBUTORS:
  • @luanzeba made their first contribution in #6632
  • @twelvelabs made their first contribution in #6578
  • @vegerot made their first contribution in #6716
  • @ptforness made their first contribution in #6603

New in GitHub CLI 2.20.2 (Nov 16, 2022)

  • What's Changed:
  • Fix up Linux packaging regression by @samcoe in #6621

New in GitHub CLI 2.20.0 (Nov 9, 2022)

  • What's New:
  • New gh extension browse command by @vilmibm in #6530
  • List, filter, and install available gh extensions from GitHub.com using an interactive interface:
  • Screen Shot 2022-11-09 at 13 49 03
  • New gh extension search command by @vilmibm in #6567
  • Search GitHub.com repositories that have the gh-extension topic.
  • What's Changed:
  • Internal: add instructions for adding protocol buffers by @jungaretti in #6568

New in GitHub CLI 2.19.0 (Nov 3, 2022)

  • WHAT'S NEW:
  • Support explicitly marking a Release as "Latest" by @mislav in #6538
  • gh release create v1.3.0 --latest --notes ""
  • gh release create v1.2.1 --latest=false --notes ""
  • New gh issue develop command for managing branches linked to an issue by @Bestra in #6254
  • gh issue develop 123 --checkout
  • #=> remotely generates a branch for working on issue #123 and checks it out locally
  • Add gh release download --output flag for downloading a single asset by @lpessoa in #6410
  • gh release download --archive=tar.gz --output - | tar xz
  • run list: add number field to JSON export by @mislav in #6494
  • run view: add jobs field to JSON export by @nsmag in #6507
  • repo list --topic flag now accepts multiple topics by @kratisto in #6539
  • codespace rebuild: perform incremental rebuild by default, add --full for full rebuild by @jungaretti in #6551
  • extension upgrade --force overrides the pinned state of extensions by @mntlty in #6513
  • WHAT'S CHANGED:
  • pr create -R -H : enable use from outside of a local git repo by @mislav in #6527
  • codespace ssh: avoid timing out waiting for the codespace to start by @ctaylor4874 in #6544
  • release create: avoid duplicate release when uploading assets by @mislav in #6493
  • extension create: upgrade template for actions/checkout@v3 by @swfz in #6543
  • tablerow template helper: fix measuring available width when GH_FORCE_TTY=100% and output redirection are used #6524
  • Document the hyperlink template helper by @mislav in #6537
  • Fix NO_COLOR setting not respected in gh upgrade notice by @dojutsu-user in #6510
  • gpg-key add: explain in error message how to convert keys into ASCII-armored format for uploading by @BakaFT in #6528
  • repo list: fix listing when belonging to org with IP Allow list by @mislav in #6552
  • auth: fix setting up git credential helper for some Windows paths by @mislav in #6558
  • Auth error messsage in Actions now suggests using github.token instead of secrets.GITHUB_TOKEN by @jsoref in #6535
  • Dogfood the term package from go-gh library by @mislav in #6421
  • Improve resolving SSH hostname aliases from git remotes by @mislav in cli/go-gh#84
  • Normalize the Time-Zone headers in tests by @mislav in #6556
  • Refactor the git client by @samcoe in #6525 #6474
  • Add support for the internal garage.github.com host by @mislav in #6478
  • Bump microsoft/setup-msbuild from 1.0.3 to 1.1.3 by @dependabot in #6480
  • NEW CONTRIBUTORS:
  • @Bestra made their first contribution in #6254
  • @dojutsu-user made their first contribution in #6510
  • @ctaylor4874 made their first contribution in #6544
  • @swfz made their first contribution in #6543
  • @kratisto made their first contribution in #6539
  • @BakaFT made their first contribution in #6528

New in GitHub CLI 2.18.1 (Oct 20, 2022)

  • WHAT'S CHANGED:
  • Replace spaces with tabs in mixed whitespace string by @rneatherway in #6456
  • pr create: Fix regression in non-interactive mode by @samcoe in #6472

New in GitHub CLI 2.18.0 (Oct 19, 2022)

  • NEW COMMANDS AND FLAGS:
  • cs rebuild by @jungaretti in #6404
  • ssh-key delete by @nsmag in #6273
  • gpg-key delete by @nsmag in #6360
  • release delete: new --cleanup-tag flag by @lktslionel in #6392
  • isssue/pr comment: new --edit-last flag by @seachicken in #6384
  • pr diff: new --web flag by @ffalor in #6439
  • WHAT'S CHANGED:
  • pr view: display pull request checks by @lpessoa in #6292
  • search prs: show correct pull request merged state by @mntlty in #6411
  • extension install: improve error messaging when extension not found by @mntlty in #6425
  • repo sync: improve error messaging by @samcoe in #6430
  • Correctly surface HTTP error messages for certain API requests #6429
  • OTHER CHANGES:
  • Add headRefOid to pull request fields by @nsmag in #6399
  • Upgrade devcontainer config by @jungaretti in #6405
  • Implement gRPC client and GetRunningServer method by @dmgardiner25 in #6358
  • Return empty error before starting a pager program by @nsmag in #6419
  • Migrate to tableprinter from go-gh by @mislav in #6346
  • Fix resolving git remotes for the first time by @tdakkota in #6453
  • Fix Codespace Creation Devcontainer bug by @8Gitbrix in #6389
  • NEW CONTRIBUTORS:
  • @lktslionel made their first contribution in #6392
  • @dmgardiner25 made their first contribution in #6358

New in GitHub CLI 2.17.0 (Oct 5, 2022)

  • What's Changed:
  • Add gh auth token by @nsmag in #6324
  • Add flag to pr merge allowing the selection of the merge commit email by @aacoakley in #6382
  • Fix color output for non-256 color terminals by @mislav in #6356
  • surface merge conflicts in pr status by @mntlty in #5999
  • Add header to the gpg-key list output by @nsmag in #6353
  • Fix Ubuntu installation instructions for curl by @mislav in #6357
  • Fix missing text in "man gh-codespace-ssh" by @anthonyfok in #6368
  • update formatting help by @mntlty in #6359
  • add and use ConfirmDeletion in {label,repo} delete by @vilmibm in #6320
  • Add more help to "template" flags by @heaths in #6296
  • New Contributors:
  • @aacoakley made their first contribution in #6382

New in GitHub CLI 2.16.1 (Sep 27, 2022)

  • WHAT'S CHANGED:
  • ssh-key list: add header and ID column to the output by @nsmag in #6270
  • workflow run: recognize .yaml in addition to .yml suffix as workflow file name by @mislav in #6344
  • Respect GH_HOST in auth login, repo delete by @mislav in #6347
  • use Prompter in context by @vilmibm in #6313
  • Use T.Setenv to set env vars in tests by @Juneezee in #6333
  • Replace os.Setenv with t.Setenv by @samcoe in #6345
  • Ensure local keys don't interfere with ssh_test by @cmbrose in #6317
  • Clarify Linux installation instructions by @mislav in #6312
  • Add Amazon Linux 2 installation instructions by @jonasjancarik in #6325
  • NEW CONTRIBUTORS:
  • @jonasjancarik made their first contribution in #6325
  • @Juneezee made their first contribution in #6333
  • Full Changelog: v2.16.0...v2.16.1

New in GitHub CLI 2.16.0 (Sep 23, 2022)

  • WHAT'S NEW:
  • Enable organization-level Codespaces secrets by @8Gitbrix in #6279
  • issue close: add --reason "not planned" support by @samcoe in #6245
  • pr checks: add --required flag by @ffalor in #5648
  • repo create: add the option to generate a README by @mislav in #6264
  • pr ready : add the --undo option to convert a PR back to draft by @mntlty in #5995
  • run list --json: add fields displayTitle and workflowName by @mislav in #6266
  • WHAT'S CHANGED:
  • Fix the standard output of text editor and pager programs by @mislav in #6262
  • cs ssh/cp: remove the need for uploaded SSH keys by @cmbrose in #6304
  • Output paid message for codespace create to stderr not stdout by @samcoe in #6258
  • run list/view: fix displaying the workflow name for a run by @thesnowrose @guo-chris in #6266
  • auth: use Prompter by @vilmibm in #6253
  • auth: fix typo in prompt by @vilmibm in #6306
  • pr create: allow underlying git push process to prompt on stdin by @mislav in #6314
  • Fix deleting remote branches with # in their name by @mislav in #6260
  • gist clone: fix clone URL for Enterprise hosts that don't have the gist. subdomain by @mislav in #6275
  • Resolve web browser via the go-gh library by @samcoe in #6237
  • Migrate to cli/go-gh/pkg/text package by @samcoe in #6236
  • Do not set default for Survey prompt if empty string passed by @vilmibm in #6251
  • Future-proof search tests by @samcoe in #6299
  • Escape liquid tags in site docs by @mislav in #6301
  • Bump github.com/google/go-cmp from 0.5.8 to 0.5.9 by @dependabot in #6219
  • Bump github.com/AlecAivazis/survey/v2 from 2.3.5 to 2.3.6 by @dependabot in #6243

New in GitHub CLI 2.15.0 (Sep 7, 2022)

  • WHAT'S NEW:
  • Add new command issue pin by @ffalor in #5597
  • run/release downlaod: add --clobber and --skip-existing options by @satotake in #6053
  • release create: add --notes-start-tag parameter by @vbh in #6107
  • search: expose repository name without the owner prefix by @kanlac in #6160
  • WHAT'S CHANGED:
  • Rotate our Linux signing GPG key by @samcoe in #6202 #6204 #6206 #6207 #6208
  • browse: fix browse issue with leading hash character by @nsmag in #6144
  • release view: add newline to body when viewing machine readable release by @wheelerlaw in #6108
  • Change default markdown wrap limit from 80 to 120 by @mmrwoods in #6016
  • Docs: improve setup instructions by @edhgoose in #6156
  • Docs: link to the issue for more information by @exilvm in #6189
  • Bump github.com/spf13/cobra from v1.4.0 to v1.5.0 by @anthonyfok in #6196
  • Fix "missing method Fd" crash on Windows by @mislav in #6200
  • Disable flakey ports update visibility tests by @mislav in #6203
  • NEW CONTRIBUTORS:
  • @nsmag made their first contribution in #6144
  • @wheelerlaw made their first contribution in #6108
  • @kanlac made their first contribution in #6160
  • @mmrwoods made their first contribution in #6016
  • @edhgoose made their first contribution in #6156
  • @exilvm made their first contribution in #6189
  • @anthonyfok made their first contribution in #6196

New in GitHub CLI 2.14.7 (Aug 26, 2022)

  • WHAT'S CHANGED:
  • Refactor issue list and pr list tests by @satotake in #6135
  • Mention possible need for sudo -E to run make install by @sparr in #6127
  • Fix auth refresh prompter initialization by @samcoe in #6141
  • NEW CONTRIBUTORS:
  • @sparr made their first contribution in #6127

New in GitHub CLI 2.14.6 (Aug 24, 2022)

  • What's Changed:
  • Set default value for all Select prompts by @samcoe in #6131

New in GitHub CLI 2.14.4 (Aug 11, 2022)

  • WHAT'S CHANGED:
  • gh ext is now an alias for gh extension by @vilmibm in #5974
  • codespace ssh docs now include instructions on setting up ssh by @eljog in #6019 #6029
  • Codespaces: remove support for obsolete blob/pool states by @AyeshaGagguturi in #6008
  • Ensure switching back to the main buffer on Ctrl-C by @heaths in #6004
  • Fix writing gh api -i response headers to terminal pager by @mislav in #6051
  • Fix regression in functionality of GH_DEBUG by @mislav in #6054
  • NEW CONTRIBUTORS:
  • @eljog made their first contribution in #6019
  • @AyeshaGagguturi made their first contribution in #6008

New in GitHub CLI 2.14.3 (Jul 28, 2022)

  • What's Changed:
  • Use alternate screen buffer for watching runs by @heaths in #5681
  • cs copy/ssh: Remove misleading password prompt by @jungaretti in #5969
  • run list/view: Correctly determine run started/elapsed timestamps by @mislav in #5945
  • api: Avoid HTML-escaping JSON output by @mislav in #5989
  • Fix Time-Zone header not properly being set by @samcoe in #5996
  • Fix invalid hosts file error when empty hosts file @samcoe in #5996
  • Fix parsing base repo out of outdated git remotes by @mislav in #5994

New in GitHub CLI 2.14.2 (Jul 17, 2022)

  • WHAT'S CHANGED:
  • Remove accidental caching from repo list and other commands by @mislav in #5943
  • Ensure correct GitHub API request headers sent by @samcoe in #5935
  • repo edit: ignore whitespace when adding topics by @pxeger in #5939
  • Post-go-gh integration cleanup by @samcoe in #5933
  • NEW CONTRIBUTORS:
  • @pxeger made their first contribution in #5939

New in GitHub CLI 2.14.1 (Jul 12, 2022)

  • What's Changed:
  • auth login/refresh: Fix auth token not being present in login and refresh flows @samcoe in #5928

New in GitHub CLI 2.14.0 (Jul 12, 2022)

  • What's New:
  • cs list: Add ability to filter by repo by @markphelps in #5854
  • What's Changed:
  • pr status: Fix detecting PR for curent branch by @mislav in #5915
  • pr checks: Avoid deduplicating same-named checks under different workflows by @mislav in #5919
  • pr close: Improve error messaging when missing args by @ffalor in #5885
  • repo fork: Directly fork under the desired name by @mislav in #5916
  • run download: Allow retrieving more than 100 artifacts by @faubion-hbo in #5799
  • cs ssh: Don't generate SSH key pair if set already exists by @cmbrose in #5859
  • cs create: Fix case where codespace created while in provisioning state causes panic by @markphelps in #5873
  • New Contributors:
  • @casswedson made their first contribution in #5910
  • @faubion-hbo made their first contribution in #5799

New in GitHub CLI 2.13.0 (Jun 27, 2022)

  • WHAT'S NEW:
  • Add pr merge --match-head-commit flag by @ffalor in #5692
  • Add codespace create --retention-period flag by @gdomingu in #5825
  • Add codespace list/stop/delete --org management capabilities for organization administrators by @greggroth and @8Gitbrix in #5807 #5812 #5827
  • codespace ssh: automatically generate SSH keys by @cmbrose in #5752
  • codespace create: notify user when codespace usage is covered by an organization by @jshorty in #5816
  • secret set: allow setting Codespace repository secrets by @greggroth in #5802
  • Add Windows ARM precompiled binary and support arm64 extensions by @azchohfi in #5715
  • WHAT'S CHANGED:
  • Improve gh auth help message based on CI environment by @spenserblack in #5781
  • Fix determining the path to the gh executable under Homebrew by @mislav in #5822
  • pr create: clear filter when selecting from a list in interactive mode by @wilhelmeek in #5841
  • repo fork: raise error if attempting to fork own repository by @jf-delineate in #5794
  • Simplify codespace picker by @greggroth in #5826
  • Bump github.com/stretchr/testify from 1.7.3 to 1.7.4 by @dependabot in #5833
  • NEW CONTRIBUTORS:
  • @azchohfi made their first contribution in #5715
  • @wilhelmeek made their first contribution in #5841

New in GitHub CLI 2.12.1 (Jun 9, 2022)

  • What's Changed:
  • pr merge: fix merge queue API access for PAT consumers by @mislav in #5779
  • Use go-gh repository.ParseWithHost by @samcoe in #5655
  • Use go-gh for SSH hostname alias translation by @samcoe in #5654

New in GitHub CLI 2.12.0 (Jun 9, 2022)

  • What's New:
  • pr merge: add merge queue support by @mntlty in #5596
  • The merge queue feature is currently in beta and available to only some repositories, but if a base branch has merge queue enabled, gh pr merge will add any pull request targeting that branch to the associated merge queue instead of attempting to immediately merge it.
  • codespace edit: add ability to interactively choose a codespace by @8Gitbrix in #5705
  • What's Changed:
  • repo list: fix compatibility with GHES older than v3.3 by @samcoe in #5764
  • repo edit: fix interactive mode compatibility with GHES older than v3.3 by @mislav in #5764
  • pr create: allow forking of repositories with "internal" visibility by @mislav in #5764
  • auth logout: remove confirmation prompt by @jf-delineate in #5751
  • repo create: fix "git init" instructions for paths that have spaces by @guerinoni in #5719
  • codespace create: update prebuild availability status display by @Fengyi-Li in #5737
  • Clean up progress indicator if codespace fails to start by @mislav in #5762
  • Extract LiveshareSession interface by @greggroth in #5725
  • Bump github.com/itchyny/gojq from 0.12.7 to 0.12.8 by @dependabot in #5744
  • Bump github.com/AlecAivazis/survey/v2 from 2.3.4 to 2.3.5 by @dependabot in #5775
  • New Contributors
  • @guerinoni made their first contribution in #5719
  • @Fengyi-Li made their first contribution in #5737
  • @8Gitbrix made their first contribution in #5705
  • @jf-delineate made their first contribution in #5751

New in GitHub CLI 2.11.3 (May 25, 2022)

  • What's Changed:
  • codespace create: Avoid unspecified retention period being forwarded to the API as "0" by @greggroth in #5706

New in GitHub CLI 2.11.1 (May 24, 2022)

  • What's Changed:
  • Fix --version flag printing to stdout by @mislav in #5703

New in GitHub CLI 2.11.0 (May 24, 2022)

  • What's New:
  • extension exec: Add command for executing extensions by @heaths in #5464
  • secrets remove: Renamed command to secrets delete by @jsoref in #5617
  • auth login: Add ability to set title for ssh key by @arsenetar in #5524
  • repo clone: Add --upstream-remote-name flag by @ahmedadan in #5619
  • repo create: Add --include-all-branches flag by @ffalor in #5537
  • run download: Add --pattern flag by @ffalor in #5539
  • run rerun: Add --debug flag by @joshmgross in #5594
  • What's Changed:
  • repo list: Fix flag deprecation warning going to stdout by @mislav in #5698
  • label create: Fix returning error on success by @samcoe in #5649
  • label clone: Fix invalid orderBy query by @heaths in #5675
  • label clone: Speed up execution using parallelization by @heaths in #5687
  • issue view: Fix duplicate indicators and selectable markers by @k-nasa in #5641
  • run list: Removing unneeded documentation by @tarrcurtis in #5642
  • pr create: Improve error message when body ins missing in nonTTY mode by @mislav in #5671
  • pr checks: Fix duplicate status being shown by @heaths in #5678
  • api: Improve documentation for --include flag by @jsoref in #5694
  • search: Fix misleading documentation by @coloradocolby in #5620
  • search: Fix broken @me functionality by @samcoe in #5693
  • codespace ports: Filter out internal ports by @markphelps in #5658
  • codespace: Fix integer overflow bug for large codespaces machines by @samcoe in #5651
  • New Contributors:
  • @coloradocolby made their first contribution in #5620
  • @jsoref made their first contribution in #5617
  • @k-nasa made their first contribution in #5641
  • @tarrcurtis made their first contribution in #5642
  • @arsenetar made their first contribution in #5524
  • @ahmedadan made their first contribution in #5619

New in GitHub CLI 2.10.1 (May 10, 2022)

  • WHAT'S CHANGED:
  • Hide retention-period flag by @greggroth in #5607

New in GitHub CLI 2.10.0 (May 10, 2022)

  • WHAT'S NEW:
  • Add label list list sorting and label remove command by @heaths in #5503
  • Add label list --json support by @heaths in #5567
  • Add repo list --visibility=internal flag by @hiradp in #5564
  • Add release list --exclude-drafts flag by @ffalor in #5595
  • Add codespace jupyter command to open codespaces in JupyterLab by @jungaretti in #5291
  • codespaces list: add display name to the list output by @josebalius in #5571
  • pr create: add "Submit as draft" option by @koskeller in #5570
  • Add devcontainer to this project by @joshspicer in #5592
  • Add codespace create --retention-period flag by @greggroth in #5504
  • WHAT'S CHANGED:
  • label edit: clarify --name switch by @heaths in #5525
  • gist create: add progress indicator by @ffalor in #5526
  • repo create: fix grammar prompt by @chemotaxis in #5557
  • issue comment: support quotes and arguments in EDITOR value by @mislav in #5549
  • search prs: add the ability to pass teams to --review-requested by @ffalor in #5538
  • search prs: add example to help output by @damiensedgwick in #5562
  • issue view: fix non-working usage example by @mhmdanas in #5563
  • pr merge: refactor implementation by @mntlty in #5514
  • status: omit results from archived repositories by @ffalor in #5583
  • status: ignore FORBIDDEN errors due to SAML restrictions by @heaths in #5588
  • auth: respect GH_BROWSER, "browser" config, avoid opening non-HTTP URLs by @mislav in #5604
  • repo clone: document adding upstream remote if repo is a fork by @dhalbert in #5466
  • Fix nil pointer exception in codespace selection by @cannist in #5605
  • codespaces: handle star in display name by @josebalius in #5577
  • Upgrade to go 1.18 by @samcoe in #5542
  • Bump github.com/cpuguy83/go-md2man/v2 from 2.0.1 to 2.0.2 by @dependabot in #5522
  • Bump github.com/google/go-cmp from 0.5.7 to 0.5.8 by @dependabot in #5533
  • Consistent version format in version upgrade notice by @mislav in #5559
  • NEW CONTRIBUTORS:
  • @ffalor made their first contribution in #5526
  • @jungaretti made their first contribution in #5291
  • @damiensedgwick made their first contribution in #5562
  • @mhmdanas made their first contribution in #5563
  • @koskeller made their first contribution in #5570
  • @hiradp made their first contribution in #5564
  • @cannist made their first contribution in #5605
  • @dhalbert made their first contribution in #5466
  • @greggroth made their first contribution in #5504

New in GitHub CLI 2.9.0 (May 10, 2022)

  • WHAT'S NEW:
  • label edit: Command to edit existing labels by @heaths in #5519
  • label clone: Command to clone labels between repositories by @heaths in #5452
  • label create: Add --force flag to forcibly create labels by @heaths in #5451
  • codespaces: Support for multi devcontainer by @reybard in #5076
  • What's Changed
  • label list: Add column for displaying the label color by @heaths in #5462
  • pr merge: Warn if PR is already merged by @mntlty in #5463
  • gist delete: Avoid crash when deleting gist with no owner by @mislav in #5510
  • list commands: Standardize output when no entries found by @rpadaki in #5479
  • repo list: Add ls alias to command by @rpadaki in #5480
  • issue/pr list: Fix searching by --state flag by @samcoe in #5513
  • search prs: Correct displayed header when searching prs command by @samcoe in #5488
  • pr create: Document that --body-file reads from stdin by @lukekarrys in #5461
  • Add tab completion descriptions for aliases and extensions by @rpadaki in #5447
  • Replace deprecated ioutil package with io and os package replacements by @estensen in #5498
  • NEW CONTRIBUTORS:
  • @lukekarrys made their first contribution in #5461
  • @mntlty made their first contribution in #5463
  • @estensen made their first contribution in #5498

New in GitHub CLI 2.8.0 (Apr 14, 2022)

  • WHAT'S NEW:
  • New release edit command by @plu in #5422
  • issue close: add --comment flag to close with comment by @samcoe in #5437
  • issue delete: add --confirm flag by @opelr in #5396
  • pr merge: provide instructions for resolving merge conflicts by @ErKiran in #5330
  • codespace select: add hidden select command for extensions by @legomushroom in #5390
  • codespace create: make location an optional flag by @jshorty in #5410
  • codespace create: handle idle timeout notice by @adnamalin in #5409
  • codespace code: add --web flag to open in Visual Studio Code web mode by @jackcmeyer in #5380
  • gist edit: allow non-interactive file replacement by @samcoe in #5408
  • extension upgrade: add --dry-run flag by @samcoe in #5098
  • Add new alias to all create commands by @chriscn in #5388
  • WHAT'S CHANGED:
  • Add support for installing binary extensions on M1 Macs by @mislav in #5457
  • status: respect GitHub host configuration by @mislav in #5423
  • codespace ssh/cp: check paths safely by @jshorty in #5384
  • codespace edit: remove unsupported idle timeout flag by @adnamalin in #5405
  • extension list: speed up output by avoiding checking for upgrades by @samcoe in #5098
  • extension list: don't error if no extensions are installed by @rpadaki in #5445
  • auth login: fix flow when ~/.config/gh/config.yml is read-only by @ncfavier in #5378
  • Fix table printer crash in narrow terminals by @rpadaki in #5449
  • Improve DNF installation instructions by @gto406 in #5406
  • Change issue close color from red to purple by @samcoe in #5436
  • Replace old search query builder by @samcoe in #5366
  • NEW CONTRIBUTORS:
  • @jshorty made their first contribution in #5384
  • @legomushroom made their first contribution in #5390
  • @gto406 made their first contribution in #5406
  • @chriscn made their first contribution in #5388
  • @ncfavier made their first contribution in #5378
  • @jackcmeyer made their first contribution in #5380
  • @opelr made their first contribution in #5396
  • @rpadaki made their first contribution in #5445
  • @ErKiran made their first contribution in #5330
  • @plu made their first contribution in #5422

New in GitHub CLI 2.7.0 (Mar 31, 2022)

  • Find your work across repositories:
  • Add gh status command by @vilmibm in #5369
  • The status command displays issues and pull requests assigned to you from anywhere on GitHub, as well as requests for your review, mentions of your name, and notifications.
  • gh search: Add search issues and search pull requests commands by @samcoe in #5334
  • OTHER NEW FEATURES:
  • Add label list and label create commands by @ZaiZheTingDun in #5316
  • Add ability to filter issue and pull request lists by app by @samcoe in #5370
  • extension install: Add option to pin extensions to a version by @meiji163 in #5272
  • Add support for Dependabot secrets by @joshmgross in #5160
  • Add GH_DEBUG environment variable, deprecate DEBUG for verbose mode by @lylecantcode in #5306
  • FIXES:
  • Codespaces: Disallow some operations on codespaces that have a pending operation by @cwndrws in #5319
  • Codespaces: Listen to agent port-forwarding events when forwarding ports by @bchuecos in #5270
  • cs ssh: remove unwanted trailing quote by @sgray in #5327
  • cs ssh: use setup example that should work with any ssh config by @znull in #5345
  • cs cp: parse additional scp args by @cmbrose in #5340
  • cs create: rename repo permissions opt-out parameter by @gdomingu in #5344
  • pr view: respect GH_FORCE_TTY by @callumacrae in #5357
  • extension upgrade --all: do not throw an error if no extensions are installed by @jimmykodes in #5356
  • run download: fix extracting to root path by @mislav in #5225
  • pr create --web: fix escaping URL path components by @GreenRecycleBin in #5374
  • release list: fix "latest" release logic by @graphaelli in #4921
  • Text editor: only add UTF-8 BOM on Windows by @mgabeler-lee-6rs in #5326
  • Bump github.com/AlecAivazis/survey/v2 from 2.3.2 to 2.3.4 by @dependabot in #5337
  • NEW CONTRIBUTORS:
  • @cwndrws made their first contribution in #5319
  • @bchuecos made their first contribution in #5270
  • @sgray made their first contribution in #5327
  • @gdomingu made their first contribution in #5344
  • @callumacrae made their first contribution in #5357
  • @jimmykodes made their first contribution in #5356
  • @lylecantcode made their first contribution in #5306
  • @ZaiZheTingDun made their first contribution in #5316
  • @GreenRecycleBin made their first contribution in #5374
  • @mgabeler-lee-6rs made their first contribution in #5326
  • @graphaelli made their first contribution in #4921

New in GitHub CLI 2.6.0 (Mar 16, 2022)

  • REPO SEARCH:
  • @samcoe is working on a new command, gh search! In this release it's shipping with just support for repository searching. Results can then be processed with --jq or fillter columns with --json and filters are expressed with flags like --topic or --license.
  • Try it out with something like: gh search repos --language=go --good-first-issues=">=10"!
  • Rerun failed jobs:
  • gh run rerun has been augmented with two new flags: --failed and --job by @cdb. You can now selectively rerun just failed jobs from a given workflow run! Running gh run rerun --failed will prompt you to select a run to work with.
  • Codespaces Updates:
  • Allow Editing Codespaces by @veverkap in #5211
  • Updates wording for codespaces accept permissions flow by @markphelps in #5276
  • Add VSCS Target to gh cs list by @cmbrose in #5296
  • Adds internal codespace developer flags by @joshspicer in #5287
  • Add --profile option to gh cs cp by @cmbrose in #5297
  • Other New Features:
  • add interactive repository edit functionality by @g14a in #4895
  • Support setting Dependabot secrets by @joshmgross in #5134
  • Add version to extension list command by @seachicken in #5219
  • after merge, switch to base branch if available by @bstncartwright in #5251
  • Bugfixes:
  • pr close skips deleting local branch if not in a git repo by @ganboonhong in #5254
  • pr checks: fix error message when no checks were found by @mislav in #5286
  • Fixed permission for workflow by @neilnaveen in #5279
  • Docs & Development:
  • Bump actions/checkout from 2 to 3 by @dependabot in #5271
  • Bump Cobra to eliminate Viper by @mislav in #5293
  • Bump golangci-lint version by @mislav in #5298
  • New Contributors:
  • @seachicken made their first contribution in #5219
  • @joshspicer made their first contribution in #5287
  • @cdb made their first contribution in #5275

New in GitHub CLI 2.5.2 (Mar 2, 2022)

  • ls alias now available for all commands:
  • All places where a list subcommand is defined now support an ls alias, so gh pr ls to your heart's content.
  • Better handling of oauth scopes:
  • Thanks to @mario-campos we now properly understand implied auth scopes, fixing some instances where gh insisted you needed additional scopes when you did not. #5256
  • Other Bugfixes:
  • Fix HexToRGB panic by @markphelps in #5247
  • Other Changes:
  • Support filtering PRs authored by GitHub Apps by @joshmgross in #5180
  • gh auth login: added flags to partially automate flow by @jonathan-enf in #5158
  • Codespaces Create: Allow Accepting Permissions by @markphelps in #5234
  • Development & Docs:
  • Bump github.com/itchyny/gojq from 0.12.6 to 0.12.7 by @dependabot in #5263
  • Misc. docs improvements by @mislav in #5223
  • Use StringEnumFlag helper in more places by @mislav in #5221
  • Change how gh-cli is installed on fedora by @Hanjingxue-Boling in #5204
  • New Contributors:
  • @CGA1123 made their first contribution in #5214
  • @Hanjingxue-Boling made their first contribution in #5204
  • @jonathan-enf made their first contribution in #5158
  • @markphelps made their first contribution in #5234
  • @mario-campos made their first contribution in #5256

New in GitHub CLI 2.5.1 (Feb 16, 2022)

  • NEW FEATURES:
  • Add display name to codespaces prompts and JSON output by @veverkap in #5044
  • Add pr checks --watch flag by @endorama in #4519
  • FIXES:
  • auth login --with-token: fix authenticating git operations by @mislav in #5186
  • release create: respect discussion category when creating a release with assets by @k-jun in #5019
  • gist create: handle Windows-style file paths by @joshmgross in #5173
  • release create: warn about unpushed local git tag by @samcoe in #5104
  • Ignore EPIPE errors when writing to a closed pager by @mislav in #5143
  • Rotate our Windows code-signing certificates by @mislav in #5196
  • DOCUMENTATION FIXES:
  • Debian packages: revert changing the location of GPG key file by @vilmibm in #5205
  • repo edit: clarify passing false for boolean flags by @brendalf in #5165
  • Spelling correction in error message by @hirasawayuki in #5157

New in GitHub CLI 2.5.0 (Feb 1, 2022)

  • NEW FEATURES:
  • cs ssh: cli integration with openssh config by @znull in #4915
  • issue/pr create/edit: improve assignee display by @carlqt in #4420
  • auth login/refresh: add interactive mode by @nicknotfun in #3997
  • auth git-credential: add ability to authenticate GitHub Gist requests by @mislav in #3064
  • gist edit: add ability to edit gist description by @SteadBytes in #4738
  • release delete-asset: add sub command to delete asset from release by @m4ver1k in #4416
  • pr status: show number of approvals by @despreston in #4240
  • gist edit: add way to edit files from different sources by @tdakkota in #4656
  • repo deploy-key: add repository deploy key operations support by @n1lesh in #4302
  • repo fork: add ability to set target repo fork name by @g14a in #4886
  • run list: add branch and actor filters by @bak1an in #4100
  • run view: add job id into run view suggest command by @yasudanaoya in #5105
  • api: dont execute jq filters or templates when api requests are not successful by @samcoe in #5088
  • pr create: add remote template support by @samcoe in #5097
  • cs create: provide repo name suggestions by @cmbrose in #5108
  • FIXES:
  • Note to Windows users: You will need to restart your terminal app after upgrading using the new MSI. This is because the new MSI changes the installation directory, and thus the path environment variable. In order to pick up those changes your terminal app needs to be restarted.
  • Huge shout out to @heaths for his work on completely rewriting the windows installer in #4276.
  • Sign Windows .exes in a post-build hook by @mbpreble in #2160
  • release create: fix tag message option hidden by @spenserblack in #5028
  • workflow enable: fix disabled_inactivity workflow can be changed to enable by @hirasawayuki in #5047
  • extension install: update wording for extensions that cannot be installed by @vilmibm in #5066
  • api: respect GH_REPO when substituting {owner}/{repo} by @issyl0 in #5063
  • issue list: fix filtering issues by milestone by @mislav in #5040
  • pr create: fix creating PRs from numerical branch names by @samcoe in #5090
  • repo fork: prefer configured git protocol when forking by @vilmibm in #5092
  • pr checks: fix duplicates check results being returned by @hirasawayuki in #5069
  • secret set: trim trailing whitespace when setting secrets from stdin by @samcoe in #5086
  • repo deploy-key delete: enable repo override for repo deploy-key delete by @mislav in #5152
  • Improve Markdown rendering by @mislav in #5034
  • Handle SAML enforcement challenge from the server by @mislav in #5054
  • Add retries to Codespaces API client by @marwan-at-work in #5064
  • Add GH_HOST to hosts list if it is present by @samcoe in #5087
  • Standardize pager output across commands by @mislav in #5141
  • Add new line after error by @audreee in #5124
  • Other Changes:
  • Improve Survey stubber for tests by @mislav in #5032
  • Add Alpine Linux install docs by @ajhalili2006 in #4954
  • Amend location of GPG key file by @SubOptimal in #4998
  • Fix flaky liveshare session test by @marwan-at-work in #5111
  • Consistent punctuation in command usages by @kevhlee in #5139
  • Added install instructions for Void Linux by @TheGejr in #5130

New in GitHub CLI 2.5.0 Pre-release 15 (Jan 17, 2022)

  • CHANGED:
  • gh cs ssh cli integration with openssh config by @znull in #4915
  • #4386 Enhance create assignee by @carlqt in #4420
  • Add interactive mode to auth flow, pass from login and refresh by @nicknotfun in #3997
  • Cache Go modules between CI runs by @mislav in #5033
  • NEW CONTRIBUTORS:
  • @znull made their first contribution in #4915
  • @carlqt made their first contribution in #4420
  • @nicknotfun made their first contribution in #3997

New in GitHub CLI 2.5.0 Pre-release 3 (Jan 7, 2022)

  • Deprecate test.ExpectLines by @mislav in #2803
  • Add support for git flags in gh repo fork by @cristiand391 in #2282
  • Only fetch default branch when adding upstream remote by @cdce8p in #2588
  • Print friendly error when 'gh gist ' is missing required argument by @cristiand391 in #2664
  • Show progress while creating a new pull request by @KarelCoudijzer in #2808
  • Add body argument to pr merge command. by @ptxmac in #2810
  • Deprecate test package by @mislav in #2801
  • Add fail message for non-existent hostname by @n1lesh in #2785
  • Refactor to use os.UserHomeDir() by @gleich in #2740
  • issue create: Add special @me assignee (self) by @marclop in #2004
  • Add ability to force checkout PR by @neelr in #1953
  • fix: Project Argument working alongwith --web flag by @AliabbasMerchant in #2108
  • #1190 - limit merge methods by @divbhasin in #2224
  • Freeze time in issue view test by @mislav in #2843
  • Remove use of deprecated test.InitCmdStubber by @dpromanko in #2828
  • Consistently use success icon by @mislav in #2799
  • Add flag for using detached HEAD to pr checkout by @fsmiamoto in #2117
  • restore fork rename behavior for nontty case by @vilmibm in #2825
  • Fix secret set --repos for repositories that have dashes by @mislav in #2844
  • Configuration path can come from environment. by @bigkevmcd in #2444
  • Alert unpushed commits when merging a pull request by @quiye in #2255
  • Do not display minimized comments by @samcoe in #2859
  • Add issue delete command by @kevinmbeaulieu in #2839
  • Remove use of run.SetPrepareCmd in tests by @dpromanko in #2858
  • run createrepo via docker by @vilmibm in #2856
  • remove gist description from single file raw view (#2886) by @Ma3oBblu in #2888
  • add --files to list filenames in gist (#2885) by @Ma3oBblu in #2898
  • Clarify handling of git tags during release create by @mislav in #2910
  • Improve repo create docs by @mislav in #2908
  • Explain how to link an issue in pr create by @mislav in #2909
  • Display output of build commands. by @xvqxy in #2926
  • Suggest brew upgrade gh when new version detected by @mislav in #2929
  • Add more examples to api docs by @mislav in #2951
  • Edit issue command by @samcoe in #2915
  • Edit pull request command by @samcoe in #2940
  • Change behavior of slice flags for issue edit and pr edit commands by @samcoe in #2949
  • Adds Branch Up to Date Status by @redreceipt in #2952
  • PR merge improvements: auto-merge, edit commit body by @mislav in #2980
  • Add SSH key generation & uploading to gh auth login flow by @mislav in #2892
  • Recognize the write:org OAuth scope as satisfying read:org by @mislav in #2965
  • Implementing issue template GraphQL API call by @divyaramanathan in #2539
  • pr status: fix checking branch protection rules on the base branch by @mislav in #2988
  • pr merge: avoid prompting to enter editor after editing phase is chosen by @mislav in #2989
  • Fix prompt string when creating remote repository by @ulwlu in #2962
  • fully restore fork remote renaming behavior by @vilmibm in #2982
  • Add ssh-key add command and publish ssh-key by @mislav in #2990
  • Repo/Cli by @Mellbabe in #2987
  • Fix pr status for GHE 2.22 and older by @mislav in #2996
  • Fix pasting Personal Access Token to auth login for GHE by @mislav in #3019
  • Fix auth git-credential when the token comes from environment by @mislav in #3009
  • Avoid upgrade notice for recent release if gh is under Homebrew prefix by @mislav in #3020
  • Accept only one argument when deleting a gist by @g14a in #3021
  • Add pr edit --base to change the base branch of a PR by @ganboonhong in #3022
  • Avoid crash in pr merge when the pull request has no commits by @mislav in #3036
  • Normalize pr command arguments by @samcoe in #3024
  • Feature/add files to gist by @g14a in #2997
  • Add repo list command by @cristiand391 in #2953
  • Add interactive select in gist view by @ganboonhong in #3008
  • Add api --cache flag by @mislav in #3010
  • Add information about AUR by @fossdd in #3059
  • Repo create tweaks by @mislav in #2991
  • Add pr create --body-file flag by @castaneai in #3018
  • Add the api --preview flag to opt into GitHub API previews by @mislav in #3077
  • Issue/pr create: exit with nonzero status code when "Cancel" was chosen by @mislav in #3023
  • Use absolute path when configuring gh as git credential by @mislav in #3075
  • Add a template --format flag to api command by @mislav in #3011
  • Add --jq to api command to filter data using jq syntax by @mislav in #3012
  • Avoid checking for new releases when authenticating git by @mislav in #3083
  • Remove functionality to add, view and edit binary files in gists by @g14a in #3042
  • fix typo in docs of alias command by @educhastenier in #3182
  • Fix a typo in gh api's help text by @kidonng in #3183
  • Feature/diffstat pr by @g14a in #3086
  • Accept --body-file flag if --body is supported by @cristiand391 in #3192
  • Actions Support Phase 1 by @vilmibm in #2923
  • workflow list by @vilmibm in #3245
  • Allow retrying HTTP/2 uploads for release assets by @mislav in #3253
  • Refactor use of glamour to allow style overrides by @vilmibm in #3243
  • add search feature in listing issues by @g14a in #3196
  • Add pr list --search and --author flags by @mislav in #3294
  • gh workflow {enable,disable} by @vilmibm in #3267
  • Preemptively share code from gh run view by @vilmibm in #3323
  • support --workflow in run list by @vilmibm in #3318
  • Allow default host by @samcoe in #3286
  • BREAKING: lookup all issue/PR labels with "AND" instead of "OR" by @mislav in #3295
  • Ensure that table printer always uses all available width in the terminal by @mislav in #3200
  • Pass web browser to each individual command by @mislav in #3279
  • Feature/transfer issues by @g14a in #3258
  • Disable preview option in prompts if URL size is too long by @cristiand391 in #3271
  • small refactor around prompting for runs by @vilmibm in #3332
  • Add workflow for automated PR linting by @vilmibm in #3193
  • Treat unrecognized PR Checks statuses as "pending" by @mislav in #3336
  • fix premature return while forking repo non interactively by @g14a in #3334
  • Add section in help for actions commands by @samcoe in #3341
  • Quick fix: respect default hostname when parsing owner/repo pairs by @samcoe in #3347
  • absorb job view into run view by @vilmibm in #3338
  • gh run rerun by @vilmibm in #3333
  • Workflow view by @samcoe in #3337
  • support --web in gh run view by @vilmibm in #3357
  • Add tests for manual pages generation by @mislav in #3330
  • gh run watch by @vilmibm in #3324
  • Add run download command for fetching workflow artifacts by @mislav in #3349
  • Display all run logs by @samcoe in #3368
  • Add flag log-failed to display only logs of failed steps by @samcoe in #3379
  • gh workflow run by @vilmibm in #3303
  • Tweak build scripts to enable cross-compiling by @mislav in #3383
  • handle array type for on: in workflow file by @vilmibm in #3404
  • make gh actions output Real by @vilmibm in #3405
  • Use --exit-status instead of -e in example by @skedwards88 in #3407
  • Make run selection unique by @samcoe in #3408
  • Fix extracting workflow artifact to a relative path by @mislav in #3413
  • Add note about current branch detection by @cristiand391 in #3412
  • actions wrap up by @vilmibm in #3418
  • Add --json export flag for issues and pull requests by @mislav in #3414
  • hotfix: create cache dir in run view by @vilmibm in #3429
  • Update glamour to version which includes emoji support by @samcoe in #3403
  • use int64 explicitly in Actions support by @vilmibm in #3432
  • Bump AlecAivazis/survey by @kou029w in #3439
  • Fix requesting REST sub-resources on GHE by @mislav in #3461
  • Increase linter timeout from 1min to 3min by @mislav in #3462
  • Fix run view --log when steps have slashes by @adamslc in #3445
  • include magic repo resolution magic for workflow and run by @vilmibm in #3468
  • Fix issue create --web by @mislav in #3472
  • Fix detecting PR status when passing branch as arg by @cristiand391 in #3351
  • Remove unused embedded struct by @cristiand391 in #3402
  • Add note on supported value types in raw-fields by @embano1 in #3400
  • linuxbrew details added in linux installation docs. by @darkRaspberry in #3465
  • Add Funtoo Linux install instructions by @invakid404 in #3438
  • add Debian install variant without add-apt-repository by @zxaos in #3419
  • using filepath.Join() instead of path.Join() to fix wrong filepath on Windows by @junjieyuan in #3491
  • add some more examples for release create by @vilmibm in #3495
  • add some more examples for pr list by @vilmibm in #3494
  • Optionally read stdin for gh alias set by @heaths in #3490
  • Fixes typo in pr create docs by @sgerrand in #3524
  • handle 404 for annotations by @vilmibm in #3517
  • tweak secret set to allow prompting by @vilmibm in #3499
  • Fix exporting milestone for issues and PRs by @mislav in #3529
  • catch mintty error and add help for it by @vilmibm in #3537
  • Use golang.org/x/term by @tklauser in #3530
  • Support standard path variable replacement syntax by @rneatherway in #3536
  • Improve issue status detection by @cristiand391 in #3525
  • Use T.TempDir for temporary dirs in tests by @cristiand391 in #3580
  • Add validation to gists if contents are empty by @g14a in #3578
  • Add repo fork --org functionality by @mislav in #3611
  • Delete our pull request template by @mislav in #3584
  • Add project layout documentation by @mislav in #3587
  • Fix "null" display in colored JSON output by @mislav in #3626
  • Add shell completion for valid --json flag values by @mislav in #3628
  • Push data serialization concern into Exporter by @mislav in #3621
  • Create a Release Discussion on every new release by @mislav in #3638
  • Add --json export functionality to repo commands by @mislav in #3627
  • Fix some docs formatting for the web by @mislav in #3648
  • Add support for new Ubuntu, Kali linux by @mislav in #3645
  • Eliminate API overfetching in pr commands by @mislav in #3547
  • Add release view --json export support by @mislav in #3656
  • Fix pr checkout for cross-repository pull requests by @mislav in #3663
  • Fix creating Windows directory for gh config by @mislav in #3666
  • Bump github.com/rivo/uniseg to v0.2.0 by @tklauser in #3668
  • simplify deb installation docs by @vilmibm in #3672
  • Describes usage in Github Actions by @dgreene1 in #3681
  • Fix pr merge with GHE < 3.0 by @mislav in #3688
  • add column headers and age column in listing runs by @g14a in #3575
  • Capitalized h by @sadikkuzu in #3697
  • Add support for XDG_CONFIG_HOME and AppData on Windows by @samcoe in #3671
  • Fix test that was deleting local config folder by @samcoe in #3707
  • Fix pr checkout setting up git push configuration by @mislav in #3714
  • Fix pr checkout for PRs coming from deleted forks by @mislav in #3700
  • fix adding/removing team reviewers with gh pr edit by @mercimat in #3701
  • fix listing of PRs when merged ones are searched by @g14a in #3730
  • List all secrets instead of being subject to the default limit of 30 results by @g14a in #3679
  • Adds the ability to list environment secrets - gh secret list -e dev by @tylerxwright in #3270
  • Update upgrade docs for winget by @just1a-person in #3750
  • Add support for XDG_STATE_HOME by @samcoe in #3717
  • Fix how teams are displayed in requested reviewers by @mislav in #3737
  • fix project layout link by @astroparam in #3767
  • Add support for XDG_DATA_HOME by @samcoe in #3768
  • Add support for setting environments secrets by @browniebroke in #3769
  • escape metacharacters in job name by @astroparam in #3772
  • Include issue number alongside the title in gh issue/pr view by @jack1142 in #3741
  • Add support for removing environment secrets by @browniebroke in #3774
  • Handle default body text when creating issues and pull requests by @chemotaxis in #3658
  • Experimental command extensions support by @mislav in #3761
  • Fix description for gh secret set --env option by @browniebroke in #3784
  • Add a long command description for secrets remove by @browniebroke in #3786
  • Fix showing Checks information in pr status by @mislav in #3804
  • Update "Accept" header for github.com requests by @mislav in #3803
  • fork tests cleanup by @vilmibm in #3809
  • Remove unused method from httpmock package by @cristiand391 in #3834
  • Fix setting environment secrets by @mislav in #3832
  • Increase GH_PAGER precedence by @cristiand391 in #3789
  • Allow explicitly empty body in issue/pr create by @mislav in #3787
  • Factory cleanup by @samcoe in #3841
  • Document installing via Conda package manager by @chemotaxis in #3792
  • Improvements to build script on Windows by @mislav in #3846
  • Automate packaging for Winget by @Vishesh-Gupta in #3801
  • Ensure that tests for command factory never read from user's config by @mislav in #3856
  • Add shell completion for the --state flag by @autopp in #3877
  • Update documentation for gist create command with default of secret by @jonlorusso in #3871
  • Print help even if logged out by @chemotaxis in #3850
  • Fix gh run download fails on large artifacts due to uint32 limitation by @Yuuki77 in #3890
  • repo fork: check that --org is not the empty string by @camillesf in #3807
  • Feature/create repo with gitignore license by @g14a in #3746
  • Improvements to gh extensions by @mislav in #3870
  • Feature/Create browse command by @bchadwic in #3773
  • Add ability to dial API via unix socket by @jgold-stripe in #3779
  • Fix bug where branchProtectionRule doesn't exist in enterprise 2.22 by @samcoe in #3922
  • fix repo create in org with license/ignore by @vilmibm in #3924
  • Return SilentError if completed run failed by @despreston in #3982
  • Added colors to issue / pr labels in the terminal by @bchadwic in #3912
  • Add a no-browser mode to gh browse by @silby in #3943
  • fix repo create --confirm by @despreston in #3995
  • Update GoReleaser to v0.172.1 by @chemotaxis in #3926
  • Fix issue in FindEntry that causes extensions and alias crash by @samcoe in #3911
  • Extension install check by @samcoe in #3941
  • Add confirmation to extensions remove by @samcoe in #3934
  • Skip trying to upgrade local extensions by @samcoe in #3933
  • Skip auto migrate of config when GH_CONFIG_DIR by @despreston in #4017
  • fix private repo creation in case of ignore templates & repo description bugs in case of template repos by @g14a in #3972
  • Add documentation about double quoting on Windows by @chemotaxis in #4013
  • Clean up GH_CONFIG_DIR docs by @mislav in #4020
  • Bump gojq to latest version by @mislav in #3981
  • Bump Survey library for cursor improvements by @mislav in #3980
  • PR auto-merge improvements by @cristiand391 in #3706
  • Revert "Update GoReleaser" by @mislav in #4025
  • Add update checking to extensions list by @samcoe in #3905
  • Fix error message when using GH_ENTERPRISE_TOKEN but host is ambiguous by @mislav in #4019
  • Upgrade Cobra for improved shell completion support by @mislav in #4028
  • Add --force flag for extensions upgrade by @samcoe in #4029
  • Fix typo in openSUSE installation instructions by @tniessen in #4047
  • Allow auto-completing the --repo values by @dscho in #3942
  • Update Goreleaser, take 2 by @mislav in #4043
  • pr merge: added --admin flag by @rsteube in #4071
  • Fixes #4084: Enable completion descriptions for powershell by @marckhouzam in #4085
  • Disable colorizing labels in issue list output by @mislav in #4079
  • Fix unmarshalling GraphQL error type by @mislav in #4087
  • add --branch flag to pr checkout by @despreston in #4005
  • Add repo sync command by @samcoe in #3813
  • add --discussion-category flag to release cmd by @despreston in #4003
  • Check path for git executable before auth by @shaharyarahmed-bot in #4109
  • Repo sync optimizations by @mislav in #4102
  • Rework local extensions for Windows by @mislav in #4051
  • Rename gh extensions → gh extension by @mislav in #4112
  • Extensions UI tweaks by @mislav in #4116
  • Add PowerShell instructions to completions help by @mislav in #4114
  • Remove backwards compatibility with homedir library for config files by @samcoe in #4145
  • add browser option to config by @despreston in #3992
  • Add topic filter to repository listing by @lepasq in #4136
  • Refresh Linux & BSD installation docs by @mislav in #4144
  • Correct benign mistake in off-by-one guard by @rneatherway in #4155
  • Extend query suite with quality queries by @rneatherway in #4156
  • Fix HTTP 502 error reporting from GraphQL request by @mislav in #4154
  • fix typos in docs by @saintmalik in #4169
  • Enable help for extensions, accept full extension names as argument by @mislav in #4158
  • chore: make gh status link clickable by @mahdyar in #4171
  • Add ability to force terminal-style output even when redirected by @mislav in #4146
  • Require Go 1.16+ by @mislav in #4175
  • Bump Survey for accessibility features by @mislav in #4172
  • Add extension create command by @samcoe in #4159
  • Re-enable label colors for issue list by @heaths in #4106
  • bump survey to 2.3.1 by @vilmibm in #4177
  • Add table and helper template functions by @heaths in #3519
  • Improve changelog script so it includes squashed merges by @mislav in #4184
  • Disable auth for cobra shell request completion hidden commands by @cuonglm in #4189
  • Use /usr/bin/env bash instead of /bin/bash in gh extension create by @kidonng in #4203
  • Remove defunct link from gh actions by @mislav in #4213
  • add quotes around @me in documentation to ensure examples work on ps by @Jernik in #4239
  • feat(4248): add support for line range w/ browse by @despreston in #4253
  • Use x/term package for repo garden instead of shelling out to stty by @mislav in #4214
  • Rename the module to "github.com/cli/cli/v2" by @mislav in #4199
  • Suggest to re-authenticate to fix "SAML enforcement" error by @mislav in #4241
  • Document installing extensions using full repo URL by @wrslatz in #4271
  • fix link to code in project-layout doc by @andrewhsu in #4299
  • show warning when limit exceeds search api max by @despreston in #3967
  • Publish docs site using a deploy key instead of PAT by @mislav in #4320
  • fix browse of markdown files with line ranges by @andrewhsu in #4310
  • Allow user input for git fetch in repo sync by @samcoe in #4328
  • Do not swallow prompt error during repo create by @mislav in #4331
  • Add --draft and --non-draft filters to gh pr list by @SiarheiFedartsou in #4316
  • Add 'git+https' to list of supported URL protocols by @danburzo in #4347
  • install binary extensions by @vilmibm in #4308
  • factory: gh executable from PATH by @wilso199 in #4243
  • docs: add hint how to use use stdin in api command by @rethab in #4291
  • Revised pending and skipped symbols for pr checks / run commands by @bchadwic in #4090
  • Switch to using cli/crypto & test fixes by @josebalius in #4379
  • binary extensions list & upgrade by @vilmibm in #4373
  • Also set pushRemote on gh pr checkout from fork by @RasmusWL in #4363
  • codespace: validate host public keys by @josebalius in #4392
  • Import codespaces by @josebalius in #4384
  • liveshare: move location from internal/liveshare to pkg/liveshare by @josebalius in #4393
  • codespace api: move internal/api to internal/codespaces/api by @josebalius in #4394
  • pkg/cmd/codespace: move cmd/ghcs to pkg/cmd/codespace by @josebalius in #4395
  • Bump Survey to fix "Unexpected escape sequence" by @mislav in #4405
  • Don't allow the lazyLoadedHTTPClient mutex to wrap Do() by @mislav in #4403
  • codespace list: update ListCodespaces to use new API endpoint by @josebalius in #4407
  • codespace create: update startCreate to use new API endpoint by @josebalius in #4408
  • codespace delete: update DeleteCodespaces to new API endpoint by @josebalius in #4409
  • codespace: rename the cmd pkg to codespace by @josebalius in #4432
  • codespace create: update API.StartCodespace to use new API endpoint by @josebalius in #4429
  • codespace machine: switch API.GetCodespacesMachines to use new API by @josebalius in #4431
  • codespace: switch API.GetCodespace to new API endpoint by @josebalius in #4446
  • Adding pagination to list codespaces by @geramirez in #4439
  • codespace: choose codespace prompt improvements by @josebalius in #4440
  • Add codeowners by @josebalius in #4448
  • Set io when initializing extension manager by @samcoe in #4437
  • codespace create: fix regression returning nil codespace by @josebalius in #4457
  • Add instructions to gh installation via spack by @lcnzg in #4412
  • #2720 | Add patch flag to pull-request diff command by @m4ver1k in #4460
  • Enable dependabot to get security updates and if needed version updat… by @neil465 in #4473
  • Bump github.com/google/go-cmp from 0.5.5 to 0.5.6 by @dependabot in #4475
  • Bump github.com/muesli/termenv from 0.8.1 to 0.9.0 by @dependabot in #4479
  • Bump github.com/briandowns/spinner from 1.11.1 to 1.16.0 by @dependabot in #4477
  • Bump github.com/mattn/go-isatty from 0.0.13 to 0.0.14 by @dependabot in #4478
  • Bump github.com/mattn/go-colorable from 0.1.8 to 0.1.11 by @dependabot in #4481
  • Bump github.com/cpuguy83/go-md2man/v2 from 2.0.0 to 2.0.1 by @dependabot in #4483
  • Bump github.com/itchyny/gojq from 0.12.4 to 0.12.5 by @dependabot in #4482
  • Bump github.com/hashicorp/go-version from 1.2.1 to 1.3.0 by @dependabot in #4484
  • Bump github.com/creack/pty from 1.1.13 to 1.1.16 by @dependabot in #4485
  • feat(#4452): codespaces list --limit flag by @Shanduur in #4453
  • gh repo archive by @pxrth9 in #4410
  • Bump github.com/gabriel-vasile/mimetype from 1.1.2 to 1.4.0 by @dependabot in #4496
  • CodeQL-Dependabot compatibility by @mislav in #4480
  • Use concurrency to check for extension updates by @samcoe in #4396
  • codespace: fix for API response body change by @josebalius in #4505
  • cs create: include HTTP status code in error from /user/codespaces/*/start by @adonovan in #4504
  • Update winget installation instructions by @alefranz in #4507
  • codespace/liveshare keepalive: keep LS sessions alive with PF traffic by @josebalius in #4461
  • Add org scoped port forwarding + fix test formatting by @marwan-at-work in #4497
  • Downgrade spinner package due to cleanup bug by @mislav in #4509
  • codespace ssh: fix for nil logger on non-debugging scenarios by @josebalius in #4511
  • Configure Dependabot to only consider patch version bumps by @mislav in #4510
  • Avoid macOS prompt to allow incoming connections in liveshare tests by @mislav in #4517
  • codespace stop: new command to stop a running codespace by @josebalius in #4508
  • Add feature open latest commit in gh browse by @bchadwic in #3950
  • Warn about missing OAuth scopes when reporting HTTP 4xx errors by @mislav in #4513
  • Generate release notes using the new API by @mislav in #4512
  • codespace: switches port binding to 127.0.0.1 where possible by @josebalius in #4521
  • Cleanup extension upgrade command by @samcoe in #4442
  • Add --head filter to gh pr list by @SiarheiFedartsou in #4279
  • codespace: implement new API payload by @josebalius in #4520
  • codespace: update running method by @josebalius in #4524
  • change expected delete status to 202 by @nickfyson in #4529
  • Rename privacy sub-command to visibility by @marwan-at-work in #4533
  • gh browse relative path enhancement by @bchadwic in #4007
  • Add run cancel command by @cristiand391 in #3833
  • codespace: update cmd docs to match other commands by @josebalius in #4549
  • Bump github.com/creack/pty from 1.1.16 to 1.1.17 by @dependabot in #4552
  • codespace: fix Git status fields to snake case by @josebalius in #4551
  • Removing "friendly" machine name from prompt by @asciimike in #4538
  • feat: add GPG key management commands by @owenvoke in #3822
  • gh cs cp: copy files between local/remote file systems by @adonovan in #4553
  • gh cs cp: disable remote shell expansion unless -e flag by @adonovan in #4564
  • People doesn't want to publish release when specify -d option by @Sixeight in #4542
  • gh repo delete by @meiji163 in #4451
  • Support github.localhost as a non-enterprise host by @joshmgross in #4523
  • Prevent repeating GET parameters when paginating with api command by @mislav in #4559
  • Declare that the delete repo endpoint needs delete_repo scope by @mislav in #4566
  • Fix copy/paste mistake in docs by @stdtom in #4582
  • gh cs cp: report error if no filename is remote by @adonovan in #4577
  • codespace: progress indicator, stdlib logger by @josebalius in #4555
  • feat(codespaces): added pagination to list subcmd by @Shanduur in #4516
  • dispatch binary extensions directly by @vilmibm in #4568
  • Add FlagErrorf; encapsulate FlagError.error by @adonovan in #4584
  • fixing numbering in releasing docs for consistency. by @dhiemaz in #4586
  • Fixing docs numbering by @dhiemaz in #4587
  • Make branch input optional in codespace create by @mislav in #4594
  • Add export functionality to codespace commands by @mislav in #4591
  • Remove unnecessary pointers to Go maps by @mislav in #4605
  • Update help text codespaces code command by @srivatsn in #4608
  • Publish codespace commands by @mislav in #4606
  • Bump bluemonday to silence the security alert by @mislav in #4607
  • Fix stack overflow in AddJSONFlags by @rsteube in #4614
  • Fix rendering issue in "formatting" help topic by @pbnj in #4661
  • Adds a timeout context to the ssh waiter to prevent indefinite hanging by @reybard in #4635
  • fix branch flag on browse within dir by @bstncartwright in #4676
  • gh repo rename by @pxrth9 in #4450
  • codespace: Rename errors from Live Share to generic codespace by @josebalius in #4705
  • Overhaul manual pages for the web by @mislav in #4675
  • Fix CODEOWNERS for codespaces by @mislav in #4728
  • Don't use gpg in Debian instruction by @TobiX in #4610
  • Add prebuild availability status to create codespaces by @adnamalin in #4737
  • fix binary extensions on windows by @vilmibm in #4717
  • rewrite gh repo create by @meiji163 in #4578
  • binary extension migration by @vilmibm in #4588
  • add base repo resolution to archive by @meiji163 in #4654
  • add base repo resolution to gh repo delete by @meiji163 in #4655
  • fix angle brackets in man pages by @meiji163 in #4752
  • Add idle_timeout_minutes as possible cs create param by @reybard in #4741
  • Support listing and removing user Codespaces secrets by @joshmgross in #4714
  • Support setting user Codespaces secrets by @joshmgross in #4699
  • encode gh browse output url by @bchadwic in #4663
  • Confirm name change before creating a repo with special characters by @bchadwic in #4562
  • update help for magic type conversion #4365 by @signalwerk in #4434
  • Replace shurcool/graphql with cli/shurcool-graphql by @samcoe in #4750
  • Escape workflow information when generating URLs by @samcoe in #4760
  • Remove the default value from idle-timeout by @reybard in #4756
  • Inherit API endpoint configuration from the Codespaces environment by @marwan-at-work in #4723
  • Improve queries in issue commands: no overfetching, support PR arguments by @mislav in #4794
  • Bump github.com/mattn/go-colorable from 0.1.11 to 0.1.12 by @dependabot in #4804
  • [Bug fix] gh pr merge fails to delete remote branch if $PWD is not a git repository by @pxrth9 in #4769
  • Fix up bug in RemoveEntry and add tests for config_map by @samcoe in #4784
  • Fix codespace code command under WSL by @mislav in #4747
  • Don't swallow duplicate key error by @despreston in #4807
  • Improve issue view re: overfetching, PR support by @mislav in #4803
  • some automation by @vilmibm in #4810
  • [Bug Fix] PR merge should, after switching branches, pull by @pxrth9 in #4748
  • Adding gh release download for .zip and .tar.gz by @lpessoa in #4489
  • make extension create binary aware by @vilmibm in #4718
  • Extensions create nail_care by @mislav in #4802
  • Bump github.com/itchyny/gojq from 0.12.5 to 0.12.6 by @dependabot in #4832
  • pr diff color output fixes by @mislav in #4833
  • Ignore scope suggestions for http 422 by @despreston in #4809
  • Add gh config list by @meiji163 in #4729
  • Add new flag --no-store to print the encoded secret in "secret set" by @sguzmanm in #4423
  • Generate Go 1.17-style go:build directives by @mislav in #4838
  • feat(3796): add cmd for setting up gh-cli as git cred helper by @despreston in #4246
  • gh cs cp --help: fix typo by @adonovan in #4842
  • gist view: fix missing files shorthand by @rsteube in #4847
  • pr view: ensure that PR reviews are always rendered in --comments mode by @mislav in #4848
  • api: handle HTTP 409 error message from the server by @mislav in #4862
  • Add --generate-notes flag to gh release create command. by @Sixeight in #4467
  • Iss 3987 interactive gh create release by @sguzmanm in #4525
  • fix race condition when updating labels by @despreston in #4861
  • gh repo edit by @g14a in #4318
  • allow users to open up the last commit of a repository while using repo override flag by @bchadwic in #4845
  • Fix repo create regressions by @mislav in #4904
  • Made check symbol for cancelled uniform across commands by @bchadwic in #4850
  • upgrade local extension and up-to-date are not failures by @tisonkun in #4857
  • Update StateDir comment to mention XDG_STATE_HOME. by @simi in #4920
  • Add --json export flag for workflow runs by @cristiand391 in #3869
  • docs: Installation instructions for pkgsrc by @bsiegert in #4931
  • Unconditionally resolve "ssh.github.com" to "github.com" by @mislav in #4938
  • Bump spinner to 1.18.0 by @mislav in #4937
  • Bump Cobra to 1.3.0 by @mislav in #4936
  • Refresh man pages by @mislav in #4939
  • Allow editing commit subject when squash-merging a PR by @cristiand391 in #3344
  • fix: #4263 show open prs only on default branch by @AyushRawal in #4285
  • Adding set secrets from env files by @lpessoa in #4534
  • repo sync: Use the new merge-upstream API if available by @mislav in #4942

New in GitHub CLI 2.4.0 (Dec 21, 2021)

  • NEW FEATURES:
  • Add repo edit command by @g14a in #4318
  • release create: add --generate-notes functionality by @Sixeight in #4467
  • release create: add interactive mode to choose a tag name by @sguzmanm in #4525
  • pr merge: allow editing commit subject by @cristiand391 in #3344
  • secret set: allow importing secrets from a dotenv file by @lpessoa in #4534
  • run list/view: add --json export functionality by @cristiand391 in #3869
  • Refresh man pages by @mislav in #4939
  • Add installation instructions for pkgsrc by @bsiegert in #4931
  • FIXES:
  • pr view: ensure that PR reviews are always rendered in --comments mode by @mislav in #4848
  • api: handle HTTP 409 error message from the server by @mislav in #4862
  • issue edit: fix race condition when updating labels by @despreston in #4861
  • browse: support --commit with the repo override flag by @bchadwic in #4845
  • repo create: fix printing repo URL in no-TTY mode by @mislav in #4904
  • repo sync: use the new merge-upstream API if available by @mislav in #4942
  • run: display and treat "Cancelled" status as a failure by @bchadwic in #4850
  • extension upgrade: an already up-to-date extension should not a produce a failure by @tisonkun in #4857
  • Avoid showing non-open PRs as related to the default branch by @AyushRawal in #4285
  • git remotes: fix treating ssh.github.com as a github.com host by @mislav in #4938
  • Bump Cobra to 1.3.0 for improved completion support by @mislav in #4936
  • Bump spinner to 1.18.0 by @mislav in #4937
  • NEW CONTRIBUTIONS:
  • @tisonkun made their first contribution in #4857
  • @simi made their first contribution in #4920
  • @bsiegert made their first contribution in #4931
  • @AyushRawal made their first contribution in #4285

New in GitHub CLI 2.3.0 (Dec 3, 2021)

  • Precompiled extensions:
  • We've made a significant change to gh's extension system. Now, extension authors can work in a precompiled language like Go and ship pre-compiled binaries of their extensions via release assets.
  • We've added scaffolding and helpers to make it a first class experience when working in Go, though of course any compiled binaries will work just fine as long as they are uploaded to a release with the expected naming scheme.
  • To assist with releasing precompiled extensions (Go or otherwise), we've created an action that helps automates the building and release process.
  • To get started, run gh extension create.
  • fix binary extensions on windows by @vilmibm in #4717
  • binary extension migration by @vilmibm in #4588
  • make extension create binary aware by @vilmibm in #4718
  • Extensions create nail_care by @mislav in #4802
  • go-gh:
  • We've open sourced a small Go library called go-gh. Its goal is to make it easer for extension authors to take advantage of some gh features directly in Go code. Check out the repository to learn more or watch the precompiled extension demo.
  • New repo create interface:
  • The gh repo create command now has distinct usages for creating a repository from scratch and creating one from a local git repository.
  • Create a new repository on GitHub from scratch and clone it locally with
  • $ gh repo create myrepo --public --clone
  • Upload an existing local repository with
  • $ gh repo create myrepo --source=path/to/repo --public
  • Breaking Changes:
  • gh repo create will not behave differently inside a local git repository.
  • gh repo create will only prompt interactively when run with no arguments. Otherwise, all arguments should be passed explicitly.
  • For more information, see gh help repo create:
  • rewrite gh repo create by @meiji163 in #4578
  • Codespaces updates:
  • Fix codespace code command under WSL by @mislav in #4747
  • Inherit API endpoint configuration from the Codespaces environment by @marwan-at-work in #4723
  • Remove the default value from idle-timeout by @reybard in #4756
  • Support listing and removing user Codespaces secrets by @joshmgross in #4714
  • Support setting user Codespaces secrets by @joshmgross in #4699
  • Add idle_timeout_minutes as possible cs create param by @reybard in #4741
  • Adds a timeout context to the ssh waiter to prevent indefinite hanging by @reybard in #4635
  • Rename errors from Live Share to generic codespace by @josebalius in #4705
  • Add prebuild availability status to create codespaces by @adnamalin in #4737
  • Other new features:
  • Add command gh auth setup-git for setting up gh-cli as git cred helper by @despreston in #4246
  • Add gh config list by @meiji163 in #4729
  • Add new flag --no-store to print the encoded secret in "secret set" by @sguzmanm in #4423
  • Adding gh release download for .zip and .tar.gz by @lpessoa in #4489
  • gh repo rename by @pxrth9 in #4450
  • Bugfixes:
  • Ignore scope suggestions for http 422 by @despreston in #4809
  • pr diff color output fixes by @mislav in #4833
  • PR merge should, after switching branches, pull by @pxrth9 in #4748
  • Don't swallow duplicate ssh key error by @despreston in #4807
  • gh pr merge fails to delete remote branch if $PWD is not a git repository by @pxrth9 in #4769
  • Fix up bug in RemoveEntry and add tests for config_map by @samcoe in #4784
  • Escape workflow information when generating URLs by @samcoe in #4760
  • Confirm name change before creating a repo with special characters by @bchadwic in #4562
  • encode gh browse output url by @bchadwic in #4663
  • add base repo resolution to archive by @meiji163 in #4654
  • add base repo resolution to gh repo delete by @meiji163 in #4655
  • Fix stack overflow in AddJSONFlags by @rsteube in #4614
  • Fix rendering issue in "formatting" help topic by @pbnj in #4661
  • fix branch flag on browse within dir by @bstncartwright in #4676
  • Docs, developer, and performance improvements:
  • Generate Go 1.17-style go:build directives by @mislav in #4838
  • Bump github.com/itchyny/gojq from 0.12.5 to 0.12.6 by @dependabot in #4832
  • some automation by @vilmibm in #4810
  • Improve issue view re: overfetching, PR support by @mislav in #4803
  • Improve queries in issue commands: no overfetching, support PR arguments by @mislav in #4794
  • Bump github.com/mattn/go-colorable from 0.1.11 to 0.1.12 by @dependabot in #4804
  • Replace shurcool/graphql with cli/shurcool-graphql by @samcoe in #4750
  • update help for magic type conversion #4365 by @signalwerk in #4434
  • fix angle brackets in man pages by @meiji163 in #4752
  • Overhaul manual pages for the web by @mislav in #4675
  • Fix CODEOWNERS for codespaces by @mislav in #4728
  • Don't use gpg in Debian instruction by @TobiX in #4610
  • Bump bluemonday to silence the security alert by @mislav in #4607
  • New Contributors:
  • @pbnj made their first contribution in #4661
  • @reybard made their first contribution in #4635
  • @bstncartwright made their first contribution in #4676
  • @TobiX made their first contribution in #4610
  • @adnamalin made their first contribution in #4737
  • @signalwerk made their first contribution in #4434
  • @lpessoa made their first contribution in #4489
  • @sguzmanm made their first contribution in #4423

New in GitHub CLI 2.2.0 (Oct 27, 2021)

  • WHAT'S NEW:
  • Add repo delete command by @meiji163 in #4451
  • Add run cancel command by @cristiand391 in #3833
  • Add gpg-key management commands by @owenvoke in #3822
  • Support logging in to github.localhost by @joshmgross in #4523
  • WHAT'S CHANGED:
  • browse: respect the current working directory for file arguments by @bchadwic in #4007
  • release create: respect the --draft flag in interactive mode by @Sixeight in #4542
  • api: avoid repeating GET parameters when paginating by @mislav in #4559
  • The progress spinner is now visible against a light background #4556
  • Dispatch binary extensions directly by @vilmibm in #4568
  • Fix copy/paste mistake in docs by @stdtom in #4582
  • New Contributors:
  • @nickfyson made their first contribution in #4529
  • @asciimike made their first contribution in #4538
  • @owenvoke made their first contribution in #3822
  • @Sixeight made their first contribution in #4542
  • @joshmgross made their first contribution in #4523
  • @stdtom made their first contribution in #4582
  • @dhiemaz made their first contribution in #4586

New in GitHub CLI 2.1.0 (Oct 15, 2021)

  • NEW FEATURES:
  • Add repo archive command by @pxrth9 & @meiji163 in #4410
  • Add support for precompiled extensions by @vilmibm in #4308 #4373
  • If an extension repository publishes Releases with uploaded binary assets named with a suffix formatted like {OS}-{ARCH} (e.g. linux-amd64), the matching binary will be downloaded and installed as the extension instead of cloning the code from the extension repository.
  • pr list: add --draft, --non-draft, and --head filters by @SiarheiFedartsou in #4316 #4279
  • pr diff: add --patch flag by @m4ver1k in #4460
  • browse: add --commit flag to open the permalink for the latest commit by @bchadwic in #3950
  • FIXES:
  • api: add docs hint on how to use use stdin by @rethab in #4291
  • pr checks/run: revised "pending" and "skipped" symbols by @bchadwic in #4090
  • pr checkout: also set pushRemote for new branches by @RasmusWL in #4363
  • extension list: speed up checking for updates by @samcoe in #4396
  • extension install: document installing using a full URL by @wrslatz in #4271
  • extension create: use /usr/bin/env bash instead of /bin/bash in generated shebang by @kidonng in #4203
  • browse: add support for line ranges browse by @despreston in #4253
  • browse: fix markdown files with line ranges by @andrewhsu in #4310
  • repo garden: use the x/term package instead of shelling out to stty by @mislav in #4214
  • repo sync: allow user input for git fetch by @samcoe in #4328
  • repo create: avoid swallowing error from a prompt by @mislav in #4331
  • Skip authentication requirement for internal completion commands by @cuonglm in #4189
  • Add quotes around @me in documentation to ensure examples work in PowerShell by @Jernik in #4239
  • Suggest to re-authenticate to fix "SAML enforcement" error by @mislav in #4241
  • Print warning when limit exceeds search API maximum by @despreston in #3967
  • Add git+https to the list of supported git remote URL protocols by @danburzo in #4347
  • Fix detecting the current gh executable in PATH by @wilso199 in #4243
  • Bump Survey library to fix the "Unexpected escape sequence" error by @mislav in #4405
  • Warn about missing OAuth scopes when printing HTTP 4xx errors by @mislav in #4513
  • New Contributors:
  • cuonglm made their first contribution in #4189
  • Jernik made their first contribution in #4239
  • wrslatz made their first contribution in #4271
  • andrewhsu made their first contribution in #4299
  • SiarheiFedartsou made their first contribution in #4316
  • danburzo made their first contribution in #4347
  • rethab made their first contribution in #4291
  • RasmusWL made their first contribution in #4363
  • geramirez made their first contribution in #4439
  • lcnzg made their first contribution in #4412
  • m4ver1k made their first contribution in #4460
  • neil465 made their first contribution in #4473
  • dependabot made their first contribution in #4475
  • Shanduur made their first contribution in #4453
  • pxrth9 made their first contribution in #4410
  • adonovan made their first contribution in #4504
  • alefranz made their first contribution in #4507
  • marwan-at-work made their first contribution in #4497

New in GitHub CLI 2.0.0 (Aug 24, 2021)

  • NEW FEATURES:
  • Support for command extensions:
  • GitHub CLI extensions are additional gh commands that you can install from other repositories. For example:
  • $ gh extension install owner/gh-my-extension
  • # invoke the new command
  • $ gh my-extension
  • For more information, see gh help extension.
  • OTHER ADDITIONS:
  • Display label colors in issue list output #4106
  • Add --template helper functions for rendering data into tables #3519
  • Add GH_FORCE_TTY to enable terminal-style output even when redirected #4146
  • Add pr checkout --branch flag to control the branch name #4005
  • Add release create --discussion-category flag #4003
  • Add gh config set browser option and GH_BROWSER environment variable #3992
  • Add gh repo list --topic filter #4136
  • Add PowerShell instructions to completion help #4114
  • FIXES:
  • Improve accessibility of interactive select menus #4172
  • Improve detection of truecolor terminal capabilities #4106
  • Avoid wrapping issues in powershell.exe #4106
  • Detect missing git and abort early during auth login flow #4109
  • Fix HTTP 502 error printing from GraphQL responses #4154
  • REMOVALS:
  • Require Go 1.16+ #4175
  • Remove backwards compatibility with homedir library for config files #4145

New in GitHub CLI 1.14.0 (Aug 13, 2021)

  • FEATURES:
  • Improve shell completion #4028
  • Enable --json flag completion with multiple comma-separated fields
  • Add completion for repo create --gitignore flag
  • Add completion for repo create --license flag
  • Switch to Cobra's improved bash completion with descriptions
  • Enable descriptions in PowerShell completion #4085
  • Add completion of -R/--repo flag based on available git remotes #3942
  • Add pr merge --admin flag to allow admins to force-merge a pull request #4071
  • FIXES:
  • Fix authenticating with GH_ENTERPRISE_TOKEN and GH_HOST environment variables #4019
  • Fix labels display in issue list output #4079
  • Fix printing certain GraphQL errors #4087