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	[email protected]:hotoo/gitopen.git (fetch)
origin	[email protected]: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 [email protected]: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.

About

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

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •