131 lines
4.7 KiB
Markdown
131 lines
4.7 KiB
Markdown
|
[![git-url-parse](http://i.imgur.com/HlfMsVf.png)](#)
|
||
|
|
||
|
# git-url-parse [![PayPal](https://img.shields.io/badge/%24-paypal-f39c12.svg)][paypal-donations] [![Travis](https://img.shields.io/travis/IonicaBizau/git-url-parse.svg)](https://travis-ci.org/IonicaBizau/git-url-parse/) [![Version](https://img.shields.io/npm/v/git-url-parse.svg)](https://www.npmjs.com/package/git-url-parse) [![Downloads](https://img.shields.io/npm/dt/git-url-parse.svg)](https://www.npmjs.com/package/git-url-parse) [![Get help on Codementor](https://cdn.codementor.io/badges/get_help_github.svg)](https://www.codementor.io/johnnyb?utm_source=github&utm_medium=button&utm_term=johnnyb&utm_campaign=github)
|
||
|
|
||
|
> A high level git url parser for common git providers.
|
||
|
|
||
|
## Installation
|
||
|
|
||
|
```sh
|
||
|
$ npm i --save git-url-parse
|
||
|
```
|
||
|
|
||
|
## Example
|
||
|
|
||
|
```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"
|
||
|
```
|
||
|
|
||
|
## Documentation
|
||
|
|
||
|
### `gitUrlParse(url)`
|
||
|
Parses a Git url.
|
||
|
|
||
|
#### 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.
|
||
|
|
||
|
### `stringify(obj, type)`
|
||
|
Stringifies a `GitUrl` 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.
|
||
|
|
||
|
## How to contribute
|
||
|
Have an idea? Found a bug? See [how to contribute][contributing].
|
||
|
|
||
|
## Where is this library used?
|
||
|
If you are using this library in one of your projects, add it in this list. :sparkles:
|
||
|
|
||
|
- [`git-issues`](https://github.com/softwarescales/git-issues) by Gabriel Petrovay
|
||
|
|
||
|
- [`github-publish-npm`](https://github.com/ofersadgat/github-publish-npm) by Ofer Sadgat
|
||
|
|
||
|
- [`gpm`](https://github.com/IonicaBizau/gpm)
|
||
|
|
||
|
- [`gtni`](https://nmrony.github.io/gtni) by Nur Mohammed Rony
|
||
|
|
||
|
- [`nodeschool-admin`](https://github.com/nodeschool/admin#readme) by Martin Heidegger
|
||
|
|
||
|
- [`ogh`](https://github.com/egoist/ogh#readme) by EGOIST
|
||
|
|
||
|
- [`ssh-remote`](https://github.com/IonicaBizau/ssh-remote)
|
||
|
|
||
|
- [`strapper`](https://npmjs.com/package/strapper) by Sam Newman
|
||
|
|
||
|
## License
|
||
|
|
||
|
[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
|