Skip to content

hotoo/gitopen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gitopen

NPM version Build status Coveralls status

Open git/hg/svn remote url in web browser from terminal.

demo

Support:

  • Mac OS X
  • Windows
  • Linux/Unix

,

  • git
  • hg
  • svn

and

If you are use GitBucket, tell me please.

Install

$ npm install -g gitopen

Usage

$ git remote -v
origin	git@github.com:hotoo/gitopen.git (fetch)
origin	git@github.com:hotoo/gitopen.git (push)
$ git branch
* master
$ cd subdir

$ gitopen                       # Open git repository homepage, like: https://github.com/hotoo/gitopen
$ gitopen :master               # Open git repository on given branch name.
$ gitopen -b master             # Same the `:master`
$ gitopen issues                # https://github.com/hotoo/gitopen/issues
$ gitopen #1                    # https://github.com/hotoo/gitopen/issues/1
$ gitopen pr                    # New a pull-request
$ gitopen !1                    # Open merge/pull request by id.
$ gitopen prs                   # https://github.com/hotoo/gitopen/pulls, alias `pulls`, `mrs`.
$ gitopen wiki                  # Open wiki pages.
$ gitopen release               # Open releases page.
$ gitopen tags                  # Open tags page.
$ gitopen commits               # Open commits page.
$ gitopen brs                   # Open branches page, alias `branchs` and `branches`.
$ gitopen {hash}                # Open commit page by hash code.

$ gitopen README.md             # Open remote blob url. default use current working branch.
$ gitopen README.md -b branch   # Open remote blob url by given branch.
$ gitopen README.md :branch     # Open remote blob url by given branch.
$ gitopen path/to/dir           # Open remote tree url. default use current working branch.

# global command.
$ gitopen @lizzie               # https://github.com/lizzie
$ gitopen @hotoo/gitopen        # https://github.com/hotoo/gitopen

Configuration

Default support github.com, bitbucket.org, gitlab.com, gitea.com, gitcafe.com, coding.net, gitee.com, AntCode and CSDN gitcode.com.

If you are use GitHub Enterprise, GitLab Community Edition (CE), GitLab Enterprise Edition (EE), Atlassian Stash, GitCafe Enterprise You need config in ~/.gitconfig file:

[gitopen "github.company.com"]
	type = github
	protocol = https
[gitopen "gitlab.company.net"]
	type = gitlab
	protocol = http

You can config it by git command-line:

; global
$ git config --global gitopen.github.company.com.type github
$ git config --global gitopen.github.company.com.protocol https

; set local repo default remote name.
$ git remote add gitlabRemote git@gitlab.com:hotoo/gitopen.git
$ git config gitopen.remote gitlabRemote

Also you can config it in ~/.gitopenrc file for global settings:

github.company.com:
  type: github
  protocol: https
gitlab.company.net:
  type: gitlab
  protocol: http
  • github.company.com, gitlab.company.net is your company's git web server domain name.
    • type is the type of your company's git web server, support github, gitlab, gitbucket, gitea, coding, gitee, gitcode, antcode.
    • protocol: protocol of your company's git web server, http or https.

Else if you are using other custom web system build your owner git server, you need config like:

git.example.com:
  type: custom
  protocol: http
  scheme:
    issues: /path/to/issues
    wiki: /path/to/wikis
    more: [reference to github scheme](./lib/scheme/github.js)
    ...

You can git alias in ~/.gitconfig:

[alias]
  open = !gitopen

Then you can use command like:

$ git open

gitopen Commands

$ gitopen

Open git repository homepage.

$ gitopen issues

Open git repository issues list page.

$ gitopen issue [title]

Open new issue with title (optional).

$ gitopen #1

Open git repository issue by id.

$ gitopen pulls

Open git repository pulls list page.

$ gitopen pull [branch-name]

Open pull request or merge request from given branch or current working branch for git repository.

alias:

  • $ gitopen pr
  • $ gitopen mr

for example:

$ gitopen pr        # current working branch to compare default branch.
$ gitopen pr a      # given branch(a) to compare default branch.
$ gitopen pr a b    # branch b to compare branch a.
$ gitopen pr a...b  # branch b to compare branch a.

$ gitopen !1

Open git repository pull request or merge request by id.

alias:

  • $ gitopen pr1
  • $ gitopen mr#1

support @, /, #, :, - or without sparator.

$ gitopen blame path/to/file

Open file blame information page.

$ gitopen commits

Open git repository commits list page.

alias:

  • $ gitopen commit
  • $ gitopen ci

$ gitopen {hash}

Open commit page by hash code.

$ gitopen wiki

Open git repository wiki home page.

alias:

  • $ gitopen wikis

$ gitopen tags

Open git repository tags list page.

alias:

  • $ gitopen tag

$ gitopen milestones

Open git repository milestones list page.

$ gitopen milestones@id

Open git repository milestones by given id.

alias:

  • $ gitopen milestone@id

support @, /, #, :, - sparator.

$ gitopen milestone

Open new milestone for git.

$ gitopen releases

Open git repository releases list page.

alias:

  • $ gitopen release

$ gitopen release new [tag-name]

Open new release by tag name.

$ gitopen release edit

Edit release by tag name.

$ gitopen filename [--branch ]

Open given file on given branch, default use current working branch.

alias:

  • $ gitopen filename :branch
  • $ gitopen filename -b branch

$ gitopen directory [--branch ]

Open given directory on given branch, default use current working branch.

alias:

  • $ gitopen directory :branch
  • $ gitopen directory -b branch

$ gitopen snippet

[LOCAL COMMAND] Open new snippet.

[GLOBAL COMMAND] Open https://gist.github.com/

alias:

  • $ gitopen snip
  • $ gitopen gist

$ gitopen network

Open network page.

$ gitopen @profile

[GLOBAL COMMAND] Open profile page on GitHub.

$ gitopen @profile/repository-name

[GLOBAL COMMAND] Open given repository homepage on GitHub.

hgopen Commands

Support all of gitopen in repository local commands (not support global commands), like:

  • $ hgopen open homepage.
  • $ hgopen issues open issues list page.
  • $ hgopen #id op issues by id.
  • ...

svnopen Commands

$ svnopen

Open svn repository on current working directory.

Options

-p, --path

Specify file/directory path, default is current working directory.

If you want open a file or directory name is reserved words, like issues and pr, you can use --path option instead.

$ gitopen -p issues
$ gitopen --path pr

-b, --branch

Specify git/hg branch name, default is current working branch.

-r, --remote

Specify git remote name, default is origin.

-v, --verbose

Display detail information for debug.

FAQ

xdg-open: not found in Linux

sudo apt-get install xdg-utils --fix-missing

License

MIT

Donate

If this tool is useful for you, please Star this repository.

And maybe you want to donate me via Alipay / WeChat:

Alipay:hotoo.cn@gmail.com, WeChat:hotoome

Thank you.