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.
Rebecca Turner
5c36cfc843
|
9 years ago | |
---|---|---|
.. | ||
test | 9 years ago | |
.npmignore | 10 years ago | |
.travis.yml | 9 years ago | |
CHANGELOG.md | 10 years ago | |
LICENSE | 10 years ago | |
README.md | 10 years ago | |
normalize-git-url.js | 9 years ago | |
package.json | 9 years ago |
README.md
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
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 aturl
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.