// convert git:// form url to github URL, e.g., // git://github.com/bcoe/foo.git // https://github.com/bcoe/foo. function githubUrlFromGit(url, opts){ try { var m = re(opts).exec(url.replace(/\.git(#.*)?$/, '')); var host = m[1]; var path = m[2]; return 'https://' + host + '/' + path; } catch (err) { // ignore } }; // generate the git:// parsing regex // with options, e.g., the ability // to specify multiple GHE domains. function re(opts) { opts = opts || {}; // whitelist of URLs that should be treated as GitHub repos. var baseUrls = ['gist.github.com', 'github.com'].concat(opts.extraBaseUrls || []); // build regex from whitelist. return new RegExp( /^(?:https?:\/\/|git:\/\/|git\+ssh:\/\/|git\+https:\/\/)?(?:[^@]+@)?/.source + '(' + baseUrls.join('|') + ')' + /[:\/]([^\/]+\/[^\/]+?|[0-9]+)$/.source ); } githubUrlFromGit.re = re(); module.exports = githubUrlFromGit;