All the power of GitHub in your terminal.
- Install
- Usage
- Dependencies
- Demonstration
- Available commands
- Config
- Plugins
- Tasks
- Team
- Contributing
- History
- License
[sudo] npm install -g gh
gh [command] [payload] [--flags]
In order to sucessfully run this project you must have NodeJS installed.
gh help
-
List all comands options.
gh help --all ```
-
List specific command options.
gh help ```
gh pull-request
Alias:
gh pr
| Option | Usage | Type |
|---|---|---|
-l, --list |
Required | Boolean |
-a, --all |
Optional | Boolean |
-m, --me |
Optional | Boolean |
-d, --detailed |
Optional | Boolean |
--direction |
Optional | [asc, desc] |
-b, --branch |
Optional | String |
--remote |
Optional | String |
-r, --repo |
Optional | String |
--sort |
Optional | [created, updated, popularity, long-running, complexity] |
-S, --state |
Optional | [open, closed] |
-u, --user |
Optional | String |
-
Shortcut for listing open pull requests for the current repository.
gh pr ```
-
List open pulls requests for all branches from all your repositories.
gh pr --list --all ```
-
List open pull requests sent by logged user on current repository.
gh pr --list --me ```
-
List open pull requests with link and content.
gh pr --list --detailed ```
-
List open pull requests for a branch.
gh pr --list --branch master ```
-
List open pull requests and sort them by popularity (comment count).
gh pr --list --sort popularity ```
-
List open pull requests and sort them by asc long-running (old but still active).
gh pr --list --sort long-running --direction asc ```
-
List open pull requests and sort them by complexity (complexity is calculated based on number of additions, deletions, changed files, comments and review comments).
gh pr --list --sort complexity ```
| Option | Usage | Type |
|---|---|---|
-f, --fetch |
Required | Boolean |
-n, --number |
Required | Number |
-M, --merge |
Optional | Boolean |
-R, --rebase |
Optional | Boolean |
--remote |
Optional | String |
-r, --repo |
Optional | String |
-u, --user |
Optional | String |
-
Shortcut for fetching pull request and checkout into a new branch
pull-1.
gh pr 1 ```
-
Fech pull request rebasing or merging into the current branch.
gh pr 1 --fetch --rebase
gh pr 1 --fetch --merge
```
| Option | Usage | Type |
|---|---|---|
-M, --merge |
Required | Boolean |
-R, --rebase |
Required | Boolean |
-n, --number |
Optional | Number |
-b, --branch |
Optional | String |
--remote |
Optional | String |
-r, --repo |
Optional | String |
-u, --user |
Optional | String |
Omitting --number will try to guess the pull number from branch name e.g. pr-1 results in --number 1. Omitting --branch will merge or rebase into config.default_branch.
-
Merge or rebase pull request into a branch.
gh pr 1 --fetch --merge ```
```
gh pr 1 --fetch --rebase ```
-
Merge or rebase pull request into branch
dev.
gh pr 1 --fetch --rebase --branch dev ```
```
gh pr 1 --fetch --merge --branch dev ```
| Option | Usage | Type |
|---|---|---|
-c, --comment |
Required | String |
-n, --number |
Required | Number |
--remote |
Optional | String |
-r, --repo |
Optional | String |
-u, --user |
Optional | String |
-
Comment on a pull request.
gh pr 1 --comment "Merged, thank you!" ```
| Option | Usage | Type |
|---|---|---|
--fwd |
Required | String |
-n, --number |
Required | Number |
Omitting a value for --fwd fallbacks to the default_pr_forwarder key found
in your config file.
-
Forward a pull request to another reviewer.
gh pr 1 --fwd username ```
| Option | Usage | Type |
|---|---|---|
-o, --open |
Required | Boolean |
-C, --close |
Required | Boolean |
-n, --number |
Required | Number |
--remote |
Optional | String |
-r, --repo |
Optional | String |
-u, --user |
Optional | String |
-
Open a pull request.
gh pr 1 --open ```
-
Close a pull request.
gh pr 1 --close ```
-
Close multiple pull requests.
gh pr --close --number 1 --number 2 ```
-
Open multiple pull requests.
gh pr --open --number 1 --number 2 ```
-
Open or close a pull request that you've sent to someone.
gh pr 1 --close --user eduardolundgren ```
| Option | Usage | Type |
|---|---|---|
-s, --submit |
Required | String |
-b, --branch |
Optional | String |
-D, --description |
Optional | String |
-i, --issue |
Optional | Number |
-r, --repo |
Optional | String |
-t, --title |
Optional | String |
Omitting a value for --submit fallbacks to the default_pr_reviewer key found
in your config file. Omitting --title will submit a pull request
using the last commit message as title.
-
Submit a pull request using the current branch.
gh pr --submit eduardolundgren --title 'Fix #32' --description 'Awesome fix' ```
-
Submit a pull request using the current branch to dev branch.
gh pr --submit eduardolundgren --branch dev ```
-
Submit a pull request from a issue.
gh pr --submit eduardolundgren --issue 150 ```
| Option | Usage | Type |
|---|---|---|
-B, --browser |
Required | Boolean |
-n, --number |
Required | Number |
-u, --user |
Optional | String |
-r, --repo |
Optional | String |
-
Open GitHub pull request page in the browser.
gh pr 100 --browser ```
gh notification
Alias:
gh nt
| Option | Usage | Type |
|---|---|---|
-l, --latest |
Required | Boolean |
--remote |
Optional | String |
-r, --repo |
Optional | String |
-u, --user |
Optional | String |
-
Shortcut for displaying the latest activities on the current repository.
gh nt ```
-
Display the latest activities on a certain repository.
gh nt --latest --user eduardolundgren --repo node-gh ```
| Option | Usage | Type |
|---|---|---|
-w, --watch |
Required | Boolean |
--remote |
Optional | String |
-r, --repo |
Optional | String |
-u, --user |
Optional | String |
-
Watch for any activity on the current repository.
gh nt --watch ```
-
Watch for any activity on a certain repository.
gh nt --watch --user eduardolundgren --repo node-gh ```
gh issue
Alias:
gh is
| Option | Usage | Type |
|---|---|---|
-N, --new |
Required | Boolean |
-t, --title |
Required | String |
-A, --assignee |
Optional | String |
-L, --label |
Optional | String |
-m, --message |
Optional | String |
--remote |
Optional | String |
-r, --repo |
Optional | String |
-u, --user |
Optional | String |
-
Shortcut for creating a new issue on the current repository.
gh is 'Node GH rocks!' 'Body with Markdown support' ```
-
Create a new issue on a certain repository.
gh is --new --title 'Node GH rocks!' --message 'Body with Markdown support' --user eduardolundgren --repo node-gh ```
-
Create a new issue with labels.
gh is --new --title 'Node GH rocks!' --label bug,question,test ```
-
Create a new issue and assign it to someone.
gh is --new --title 'Node GH rocks!' --assignee zenorocha ```
| Option | Usage | Type |
|---|---|---|
-c, --comment |
Required | String |
-n, --number |
Required | Number |
--remote |
Optional | String |
-r, --repo |
Optional | String |
-u, --user |
Optional | String |
-
Comment on an issue of the current repository.
gh is 1 --comment 'Node GH rocks!' ```
-
Comment on an issue of a certain repository.
gh is 1 --comment 'Node GH rocks!' --user eduardolundgren --repo node-gh ```
| Option | Usage | Type |
|---|---|---|
-o, --open |
Required | Boolean |
-C, --close |
Required | Boolean |
-n, --number |
Required | Number |
--remote |
Optional | String |
-r, --repo |
Optional | String |
-u, --user |
Optional | String |
-
Open an issue.
gh is 1 --open ```
-
Close an issue.
gh is 1 --close ```
-
Close multiple issues.
gh is --close --number 1 --number 2 ```
-
Open multiple issues.
gh is --open --number 1 --number 2 ```
-
Open or close an issue that you've sent to someone.
gh is 1 --close --user eduardolundgren ```
| Option | Usage | Type |
|---|---|---|
-l, --list |
Required | Boolean |
-a, --all |
Optional | Boolean |
-A, --assignee |
Optional | String |
-d, --detailed |
Optional | Boolean |
-L, --label |
Optional | String |
-M, --milestone |
Optional | Number |
--remote |
Optional | String |
-r, --repo |
Optional | String |
-S, --state |
Optional | [open, closed] |
-u, --user |
Optional | String |
-
Shortcut for listing all issues on the current repository.
gh is ```
-
List all issues from all repositories.
gh is --list --all ```
-
List issues assigned to someone.
gh is --list --assignee zenorocha ```
-
List issues with link and content.
gh is --list --detailed ```
-
List only closed issues on the current repository.
gh is --list --state closed ```
-
List issues filtered by milestone.
gh is --list --milestone 1 ```
-
List issues that contains labels
todoandbug.
gh is --list --label todo,bug ```
-
List all issues on a certain repository.
gh is --list --user eduardolundgren --repo node-gh ```
| Option | Usage | Type |
|---|---|---|
-B, --browser |
Required | Boolean |
-n, --number |
Required | Number |
-u, --user |
Optional | String |
-r, --repo |
Optional | String |
-
Open GitHub issue page in the browser.
gh is 100 --browser ```
gh repo
Alias:
gh re
| Option | Usage | Type |
|---|---|---|
-B, --browser |
Required | Boolean |
-u, --user |
Optional | String |
-r, --repo |
Optional | String |
-
Shortcut for opening the GitHub repository page in the browser.
gh re ```
-
Open GitHub repository page in the browser.
gh re --browser --user eduardolundgren --repo node-gh ```
| Option | Usage | Type |
|---|---|---|
-l, --list |
Required | Boolean |
-d, --detailed |
Optional | Boolean |
-u, --user |
Optional | String |
-t, --type |
Optional | [all, owner, public, private, member] |
-
List all repositories.
gh re --list ```
-
List all private repositories.
gh re --list --type private ```
-
List all repositories from someone.
gh re --list --user zenorocha ```
| Option | Usage | Type |
|---|---|---|
-N, --new |
Required | String |
-c, --clone |
Optional | Boolean |
-t, --type |
Optional | [private] |
--init |
Optional | Boolean |
--gitignore |
Optional | String |
--homepage |
Optional | String |
--description |
Optional | String |
-
Create a new GitHub repository and clone on the current directory.
gh re --new foo --clone ```
-
Create a new GitHub repository using .gitignore template for Ruby.
gh re --new gemified --gitignore Ruby ```
-
Create a new private repository on GitHub, initializing it with a initial commit of the README.
gh re --new foo --init --type private ```
| Option | Usage | Type |
|---|---|---|
-f, --fork |
Required | String |
-u, --user |
Required | String |
-O, --organization |
Optional | Boolean |
-
Fork a GitHub repository.
gh re --fork repo --user user ```
-
Fork a GitHub repository into the node-gh organization.
gh re --fork repo --user user --organization node-gh ```
| Option | Usage | Type |
|---|---|---|
-D, --delete |
Required | String |
-u, --user |
Required | String |
-
Delete a repository of the logged user.
gh re --delete foo ```
gh gists
Alias:
gh gi
| Option | Usage | Type |
|---|---|---|
-B, --browser |
Required | Boolean |
-u, --user |
Optional | String |
-i, --id |
Optional | String |
-
Shortcut for opening your Gists in the browser.
gh gi ```
-
Open a Gist in the browser.
gh gi --browser --id 5991877 ```
| Option | Usage | Type |
|---|---|---|
-l, --list |
Required | Boolean |
-u, --user |
Optional | String |
-
List all gists.
gh gi --list ```
-
List all gists from someone.
gh gi --list --user brunocoelho ```
| Option | Usage | Type |
|---|---|---|
-N, --new |
Required | String |
-c, --content |
Optional | String |
-d, --description |
Optional | String |
-p, --private |
Optional | Boolean |
-P, --paste |
Optional | Boolean |
-
Create a Gist
foo.jspasting the contents of your clipboard.
gh gi --new foo.js --paste ```
-
Create a Gist
hellocontaining "Hello World".
gh gi --new hello --content "Hello World!" ```
-
Create a private Gist
hellocontaining "Hello World".
gh gi --new hello --content "Hello World!" --private ```
| Option | Usage | Type |
|---|---|---|
-f, --fork |
Required | String |
-
Fork a Gist.
gh gi --fork 5444883 ```
| Option | Usage | Type |
|---|---|---|
-D, --delete |
Required | String |
-
Delete a Gist.
gh gi --delete 4252323 ```
-
Delete multiple Gists.
gh gi --delete 4252321 --delete 4252322 ```
gh user
Alias:
gh us
| Option | Usage | Type |
|---|---|---|
-l, --login |
Required | Boolean |
-L, --logout |
Required | Boolean |
-
Login or show current logged in GitHub user.
gh user --login ```
-
Logout current GitHub account.
gh user --logout ```
| Option | Usage | Type |
|---|---|---|
-w, --whoami |
Required | Boolean |
-
Prints your username to stdout.
gh user --whoami ```
gh alias
Alias:
gh al
| Option | Usage | Type |
|---|---|---|
-l, --list |
Required | Boolean |
-
Shortcut for listing aliases.
gh alias ```
-
List aliases.
gh alias --list ```
| Option | Usage | Type |
|---|---|---|
-a, --add |
Required | String |
-u, --user |
Required | String |
-
Create alias for username.
gh alias --add zeno --user zenorocha ```
| Option | Usage | Type |
|---|---|---|
-r, --remove |
Required | String |
-
Remove alias.
gh alias --remove zeno ```
There are some pretty useful configurations that you can set on .gh.json.
This file can be found under home directory (on MacOSx: /Users/yourName/.gh.json on Windows: C:\\Users\yourName\.gh.json).
You can also set per-project configurations by adding a .gh.json file in your project's root folder and overriding existing keys.
-
GitHub API configurations. Change it if you're a GitHub Enterprise user.
"api": { "host": "api.github.com", "protocol": "https", "version": "3.0.0" } ```
-
Set default branch and remote.
"default_branch": "master", "default_remote": "origin" ```
-
Set default users when submitting or forwarding pull requests.
"default_pr_forwarder": "", "default_pr_reviewer": "" ```
-
GitHub data filled once you log in.
"github_token": "", "github_user": "" ```
-
Run automated tasks before or after a certain command.
"hooks": { "pull-request": { "merge": { "before": [{"cmd": "ls -la", "log": true}], "after": [ "gh pr {{options.number}} --comment 'Thank you, pull request merged :D'" ] } } } ```
-
Run automated tasks passing arguments to the commands. Required for prompt commands.
"hooks": { "pull-request": { "merge": { "before": [{"cmd": "foo", "args": ["bar", "qux"]}] } } } ```
-
Set default branch name prefix for PR fetching.
"pull_branch_name_prefix": "pr-" ```
-
Insert signature below issue comment.
"signature": " Sent from GH."
```
- GH Gif - A plugin for commenting on pull requests/issues using GIF reactions.
- GH Travis - A plugin for integrating Travis, a continous integration server.
- GH Jira - A plugin for integrating Jira, an issue management system.
Feel free to create your own plugins by forking GH Boilerplate.
-
Bump package version, create tag, commit and push.
grunt bump # v0.0.1 grunt bump:minor # v0.1.0 grunt bump:major # v1.0.0 ```
-
Run JSBeautifier, a tool to format code.
grunt format ```
-
Run JSHint, a tool to detect errors and potential problems.
grunt lint ```
-
Run Mocha, a unit test framework.
grunt test ```
-
Watch for changes and run
lintandtesttasks.
grunt watch ```
-
Shortcut for
jshintandmochaTesttasks.
grunt ```
Node GH is maintained by these guys and some awesome contributors.
| Eduardo Lundgren | Zeno Rocha | Henrique Vicente | Bruno Coelho |
For detailed instructions, check Contributing.
For detailed changelog, check Releases.