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 |
-d , --detailed |
Optional | Boolean |
-b , --branch |
Optional | String |
--remote |
Optional | String |
-r , --repo |
Optional | String |
-S , --state |
Optional | [open , closed ] |
-u , --user |
Optional | String |
-
Shortcut for listing open pulls requests for the current branch.
gh pr ```
-
List open pulls requests for all branches from all your repositories.
gh pr --list --all ```
-
List open pulls requests with link and content.
gh pr --list --detailed ```
-
List open pulls requests for a branch.
gh pr --list --branch master ```
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 |
-
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 --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
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 |
-
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 for 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 |
---|---|---|
-N , --new |
Required | String |
-c , --content |
Optional | String |
-d , --description |
Optional | String |
-p , --private |
Optional | Boolean |
-P , --paste |
Optional | Boolean |
-
Create a Gist
foo.js
pasting the contents of your clipboard.
gh gi --new foo.js --paste ```
-
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 ```
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
).
-
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" ```
-
GitHub data filled once you log in.
"github_token": "", "github_user": "" ```
-
Automate tasks to be runned 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
lint
andtest
tasks.
grunt watch ```
-
Shortcut for
jshint
andmochaTest
tasks.
grunt ```
Node GH is maintained by these guys and some awesome contributors.
Eduardo Lundgren | Zeno Rocha |
If you want to fix bugs or add new features you'll need to run in development environment.
- Remove the installed version from NPM:
npm rm -g gh
- Go to the package folder and create a symlink:
npm link
Contribute new commands to this project by copying and editing the content of Hello World example.
Check Release list.