gh

GitHub command line tools.

Node GH

All the power of GitHub in your terminal.

[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

OptionUsageType
-l, --listRequiredBoolean
-a, --allOptionalBoolean
-O, --orgOptionalString
-m, --meOptionalBoolean
-d, --detailedOptionalBoolean
--directionOptional[asc, desc]
-b, --branchOptionalString
--remoteOptionalString
-r, --repoOptionalString
--sortOptional[created, updated, popularity, long-running, complexity]
-S, --stateOptional[open, closed]
-u, --userOptionalString
  • 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 ```

OptionUsageType
-f, --fetchRequiredBoolean
-n, --numberRequiredNumber
-M, --mergeOptionalBoolean
-R, --rebaseOptionalBoolean
--remoteOptionalString
-r, --repoOptionalString
-u, --userOptionalString
  • 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 ```

OptionUsageType
-M, --mergeRequiredBoolean
-R, --rebaseRequiredBoolean
-n, --numberOptionalNumber
-b, --branchOptionalString
--remoteOptionalString
-r, --repoOptionalString
-u, --userOptionalString

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 ```

OptionUsageType
-c, --commentRequiredString
-n, --numberRequiredNumber
--remoteOptionalString
-r, --repoOptionalString
-u, --userOptionalString
  • Comment on a pull request.

gh pr 1 --comment "Merged, thank you!" ```

OptionUsageType
--fwdRequiredString
-n, --numberRequiredNumber

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 ```

OptionUsageType
-o, --openRequiredBoolean
-C, --closeRequiredBoolean
-n, --numberRequiredNumber
--remoteOptionalString
-r, --repoOptionalString
-u, --userOptionalString
  • 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 ```

OptionUsageType
-s, --submitRequiredString
-b, --branchOptionalString
-D, --descriptionOptionalString
-i, --issueOptionalNumber
-r, --repoOptionalString
-t, --titleOptionalString

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 ```

OptionUsageType
-B, --browserRequiredBoolean
-n, --numberRequiredNumber
-u, --userOptionalString
-r, --repoOptionalString
  • Open GitHub pull request page in the browser.

gh pr 100 --browser ```

gh notification

Alias: gh nt

OptionUsageType
-l, --latestRequiredBoolean
--remoteOptionalString
-r, --repoOptionalString
-u, --userOptionalString
  • 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 ```

OptionUsageType
-w, --watchRequiredBoolean
--remoteOptionalString
-r, --repoOptionalString
-u, --userOptionalString
  • 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

OptionUsageType
-N, --newRequiredBoolean
-t, --titleRequiredString
-A, --assigneeOptionalString
-L, --labelOptionalString
-m, --messageOptionalString
--remoteOptionalString
-r, --repoOptionalString
-u, --userOptionalString
  • 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 ```

OptionUsageType
-c, --commentRequiredString
-n, --numberRequiredNumber
--remoteOptionalString
-r, --repoOptionalString
-u, --userOptionalString
  • 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 ```

OptionUsageType
-o, --openRequiredBoolean
-C, --closeRequiredBoolean
-n, --numberRequiredNumber
--remoteOptionalString
-r, --repoOptionalString
-u, --userOptionalString
  • 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 ```

OptionUsageType
-l, --listRequiredBoolean
-a, --allOptionalBoolean
-A, --assigneeOptionalString
-d, --detailedOptionalBoolean
-L, --labelOptionalString
-M, --milestoneOptional[Number, String]
--remoteOptionalString
-r, --repoOptionalString
-S, --stateOptional[open, closed]
-u, --userOptionalString
  • 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 and bug.

gh is --list --label todo,bug ```

  • List all issues on a certain repository.

gh is --list --user eduardolundgren --repo node-gh ```

OptionUsageType
-B, --browserRequiredBoolean
-n, --numberRequiredNumber
-u, --userOptionalString
-r, --repoOptionalString
  • 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

OptionUsageType
-B, --browserRequiredBoolean
-u, --userOptionalString
-r, --repoOptionalString
  • 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 ```

OptionUsageType
-l, --listRequiredBoolean
-d, --detailedOptionalBoolean
-u, --userOptionalString
-t, --typeOptional[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 ```

OptionUsageType
-N, --newRequiredString
-c, --cloneOptionalBoolean
-t, --typeOptional[private]
--initOptionalBoolean
--gitignoreOptionalString
--homepageOptionalString
--descriptionOptionalString
  • 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 ```

OptionUsageType
-f, --forkRequiredString
-u, --userRequiredString
-O, --organizationOptionalBoolean
  • 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 ```

OptionUsageType
-D, --deleteRequiredString
-u, --userRequiredString
  • Delete a repository of the logged user.

gh re --delete foo ```

gh gists

Alias: gh gi

OptionUsageType
-B, --browserRequiredBoolean
-u, --userOptionalString
-i, --idOptionalString
  • Shortcut for opening your Gists in the browser.

gh gi ```

  • Open a Gist in the browser.

gh gi --browser --id 5991877 ```

OptionUsageType
-l, --listRequiredBoolean
-u, --userOptionalString
  • List all gists.

gh gi --list ```

  • List all gists from someone.

gh gi --list --user brunocoelho ```

OptionUsageType
-N, --newRequiredString
-c, --contentOptionalString
-d, --descriptionOptionalString
-p, --privateOptionalBoolean
  • 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 ```

OptionUsageType
-f, --forkRequiredString
  • Fork a Gist.

gh gi --fork 5444883 ```

OptionUsageType
-D, --deleteRequiredString
  • Delete a Gist.

gh gi --delete 4252323 ```

  • Delete multiple Gists.

gh gi --delete 4252321 --delete 4252322 ```

gh user

Alias: gh us

OptionUsageType
-l, --loginRequiredBoolean
-L, --logoutRequiredBoolean
  • Login or show current logged in GitHub user.

gh user --login ```

  • Logout current GitHub account.

gh user --logout ```

OptionUsageType
-w, --whoamiRequiredBoolean
  • Prints your username to stdout.

gh user --whoami ```

gh alias

Alias: gh al

OptionUsageType
-l, --listRequiredBoolean
  • Shortcut for listing aliases.

gh alias ```

  • List aliases.

gh alias --list ```

OptionUsageType
-a, --addRequiredString
-u, --userRequiredString
  • Create alias for username.

gh alias --add zeno --user zenorocha ```

OptionUsageType
-r, --removeRequiredString
  • 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.

"api": { "host": "api.github.com", "protocol": "https", "version": "3.0.0", "pathPrefix": null } ```

  • Set default branch and remote.

"default_branch": "master", "default_remote": "origin" ```

"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": "

:octocat: 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.

  • Run JSHint, a tool to detect errors and potential problems.

gulp lint ```

  • Run Mocha, a unit test framework, complexity analysis, and create coverage.

gulp test ```

  • Open code coverage report in HTML generated by the previous test task call.

gulp report

 
* Watch for changes and run `lint` and `test` tasks.
 
 ```
gulp watch
 ```
 
* Shortcut for `lint` and `test` tasks.
 
 ```
gulp
 ```
 
## Team
 
Node GH is maintained by these guys and some awesome [contributors](https://github.com/node-gh/gh/graphs/contributors).
 
[![Eduardo Lundgren](http://gravatar.com/avatar/42327de520e674a6d1686845b30778d0?s=70)](https://github.com/eduardolundgren/) | [![Zeno Rocha](http://gravatar.com/avatar/e190023b66e2b8aa73a842b106920c93?s=70)](https://github.com/zenorocha/) | [![Henrique Vicente](http://gravatar.com/avatar/5733fd332f2a0da11931e0e73ddfb20d?s=70)](https://github.com/henvic/) | [![Bruno Coelho](http://gravatar.com/avatar/1f90c690b534779560d3bfdb23772915?s=70)](https://github.com/brunocoelho/)
--- | --- | --- | ---
[Eduardo Lundgren](https://github.com/eduardolundgren/) | [Zeno Rocha](https://github.com/zenorocha/) | [Henrique Vicente](https://github.com/henvic/) | [Bruno Coelho](https://github.com/brunocoelho/)
 
## Contributing
 
For detailed instructions, check [Contributing](https://github.com/node-gh/gh/blob/master/CONTRIBUTING.md).
 
## History
 
For detailed changelog, check [Releases](https://github.com/node-gh/gh/releases).
 
## License
 
[BSD License](https://github.com/node-gh/gh/blob/master/LICENSE.md)