Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/github-modules/github-url-to-object
A node module that extracts useful properties like user, repo, and branch from various flavors of GitHub URLs.
https://github.com/github-modules/github-url-to-object
Last synced: about 2 months ago
JSON representation
A node module that extracts useful properties like user, repo, and branch from various flavors of GitHub URLs.
- Host: GitHub
- URL: https://github.com/github-modules/github-url-to-object
- Owner: github-modules
- Created: 2013-11-25T05:13:14.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2023-08-04T23:28:37.000Z (about 1 year ago)
- Last Synced: 2024-07-09T05:12:48.483Z (3 months ago)
- Language: JavaScript
- Homepage:
- Size: 143 KB
- Stars: 86
- Watchers: 3
- Forks: 27
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome - github-modules/github-url-to-object - A node module that extracts useful properties like user, repo, and branch from various flavors of GitHub URLs. (JavaScript)
README
# github-url-to-object [![Build Status](https://travis-ci.org/zeke/github-url-to-object.png?branch=master)](https://travis-ci.org/zeke/github-url-to-object)
A module for node.js and browsers that extracts useful properties like `user`,
`repo`, and `branch` from various flavors of GitHub URLs.There's also a Bitbucket equivalent to this library: [bitbucket-url-to-object](https://github.com/zeke/bitbucket-url-to-object).
Check out the demo at [zeke.github.io/github-url-to-object](https://zeke.github.io/github-url-to-object).
## Installation
For Node.js or Browserify usage:
```sh
npm i github-url-to-object
```For bower usage:
```sh
bower install github-url-to-object
```## Usage
Use whatever flavor of GitHub URL you like:
```js
const gh = require('github-url-to-object')gh('github:monkey/business')
gh('https://github.com/monkey/business')
gh('https://github.com/monkey/business/tree/master')
gh('https://github.com/monkey/business/tree/master/nested/file.js')
gh('https://github.com/monkey/business.git')
gh('http://github.com/monkey/business')
gh('git://github.com/monkey/business.git')
gh('git+https://github.com/monkey/business.git')
```Here's what you'll get:
```js
{
user: 'monkey',
repo: 'business',
branch: 'master',
tarball_url: 'https://api.github.com/repos/monkey/business/tarball/master',
clone_url: 'https://github.com/monkey/business',
https_url: 'https://github.com/monkey/business',
travis_url: 'https://travis-ci.org/monkey/business',
api_url: 'https://api.github.com/repos/monkey/business'
zip_url: 'https://github.com/monkey/business/archive/master.zip'
}
```The shorthand form lets you specify a branch:
```js
gh('github:monkey/business#nachos')
``````js
{
user: 'monkey',
repo: 'business',
branch: 'nachos',
https_url: 'https://github.com/monkey/business/blob/nachos',
tarball_url: 'https://api.github.com/repos/monkey/business/tarball/nachos',
clone_url: 'https://github.com/monkey/business',
travis_url: 'https://travis-ci.org/monkey/business?branch=nachos',
api_url: 'https://api.github.com/repos/monkey/business'
zip_url: 'https://github.com/monkey/business/archive/nachos.zip'
}
```If you provide a non-GitHub URL or a falsey value, you'll get `null`.
### GitHub Enterprise
If you're using GitHub Enterprise, pass the `enterprise` option to allow
your non-`github.com` URL to be parsed:```js
gh('https://ghe.example.com:heroku/heroku-flags.git', { enterprise: true })
```## Test
```sh
npm install
npm test
```[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard)
## License
MIT