githuburl

Parse a github repo url into an object of repo information and convert to several types of clone URL.

Usage no npm install needed!

<script type="module">
  import githuburl from 'https://cdn.skypack.dev/githuburl';
</script>

README

githuburl NPM version Build Status Dependency Status

Utitiles to parse a github repo url to

  • an object of repo information.
  • transfer into different types of clone urls
  • convert into a link to the project.

Installation

$ npm install githuburl --save

Usage

var gu = require('githuburl');
var str = 'git@github.com:kaelzhang/node-githuburl.git'
// `str` could be either a scp-like syntax ssh url(as above), or http(s) url or something else.

gu(str);

Then we will get:

{
  user: 'kaelzhang',
  repo: 'node-githuburl',
  ssh_user: 'git',
  host: 'github.com',
  
  // Actually the properties below are all getters,
  // which you need not to concern about the performance.
  http_href: 'http://github.com/kaelzhang/node-githuburl',
  https_href: 'https://github.com/kaelzhang/node-githuburl',
  http_clone_url: 'http://github.com/kaelzhang/node-githuburl.git',
  https_clone_url: 'https://github.com/kaelzhang/node-githuburl.git',
  ssh_clone_url: 'git@github.com:kaelzhang/node-githuburl.git',
  git_clone_url: 'git://github.com/kaelzhang/node-githuburl.git' 
}

Also prepared for complex cases

Which you don't need to worry about.

var str = 'https://vip_account@abc.github.com/kaelzhang/node-githuburl.git';
var parsed = gu(str, true);

parsed.ssh_user;
// -> 'vip_account';

parsed.host;
// -> 'abc.github.com'

gu(str)

  • str String could be either a scp-like syntax ssh url(as above), or http(s) url or something else.

Returns Object the parsed object.