Skip to content

Pretty-print gh api output when using --jq#7236

Merged
mislav merged 2 commits intocli:trunkfrom
mjpieters:jq_pretty_print
Apr 25, 2023
Merged

Pretty-print gh api output when using --jq#7236
mislav merged 2 commits intocli:trunkfrom
mjpieters:jq_pretty_print

Conversation

@mjpieters
Copy link
Contributor

@mjpieters mjpieters commented Mar 27, 2023

When connected to a TTY, pretty-print the output produced by --jq and allow for it to be colorized.

Demos

With gh issues --json ... (select first three issues with labels, outputting the number, title, and label names):
Untitled 5
With gh api (selecting first three open PRs with labels and requested reviewers, outputting their number, title, and the labels and reviewer names):
Untitled 3
Fixes #3994.

@mjpieters mjpieters requested a review from a team as a code owner March 27, 2023 14:23
@mjpieters mjpieters requested review from vilmibm and removed request for a team March 27, 2023 14:23
@cliAutomation cliAutomation added the external pull request originating outside of the CLI core team label Mar 27, 2023
@mjpieters
Copy link
Contributor Author

Note: This PR can't be merged until cli/go-gh#116 has been merged and released, at which point the temporary go.mod replace referencing the code from that PR can be removed and the github.com/cli/go-gh version needs updating.

Copy link
Contributor

@mislav mislav left a comment

Choose a reason for hiding this comment

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

Thanks, this looks good, but I would propose making this change minimal and avoiding unnecessary functional changes.

When connected to a TTY, tell the jq formatter to indent the output, and
enable colorization of the output if the terminal supports it.
@mislav mislav enabled auto-merge (squash) April 25, 2023 13:18
@mislav mislav merged commit 530002e into cli:trunk Apr 25, 2023
@mjpieters mjpieters deleted the jq_pretty_print branch April 25, 2023 14:52
renovate bot referenced this pull request in scottames/dots Apr 29, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [aquaproj/aqua-registry](https://togithub.com/aquaproj/aqua-registry)
| minor | `v3.158.0` -> `v3.159.0` |
| [cli/cli](https://togithub.com/cli/cli) | minor | `v2.27.0` ->
`v2.28.0` |
| [weaveworks/eksctl](https://togithub.com/weaveworks/eksctl) | minor |
`v0.138.0` -> `v0.139.0` |

---

### Release Notes

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

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

[Compare
Source](https://togithub.com/aquaproj/aqua-registry/compare/v3.158.1...v3.159.0)


[Issues](https://togithub.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av3.159.0)
| [Pull
Requests](https://togithub.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av3.159.0)
| aquaproj/aqua-registry@v3.158.0...v3.159.0

#### 🎉 New Packages


[#&#8203;11807](https://togithub.com/aquaproj/aqua-registry/issues/11807)
[kubecfg/kubecfg](https://togithub.com/kubecfg/kubecfg): A tool for
managing complex enterprise Kubernetes environments as code

[#&#8203;11808](https://togithub.com/aquaproj/aqua-registry/issues/11808)
[loov/goda](https://togithub.com/loov/goda): Go Dependency Analysis
toolkit

#### Fixes


[#&#8203;11806](https://togithub.com/aquaproj/aqua-registry/issues/11806)
solidiquis/erdtree: Follow up changes of erdtree v2.0.0

https://github.com/solidiquis/erdtree/releases/tag/v2.0.0

> Perhaps the most important change to note is that the compiled binary
has been renamed from et to erd in order to address the following issue
> regarding name collisions with other programs
>
> -
[https://github.com/solidiquis/erdtree/issues/23](https://togithub.com/solidiquis/erdtree/issues/23)

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

[Compare
Source](https://togithub.com/aquaproj/aqua-registry/compare/v3.158.0...v3.158.1)


[Issues](https://togithub.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av3.158.1)
| [Pull
Requests](https://togithub.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av3.158.1)
| aquaproj/aqua-registry@v3.158.0...v3.158.1

#### Fixes


[#&#8203;11790](https://togithub.com/aquaproj/aqua-registry/issues/11790)
Follow up changes of cli/cli v2.28.0
[@&#8203;kyontan](https://togithub.com/kyontan)

GitHub's CLI (cli/cli) changed format for macOS to zip (from tar.gz)
since v2.28.0

See https://github.com/cli/cli/releases/tag/v2.28.0 for details.

</details>

<details>
<summary>cli/cli</summary>

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

[Compare Source](https://togithub.com/cli/cli/compare/v2.27.0...v2.28.0)

#### What's New

-   macOS binaries are now signed and notarized
- ⚠️ 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
[@&#8203;heaths](https://togithub.com/heaths) in
[https://github.com/cli/cli/pull/7259](https://togithub.com/cli/cli/pull/7259)

- Add `gh org list` by
[@&#8203;joshkraft](https://togithub.com/joshkraft) in
[https://github.com/cli/cli/pull/7257](https://togithub.com/cli/cli/pull/7257)

- `ssh-key`: add ability to manage signing keys by
[@&#8203;kousikmitra](https://togithub.com/kousikmitra) in
[https://github.com/cli/cli/pull/7270](https://togithub.com/cli/cli/pull/7270)

- `search`: enable owner flag to take multiple values by
[@&#8203;kousikmitra](https://togithub.com/kousikmitra) in
[https://github.com/cli/cli/pull/7305](https://togithub.com/cli/cli/pull/7305)

- `codespace`: add `--web` flag for `list` & `create` commands by
[@&#8203;doaortu](https://togithub.com/doaortu) in
[https://github.com/cli/cli/pull/7288](https://togithub.com/cli/cli/pull/7288)

- Our Debian & RPM packages now ship with shell completion scripts by
[@&#8203;Xerkus](https://togithub.com/Xerkus) in
[https://github.com/cli/cli/pull/7293](https://togithub.com/cli/cli/pull/7293)

- `run list`: add `--event` and `--created` filters by
[@&#8203;cawfeecake](https://togithub.com/cawfeecake) in
[https://github.com/cli/cli/pull/7363](https://togithub.com/cli/cli/pull/7363)
[https://github.com/cli/cli/pull/7352](https://togithub.com/cli/cli/pull/7352)

- `repo`: add `visibility` JSON field by
[@&#8203;yeikel](https://togithub.com/yeikel) in
[https://github.com/cli/cli/pull/7337](https://togithub.com/cli/cli/pull/7337)

#### What's Changed

- Fix typo in `cs stop` command: `Stoppping` -> `Stopping` by
[@&#8203;FalseDev](https://togithub.com/FalseDev) in
[https://github.com/cli/cli/pull/7318](https://togithub.com/cli/cli/pull/7318)
- Update go-gh to v2 by [@&#8203;samcoe](https://togithub.com/samcoe) in
[https://github.com/cli/cli/pull/7299](https://togithub.com/cli/cli/pull/7299)
- `auth login`: normalize host name by
[@&#8203;tuananhlai](https://togithub.com/tuananhlai) in
[https://github.com/cli/cli/pull/6999](https://togithub.com/cli/cli/pull/6999)
- build(deps): bump github.com/cenkalti/backoff/v4 from 4.2.0 to 4.2.1
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/cli/cli/pull/7323](https://togithub.com/cli/cli/pull/7323)
- Clarify how SSH keys are selected for `gh codespace ssh` by
[@&#8203;jkeech](https://togithub.com/jkeech) in
[https://github.com/cli/cli/pull/7325](https://togithub.com/cli/cli/pull/7325)
- Initialize deployment.yml workflow file by
[@&#8203;mislav](https://togithub.com/mislav) in
[https://github.com/cli/cli/pull/7328](https://togithub.com/cli/cli/pull/7328)
- Fix `gh cs ports` requiring `sudo` for privileged port numbers by
[@&#8203;cmbrose](https://togithub.com/cmbrose) in
[https://github.com/cli/cli/pull/7326](https://togithub.com/cli/cli/pull/7326)
- Correct some typos by [@&#8203;goggle](https://togithub.com/goggle) in
[https://github.com/cli/cli/pull/7342](https://togithub.com/cli/cli/pull/7342)
- Diacritics substitution in prompt by
[@&#8203;benjlevesque](https://togithub.com/benjlevesque) in
[https://github.com/cli/cli/pull/7205](https://togithub.com/cli/cli/pull/7205)
- gh: move `CODEOWNERS` inside the `.github/` dir by
[@&#8203;SauravMaheshkar](https://togithub.com/SauravMaheshkar) in
[https://github.com/cli/cli/pull/7366](https://togithub.com/cli/cli/pull/7366)
- Pretty-print gh api output when using --jq by
[@&#8203;mjpieters](https://togithub.com/mjpieters) in
[https://github.com/cli/cli/pull/7236](https://togithub.com/cli/cli/pull/7236)

#### New Contributors

- [@&#8203;joshkraft](https://togithub.com/joshkraft) made their first
contribution in
[https://github.com/cli/cli/pull/7257](https://togithub.com/cli/cli/pull/7257)
- [@&#8203;kousikmitra](https://togithub.com/kousikmitra) made their
first contribution in
[https://github.com/cli/cli/pull/7270](https://togithub.com/cli/cli/pull/7270)
- [@&#8203;doaortu](https://togithub.com/doaortu) made their first
contribution in
[https://github.com/cli/cli/pull/7288](https://togithub.com/cli/cli/pull/7288)
- [@&#8203;FalseDev](https://togithub.com/FalseDev) made their first
contribution in
[https://github.com/cli/cli/pull/7318](https://togithub.com/cli/cli/pull/7318)
- [@&#8203;tuananhlai](https://togithub.com/tuananhlai) made their first
contribution in
[https://github.com/cli/cli/pull/6999](https://togithub.com/cli/cli/pull/6999)
- [@&#8203;goggle](https://togithub.com/goggle) made their first
contribution in
[https://github.com/cli/cli/pull/7342](https://togithub.com/cli/cli/pull/7342)
- [@&#8203;Xerkus](https://togithub.com/Xerkus) made their first
contribution in
[https://github.com/cli/cli/pull/7293](https://togithub.com/cli/cli/pull/7293)
- [@&#8203;cawfeecake](https://togithub.com/cawfeecake) made their first
contribution in
[https://github.com/cli/cli/pull/7363](https://togithub.com/cli/cli/pull/7363)
- [@&#8203;yeikel](https://togithub.com/yeikel) made their first
contribution in
[https://github.com/cli/cli/pull/7337](https://togithub.com/cli/cli/pull/7337)
- [@&#8203;SauravMaheshkar](https://togithub.com/SauravMaheshkar) made
their first contribution in
[https://github.com/cli/cli/pull/7366](https://togithub.com/cli/cli/pull/7366)
- [@&#8203;mjpieters](https://togithub.com/mjpieters) made their first
contribution in
[https://github.com/cli/cli/pull/7236](https://togithub.com/cli/cli/pull/7236)

**Full Changelog**: cli/cli@v2.27.0...v2.28.0

</details>

<details>
<summary>weaveworks/eksctl</summary>

###
[`v0.139.0`](https://togithub.com/weaveworks/eksctl/releases/tag/v0.139.0):
eksctl 0.139.0 (permalink)

[Compare
Source](https://togithub.com/weaveworks/eksctl/compare/0.138.0...0.139.0)

### Release v0.139.0

#### 🚀 Features

- Security Policy for eksctl project
([#&#8203;6541](https://togithub.com/weaveworks/eksctl/issues/6541))

#### 🐛 Bug Fixes

- Fix flux version validation
([#&#8203;6530](https://togithub.com/weaveworks/eksctl/issues/6530))

#### 📝 Documentation

- Fix empty info block on Default Addon Upgrades page
([#&#8203;6524](https://togithub.com/weaveworks/eksctl/issues/6524))
- Update installation instructions
([#&#8203;6376](https://togithub.com/weaveworks/eksctl/issues/6376))
- AWS Private link support for fully private cluster
([#&#8203;6408](https://togithub.com/weaveworks/eksctl/issues/6408))

#### Acknowledgments

Weaveworks would like to sincerely thank:
[@&#8203;thezanke](https://togithub.com/thezanke), and
[@&#8203;yuxiang-zhang](https://togithub.com/yuxiang-zhang)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

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

---

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

---

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

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS41OC4yIiwidXBkYXRlZEluVmVyIjoiMzUuNjMuMSJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
jtpetty pushed a commit that referenced this pull request May 22, 2023
When connected to a TTY, tell the jq formatter to indent the output, and
enable colorization of the output if the terminal supports it.

Co-authored-by: Mislav Marohnić <mislav@github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

external pull request originating outside of the CLI core team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support pretty-printing and colorizing JSON responses for the api command when using jq expressions

3 participants