1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
# github-url-from-git
```js
describe('parse(url)', function () {
it('should support git://*', function () {
var url = 'git://github.com/jamesor/mongoose-versioner'
parse(url).should.equal('https://github.com/jamesor/mongoose-versioner')
})
it('should support git://*.git', function () {
var url = 'git://github.com/treygriffith/cellar.git'
parse(url).should.equal('https://github.com/treygriffith/cellar')
})
it('should support https://*', function () {
var url = 'https://github.com/Empeeric/i18n-node'
parse(url).should.equal('https://github.com/Empeeric/i18n-node')
})
it('should support https://*.git', function () {
var url = 'https://jpillora@github.com/banchee/tranquil.git'
parse(url).should.equal('https://github.com/banchee/tranquil')
})
it('should return undefined on failure', function () {
var url = 'git://github.com/justgord/.git'
assert(parse(url) == null)
})
it('should parse git@github.com:bcoe/thumbd.git', function () {
var url = 'git@github.com:bcoe/thumbd.git'
parse(url).should.eql('https://github.com/bcoe/thumbd')
})
it('should parse git@github.com:/bcoe/thumbd.git', function () {
var url = 'git@github.com:/bcoe/thumbd.git'
parse(url).should.eql('https://github.com/bcoe/thumbd')
})
it('should parse git@github.com:bcoe/thumbd.git#2.7.0', function () {
var url = 'git@github.com:bcoe/thumbd.git#2.7.0'
parse(url).should.eql('https://github.com/bcoe/thumbd')
})
it('should parse git+https://github.com/bcoe/thumbd.git', function () {
var url = 'git+https://github.com/bcoe/thumbd.git'
parse(url).should.eql('https://github.com/bcoe/thumbd')
})
it('should parse git+ssh://github.com/bcoe/thumbd.git', function () {
var url = 'git+ssh://github.com/bcoe/thumbd.git'
parse(url).should.eql('https://github.com/bcoe/thumbd')
})
it('should parse https://EastCloud@github.com/EastCloud/node-websockets.git', function () {
var url = 'https://EastCloud@github.com/EastCloud/node-websockets.git'
parse(url).should.eql('https://github.com/EastCloud/node-websockets')
})
// gist urls.
it('should parse git@gist urls', function () {
var url = 'git@gist.github.com:3135914.git'
parse(url).should.equal('https://gist.github.com/3135914')
})
it('should parse https://gist urls', function () {
var url = 'https://gist.github.com/3135914.git'
parse(url).should.equal('https://gist.github.com/3135914')
})
// Handle arbitrary GitHub Enterprise domains.
it('should parse parse extra GHE urls provided', function () {
var url = 'git://github.example.com/treygriffith/cellar.git'
parse(
url, {extraBaseUrls: ['github.example.com']}
).should.equal('https://github.example.com/treygriffith/cellar')
})
it('should parse GHE urls with multiple subdomains', function () {
var url = 'git://github.internal.example.com/treygriffith/cellar.git'
parse(
url, {extraBaseUrls: ['github.internal.example.com']}
).should.equal('https://github.internal.example.com/treygriffith/cellar')
})
})
describe('re', function () {
it('should expose GitHub url parsing regex', function () {
parse.re.source.should.equal(
/^(?:https?:\/\/|git:\/\/|git\+ssh:\/\/|git\+https:\/\/)?(?:[^@]+@)?(gist.github.com|github.com)(?::\/?|\/)([^/]+\/[^/]+?|[0-9]+)$/.source
)
})
})
```
|