github-url-to-object

Extract user, repo, and other interesting properties from GitHub URLs

github-url-to-object

A module for node.js and browsers that extracts useful properties like user, repo, and branch from various flavors of GitHub URLs.

There's also a Bitbucket equivalent to this library: bitbucket-url-to-object.

Check out the demo at https://github-url-to-object.herokuapp.com.

For Node.js or Browserify usage:

npm install github-url-to-object --save

For bower usage:

bower install github-url-to-object

Pass whatever flavor of github URL you like:

var gh = require('github-url-to-object')
 
gh('github:monkey/business')
gh('https://github.com/monkey/business')
gh('https://github.com/monkey/business/tree/master')
gh('https://github.com/monkey/business/tree/master/nested/file.js')
gh('https://github.com/monkey/business.git')
gh('http://github.com/monkey/business')
gh('git://github.com/monkey/business.git')
gh('git+https://github.com/monkey/business.git')

Here's what you'll get:

{
  user: 'monkey',
  repo: 'business',
  branch: 'master',
  https_url: 'https://github.com/monkey/business',
  tarball_url: 'https://api.github.com/repos/monkey/business/tarball'
  travis_url: 'https://travis-ci.org/monkey/business',
  api_url: 'https://api.github.com/repos/monkey/business'
}

The shorthand form lets you specify a branch:

  gh('github:monkey/business#nachos')
{
  user: 'monkey',
  repo: 'business',
  branch: 'nachos',
  https_url: 'https://github.com/monkey/business/tree/nachos',
  tarball_url: 'https://api.github.com/repos/monkey/business/tarball/nachos',
  travis_url: 'https://travis-ci.org/monkey/business',
  api_url: 'https://api.github.com/repos/monkey/business'
}

If you provide a non-github URL or a falsy value, you'll get null.

npm install
npm test

MIT