npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

gitopen

v3.3.0

Published

Open git remote url in web browser from terminal.

Downloads

84

Readme

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:

Thank you.