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 |
-O , --org |
Optional | String |
-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 --all --org github ```
-
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
pr-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 , String ] |
--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
todo
andbug
.
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 |
- Shortcut for opening GitHub issue page in the browser.
gh is 100 ```
-
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 |
--organization |
Optional | 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 for an organization.
gh re --new foo --organization node-gh ```
-
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 |
-
Create a Gist
hello
containing "Hello World".
gh gi --new hello --content "Hello World!" ```
-
Create a private Gist
hello
containing "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", "pathPrefix": null } ```
-
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."
```
If you need to use a custom git command, set the environment variable GH_GIT_COMMAND
.
- 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.
lint
Detect errors on the code or its style using JSHint and JSCHcomplexity
Show code complexity analysis summaryplato
Create advanced code complexity static analysis in HTMLunit
Run unit tests and create code coverage report in HTMLtest
Run all code quality toolscoverage-report
Open code coverage reportplato-report
Open code complexity and static analysis reportwatch
Watch for any changes and run linting and tests
Node GH is maintained by these guys and some awesome contributors.
Eduardo Lundgren | Zeno Rocha | Henrique Vicente | Bruno Coelho |
For detailed instructions, check Contributing. Don't miss the source code reports.
For detailed changelog, check Releases.