# github-url-from-git

> Parse a github git url and return the github repo url

Latest version **1.5.0** (published 2016-11-27) · MIT license · 0 weekly downloads

## Install

```sh
npm install github-url-from-git
pnpm add github-url-from-git
yarn add github-url-from-git
bun add github-url-from-git
```

## Health

**Score 23/100 (F)** — status: abandoned.

Positive: has types package; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.5.0 |
| Published | 2016-11-27 |
| First published | 2013-04-06 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | separate (@types/github-url-from-git) |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 62 |
| Author | TJ Holowaychuk |
| Maintainers | tjholowaychuk, bcoe |
| Keywords | github, git, url, parser |

## Links

- npm: https://www.npmjs.com/package/github-url-from-git
- Repository: https://github.com/visionmedia/node-github-url-from-git
- Homepage: https://github.com/visionmedia/node-github-url-from-git#readme
- Issues: https://github.com/visionmedia/node-github-url-from-git/issues
- npm.io page: https://npm.io/package/github-url-from-git

## Alternatives

- [babylon](https://npm.io/package/babylon.md) — 5.1M weekly downloads
- [csscolorparser](https://npm.io/package/csscolorparser.md) — 3.7M weekly downloads
- [expr-eval-fork](https://npm.io/package/expr-eval-fork.md) — 1.5M weekly downloads
- [@leeoniya/ufuzzy](https://npm.io/package/@leeoniya/ufuzzy.md) — 247.7K weekly downloads
- [xml-parser](https://npm.io/package/xml-parser.md) — 78.4K weekly downloads

## Recent versions

- 1.5.0 (latest) — 2016-11-27
- 1.4.0 — 2014-08-21
- 1.3.0 — 2014-07-31
- 1.2.0 — 2014-07-15
- 1.1.1 — 2013-04-23
- 1.1.0 — 2013-04-20
- 1.0.0 — 2013-04-06
- 0.0.1 — 2013-04-06

## README

# 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
    )
  })
})
```

---
_Source: https://npm.io/package/github-url-from-git · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
