mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.3 KiB
41 lines
1.3 KiB
10 years ago
|
# 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.
|