gh
Setup
macOS:
brew install gh
Linux:
apt install gh
Verify installation:
gh --version
Always use --json <fields> flag when calling commands programmatically.
Authentication
gh auth login
Check auth status:
gh auth status
Resources
Repos
| Command | Description |
|---|---|
gh repo list |
List your repositories |
gh repo list <owner> |
List repos for a user or org |
gh repo create <name> --public |
Create a new public repo |
gh repo create <name> --private |
Create a new private repo |
gh repo clone <owner/repo> |
Clone a repository |
gh repo view <owner/repo> |
View repo details |
gh repo fork <owner/repo> |
Fork a repository |
gh repo delete <owner/repo> --yes |
Delete a repository |
Pull Requests
| Command | Description |
|---|---|
gh pr list |
List open pull requests |
gh pr list --state all |
List all pull requests |
gh pr create --title "Fix" --body "Description" |
Create a pull request |
gh pr view <number> |
View pull request details |
gh pr checkout <number> |
Check out a pull request locally |
gh pr merge <number> |
Merge a pull request |
gh pr merge <number> --squash |
Squash merge a pull request |
gh pr close <number> |
Close a pull request |
gh pr review <number> --approve |
Approve a pull request |
gh pr diff <number> |
View pull request diff |
gh pr checks <number> |
View CI checks status |
Issues
| Command | Description |
|---|---|
gh issue list |
List open issues |
gh issue create --title "Bug" --body "Description" |
Create an issue |
gh issue view <number> |
View issue details |
gh issue close <number> |
Close an issue |
gh issue reopen <number> |
Reopen an issue |
gh issue comment <number> --body "Comment" |
Add a comment |
gh issue edit <number> --add-label bug |
Add label to issue |
Releases
| Command | Description |
|---|---|
gh release list |
List releases |
gh release create v1.0.0 |
Create a release |
gh release create v1.0.0 --generate-notes |
Create release with auto-generated notes |
gh release view <tag> |
View release details |
gh release download <tag> |
Download release assets |
gh release delete <tag> |
Delete a release |
Workflows and Runs
| Command | Description |
|---|---|
gh workflow list |
List workflows |
gh workflow run <name> |
Trigger a workflow |
gh run list |
List recent workflow runs |
gh run view <id> |
View run details |
gh run watch <id> |
Watch a run in progress |
gh run rerun <id> |
Rerun a workflow run |
Gists
| Command | Description |
|---|---|
gh gist list |
List your gists |
gh gist create file.txt |
Create a gist from a file |
gh gist create --public file.txt |
Create a public gist |
gh gist view <id> |
View a gist |
gh gist edit <id> |
Edit a gist |
API
| Command | Description |
|---|---|
gh api repos/{owner}/{repo} |
Make a GET request to the GitHub API |
gh api repos/{owner}/{repo}/issues --method POST --field title="Bug" |
Make a POST request |
gh api graphql -f query='{ viewer { login } }' |
Make a GraphQL query |
Global Flags
| Flag | Description |
|---|---|
--json <fields> |
Output specific fields as JSON |
--jq <expression> |
Filter JSON output with jq |
--repo <owner/repo> |
Specify target repository |
--limit <n> |
Limit number of results |
--web |
Open in browser |