A high level git url parser for common git providers.
npm install bb-git-url-parse

![PayPal][paypal-donations]     
> A high level git url parser for common git providers.
``sh`
$ npm i --save git-url-parse
`js
// Dependencies
const GitUrlParse = require("git-url-parse");
console.log(GitUrlParse("git@github.com:IonicaBizau/node-git-url-parse.git"));
// => {
// protocols: []
// , port: null
// , resource: "github.com"
// , user: "git"
// , pathname: "/IonicaBizau/node-git-url-parse.git"
// , hash: ""
// , search: ""
// , href: "git@github.com:IonicaBizau/node-git-url-parse.git"
// , token: ""
// , protocol: "ssh"
// , toString: [Function]
// , source: "github.com"
// , name: "node-git-url-parse"
// , owner: "IonicaBizau"
// }
console.log(GitUrlParse("https://github.com/IonicaBizau/node-git-url-parse.git"));
// => {
// protocols: ["https"]
// , port: null
// , resource: "github.com"
// , user: ""
// , pathname: "/IonicaBizau/node-git-url-parse.git"
// , hash: ""
// , search: ""
// , href: "https://github.com/IonicaBizau/node-git-url-parse.git"
// , token: ""
// , protocol: "https"
// , toString: [Function]
// , source: "github.com"
// , name: "node-git-url-parse"
// , owner: "IonicaBizau"
// }
console.log(GitUrlParse("https://github.com/IonicaBizau/node-git-url-parse.git").toString("ssh"));
// => "git@github.com:IonicaBizau/node-git-url-parse.git"
console.log(GitUrlParse("git@github.com:IonicaBizau/node-git-url-parse.git").toString("https"));
// => "https://github.com/IonicaBizau/node-git-url-parse.git"
`
#### Params
- String url: The Git url to parse.
#### Return
- GitUrl The GitUrl object containing:protocols
- (Array): An array with the url protocols (usually it has one element).port
- (null|Number): The domain port.resource
- (String): The url domain (including subdomains).user
- (String): The authentication user (usually for ssh urls).pathname
- (String): The url pathname.hash
- (String): The url hash.search
- (String): The url querystring value.href
- (String): The input url.protocol
- (String): The git url protocol.token
- (String): The oauth token (could appear in the https urls).source
- (String): The Git provider (e.g. "github.com").owner
- (String): The repository owner.name
- (String): The repository name.full_name
- (String): The owner and name values in the owner/name format.toString
- (Function): A function to stringify the parsed url into another url type.organization
- (String): The organization the owner belongs to. This is CloudForge specific.
object.#### Params
- GitUrl
obj: The parsed Git url object.
- String type: The type of the stringified url (default obj.protocol).#### Return
- String The stringified url.
:yum: How to contribute
Have an idea? Found a bug? See [how to contribute][contributing].:dizzy: Where is this library used?
If you are using this library in one of your projects, add it in this list. :sparkles:autorelease-setup (by Tyler Johnson)—A CLI tool for setting up a repository with autorelease.
- branch-release (by Roman Hotsiy)—Build and tag package realease on a separate branch
- documentation (by Tom MacWright)—a documentation generator
- download-repo-cli (by EGOIST)—CLI tool to download GitHub repo.
- generator-nm-bti (by Tyler Johnson)—Scaffold out a node module, Beneath the Ink style.
- git-issues (by Gabriel Petrovay)—Git issues extension to list issues of a Git project
- git-source—Parse and stringify git urls in a friendly way.
- github-publish-npm (by Ofer Sadgat)—This will upload publish npm assets to the GitHub Releases API.
- gtni (by Nur Mohammed Rony)—Install your all npm dependencies recursively with gtni while you are doing git clone, fetch or pull
- nodeschool-admin (by Martin Heidegger)—CLI tool for setting up and maintaining a nodeschool chapters and other things.
- ogh (by EGOIST)—Open GitHub Page of your repo directly in Terminal.
- pr-log (by Mathias Schreck)—Changelog generator based on GitHub Pull Requests
- ship-release—Publish new versions on GitHub and npm with ease.
- sinit (by villadora)—Project initializer based on Scaffold
- smart-clone—Clone a directory into a Golang style directory structure
- ssh-remote—Automagically switch on the SSH remote url in a Git repository.
- strapper` (by Sam Newman)—Coming Soon[MIT][license] © [Ionică Bizău][website]
[paypal-donations]: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=RVXDDLKKLQRJW
[donate-now]: http://i.imgur.com/6cMbHOC.png
[license]: http://showalicense.com/?fullname=Ionic%C4%83%20Biz%C4%83u%20%3Cbizauionica%40gmail.com%3E%20(http%3A%2F%2Fionicabizau.net)&year=2015#license-mit
[website]: http://ionicabizau.net
[contributing]: /CONTRIBUTING.md
[docs]: /DOCUMENTATION.md