blob: da3d78ed25cab9a9792aec2b4e5e3be9188c13e9 (
plain)
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
|
# normalize-git-url
You have a bunch of Git URLs. You want to convert them to a canonical
representation, probably for use inside npm so that it doesn't end up creating
a bunch of superfluous cached origins. You use this package.
## Usage
```javascript
var ngu = require('normalize-git-url');
var normalized = ngu("git+ssh://git@github.com:organization/repo.git#hashbrowns")
// get back:
// {
// url : "ssh://git@github.com/organization/repo.git",
// branch : "hashbrowns" // did u know hashbrowns are delicious?
// }
```
## API
There's just the one function, and all it takes is a single parameter, a non-normalized Git URL.
### normalizeGitUrl(url)
* `url` {String} The Git URL (very loosely speaking) to be normalized.
Returns an object with the following format:
* `url` {String} The normalized URL.
* `branch` {String} The treeish to be checked out once the repo at `url` is
cloned. It doesn't have to be a branch, but it's a lot easier to intuit what
the output is for with that name.
## Limitations
Right now this doesn't try to special-case GitHub too much -- it doesn't ensure
that `.git` is added to the end of URLs, it doesn't prefer `https:` over
`http:` or `ssh:`, it doesn't deal with redirects, and it doesn't try to
resolve symbolic names to treeish hashcodes. For now, it just tries to account
for minor differences in representation.
|