mirror of
https://github.com/jbranchaud/til
synced 2026-09-02 17:51:47 +00:00
Compare commits
2
Commits
950e2f861a
...
c397e35ffd
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c397e35ffd | ||
|
|
bbb28fd811 |
@@ -10,7 +10,7 @@ working across different projects via [VisualMode](https://www.visualmode.dev/).
|
|||||||
|
|
||||||
For a steady stream of TILs, [sign up for my newsletter](https://visualmode.kit.com/newsletter).
|
For a steady stream of TILs, [sign up for my newsletter](https://visualmode.kit.com/newsletter).
|
||||||
|
|
||||||
_1800 TILs and counting..._
|
_1802 TILs and counting..._
|
||||||
|
|
||||||
See some of the other learning resources I work on:
|
See some of the other learning resources I work on:
|
||||||
|
|
||||||
@@ -470,6 +470,7 @@ If you've learned something here, support my efforts writing daily TILs by
|
|||||||
- [List PRs Awaiting Your Review](github/list-prs-awaiting-your-review.md)
|
- [List PRs Awaiting Your Review](github/list-prs-awaiting-your-review.md)
|
||||||
- [Open A PR To An Unforked Repo](github/open-a-pr-to-an-unforked-repo.md)
|
- [Open A PR To An Unforked Repo](github/open-a-pr-to-an-unforked-repo.md)
|
||||||
- [Open File To Specific Line In Browser](github/open-file-to-specific-line-in-browser.md)
|
- [Open File To Specific Line In Browser](github/open-file-to-specific-line-in-browser.md)
|
||||||
|
- [Process JSON Output From gh With jq](github/process-json-output-from-gh-with-jq.md)
|
||||||
- [Target Another Repo When Creating A PR](github/target-another-repo-when-creating-a-pr.md)
|
- [Target Another Repo When Creating A PR](github/target-another-repo-when-creating-a-pr.md)
|
||||||
- [Tell gh What The Default Repo Is](github/tell-gh-what-the-default-repo-is.md)
|
- [Tell gh What The Default Repo Is](github/tell-gh-what-the-default-repo-is.md)
|
||||||
|
|
||||||
@@ -2080,6 +2081,7 @@ If you've learned something here, support my efforts writing daily TILs by
|
|||||||
- [Send A Message To A Discord Channel](workflow/send-a-message-to-a-discord-channel.md)
|
- [Send A Message To A Discord Channel](workflow/send-a-message-to-a-discord-channel.md)
|
||||||
- [Send A PDF To Your Kindle](workflow/send-a-pdf-to-your-kindle.md)
|
- [Send A PDF To Your Kindle](workflow/send-a-pdf-to-your-kindle.md)
|
||||||
- [Set Recurring Reminders In Slack](workflow/set-recurring-reminders-in-slack.md)
|
- [Set Recurring Reminders In Slack](workflow/set-recurring-reminders-in-slack.md)
|
||||||
|
- [Show All Linear Keyboard Shortcuts](workflow/show-all-linear-keyboard-shortcuts.md)
|
||||||
- [Show Linting Errors In Zed](workflow/show-linting-errors-in-zed.md)
|
- [Show Linting Errors In Zed](workflow/show-linting-errors-in-zed.md)
|
||||||
- [Temporarily Hide CleanShot X Capture Previews](workflow/temporarily-hide-cleanshot-x-capture-previews.md)
|
- [Temporarily Hide CleanShot X Capture Previews](workflow/temporarily-hide-cleanshot-x-capture-previews.md)
|
||||||
- [Toggle Between Stories In Storybook](workflow/toggle-between-stories-in-storybook.md)
|
- [Toggle Between Stories In Storybook](workflow/toggle-between-stories-in-storybook.md)
|
||||||
|
|||||||
@@ -0,0 +1,58 @@
|
|||||||
|
# Process JSON Output From gh With jq
|
||||||
|
|
||||||
|
The `gh` (GitHub) CLI is useful for accessing data about your profile and
|
||||||
|
projects from the terminal. With the `--json` flag, we can access the data in a
|
||||||
|
structured way which is useful for scripting.
|
||||||
|
|
||||||
|
Here is an example of pulling a list of all my repositories, limiting each
|
||||||
|
entity to just the `nameWithOwner` and `description`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
❯ gh repo list --limit 1000 --json nameWithOwner,description
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"description": "My personal site -- joshbranchaud.com",
|
||||||
|
"nameWithOwner": "jbranchaud/personal-site"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Private repo for the NOTES.md of my TIL repo",
|
||||||
|
"nameWithOwner": "jbranchaud/til-notes-private"
|
||||||
|
},
|
||||||
|
...
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
If I'm using the `--json` flag, then I can add in the `--jq` flag to apply a
|
||||||
|
`jq` query for additional processing of the output.
|
||||||
|
|
||||||
|
Here I convert it to a series of tuples:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
❯ gh repo list --limit 1000 --json nameWithOwner,description \
|
||||||
|
--jq '.[] | [.nameWithOwner, .description]'
|
||||||
|
[
|
||||||
|
"jbranchaud/personal-site",
|
||||||
|
"My personal site -- joshbranchaud.com"
|
||||||
|
]
|
||||||
|
[
|
||||||
|
"jbranchaud/til-notes-private",
|
||||||
|
"Private repo for the NOTES.md of my TIL repo"
|
||||||
|
]
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
Then I can add one more pipe to that `jq` query to turn it into _tab-separated
|
||||||
|
values_ using
|
||||||
|
[`@tsv`](https://jqlang.org/manual/v1.5/#format-strings-and-escaping):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
❯ gh repo list --limit 1000 --json nameWithOwner,description \
|
||||||
|
--jq '.[] | [.nameWithOwner, .description] | @tsv'
|
||||||
|
jbranchaud/personal-site My personal site -- joshbranchaud.com
|
||||||
|
jbranchaud/til-notes-private Private repo for the NOTES.md of my TIL repo
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
This is useful because I can then pipe it to another program, such as an `fzf`
|
||||||
|
command like [this repo selector that opens the selected one in the
|
||||||
|
browser](https://github.com/jbranchaud/dotfiles/commit/f964ca10c6c4db3475411c2991dc2f1dfd18c818).
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
# Show All Linear Keyboard Shortcuts
|
||||||
|
|
||||||
|
Linear, the project management software, puts an incredible amount of attention
|
||||||
|
to detail into the UX and UI of their app. This includes making the app a power
|
||||||
|
tool for power users with tons of keyboard shortcuts.
|
||||||
|
|
||||||
|
I'm aware of some of Linear's keyboard shortcuts, but the discoverability of
|
||||||
|
many of them is tough.
|
||||||
|
|
||||||
|
A great way to list and browse through all of them right in the app is with
|
||||||
|
`Cmd+/`.
|
||||||
|
|
||||||
|
They are organized into sections that I can scroll through. There is also a
|
||||||
|
search box at the top of this _Keyboard Shortcuts_ panel where I can narrow down
|
||||||
|
the results to those that match a term.
|
||||||
|
|
||||||
|
A few that I'm finding immediately useful are:
|
||||||
|
|
||||||
|
- `gi` to go to my _Inbox_ in the current workspace
|
||||||
|
- `gm` to go to _My Issues_ in the current workspace
|
||||||
|
- `ow` to open a picker to switch between workspaces
|
||||||
|
|
||||||
|
Note: the _Keyboard Shortcuts_ panel lists many of the letter-based shortcuts as
|
||||||
|
being capitalized. I've found that these don't work when I hold shift. For that
|
||||||
|
reason, I've listed the above shortcuts with lowercase letters.
|
||||||
Reference in New Issue
Block a user