{"id":13583346,"url":"https://github.com/jonschlinkert/parse-github-url","last_synced_at":"2025-05-16T11:03:48.024Z","repository":{"id":28711993,"uuid":"32232704","full_name":"jonschlinkert/parse-github-url","owner":"jonschlinkert","description":"Parse a Github URL into an object. Supports a wide variety of GitHub URL formats.","archived":false,"fork":false,"pushed_at":"2024-08-05T11:30:14.000Z","size":86,"stargazers_count":124,"open_issues_count":4,"forks_count":21,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-05-11T09:05:12.786Z","etag":null,"topics":["git","github","parse","regex","url"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jonschlinkert.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":"support.js","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["ljharb","jonschlinkert"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":"npm/parse-github-url","community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2015-03-14T21:26:17.000Z","updated_at":"2025-03-05T09:19:29.000Z","dependencies_parsed_at":"2024-10-23T03:48:02.528Z","dependency_job_id":null,"html_url":"https://github.com/jonschlinkert/parse-github-url","commit_stats":{"total_commits":47,"total_committers":12,"mean_commits":"3.9166666666666665","dds":0.5319148936170213,"last_synced_commit":"3fb7dfb5832e63a3f94ab0c7d5ec6bbe3932803e"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonschlinkert%2Fparse-github-url","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonschlinkert%2Fparse-github-url/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonschlinkert%2Fparse-github-url/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonschlinkert%2Fparse-github-url/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonschlinkert","download_url":"https://codeload.github.com/jonschlinkert/parse-github-url/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254518383,"owners_count":22084374,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["git","github","parse","regex","url"],"created_at":"2024-08-01T15:03:24.975Z","updated_at":"2025-05-16T11:03:48.002Z","avatar_url":"https://github.com/jonschlinkert.png","language":"JavaScript","readme":"# parse-github-url \u003csup\u003e[![Version Badge][npm-version-svg]][package-url]\u003c/sup\u003e\n\n[![github actions][actions-image]][actions-url]\n[![coverage][codecov-image]][codecov-url]\n[![License][license-image]][license-url]\n[![Downloads][downloads-image]][downloads-url]\n\n[![npm badge][npm-badge-png]][package-url]\n\n\u003e Parse a github URL into an object.\n\nPlease consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.\n\n## Install\n\nInstall with [npm](https://www.npmjs.com/):\n\n```sh\n$ npm install --save parse-github-url\n```\n\n**Why another GitHub URL parser library?**\n\nSeems like every lib I've found does too much, like both stringifying and parsing, or converts the URL from one format to another, only returns certain segments of the URL except for what I need, yields inconsistent results or has poor coverage.\n\n## Usage\n\n```js\nvar gh = require('parse-github-url');\ngh('https://github.com/jonschlinkert/micromatch');\n```\n\nResults in:\n\n```js\n{\n  \"owner\": \"jonschlinkert\",\n  \"name\": \"micromatch\",\n  \"repo\": \"jonschlinkert/micromatch\",\n  \"branch\": \"master\"\n}\n```\n\n## Example results\n\nGenerated results from test fixtures:\n\n```js\n// assemble/verb#1.2.3\nUrl {\n  protocol: null,\n  slashes: null,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: null,\n  hash: '#1.2.3',\n  search: null,\n  query: null,\n  pathname: 'assemble/verb',\n  path: 'assemble/verb',\n  href: 'assemble/verb#1.2.3',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: '1.2.3',\n  repository: 'assemble/verb' }\n\n// assemble/verb#branch\nUrl {\n  protocol: null,\n  slashes: null,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: null,\n  hash: '#branch',\n  search: null,\n  query: null,\n  pathname: 'assemble/verb',\n  path: 'assemble/verb',\n  href: 'assemble/verb#branch',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'branch',\n  repository: 'assemble/verb' }\n\n// assemble/verb\nUrl {\n  protocol: null,\n  slashes: null,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: null,\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb',\n  path: 'assemble/verb',\n  href: 'assemble/verb',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'master',\n  repository: 'assemble/verb' }\n\n// git+https://github.com/assemble/verb.git\nUrl {\n  protocol: 'git+https:',\n  slashes: true,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: 'github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb.git',\n  path: 'assemble/verb.git',\n  href: 'git+https://github.com/assemble/verb.git',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'master',\n  repository: 'assemble/verb' }\n\n// git+ssh://github.com/assemble/verb.git\nUrl {\n  protocol: 'git+ssh:',\n  slashes: true,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: 'github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb.git',\n  path: 'assemble/verb.git',\n  href: 'git+ssh://github.com/assemble/verb.git',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'master',\n  repository: 'assemble/verb' }\n\n// git://gh.pages.com/assemble/verb.git\nUrl {\n  protocol: 'git:',\n  slashes: true,\n  auth: null,\n  host: 'gh.pages.com',\n  port: null,\n  hostname: 'gh.pages.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb.git',\n  path: 'assemble/verb.git',\n  href: 'git://gh.pages.com/assemble/verb.git',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'master',\n  repository: 'assemble/verb' }\n\n// git://github.assemble.com/assemble/verb.git\nUrl {\n  protocol: 'git:',\n  slashes: true,\n  auth: null,\n  host: 'github.assemble.com',\n  port: null,\n  hostname: 'github.assemble.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb.git',\n  path: 'assemble/verb.git',\n  href: 'git://github.assemble.com/assemble/verb.git',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'master',\n  repository: 'assemble/verb' }\n\n// git://github.assemble.two.com/assemble/verb.git\nUrl {\n  protocol: 'git:',\n  slashes: true,\n  auth: null,\n  host: 'github.assemble.two.com',\n  port: null,\n  hostname: 'github.assemble.two.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb.git',\n  path: 'assemble/verb.git',\n  href: 'git://github.assemble.two.com/assemble/verb.git',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'master',\n  repository: 'assemble/verb' }\n\n// git://github.com/assemble/verb\nUrl {\n  protocol: 'git:',\n  slashes: true,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: 'github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb',\n  path: 'assemble/verb',\n  href: 'git://github.com/assemble/verb',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'master',\n  repository: 'assemble/verb' }\n\n// git://github.com/assemble/verb.git\nUrl {\n  protocol: 'git:',\n  slashes: true,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: 'github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb.git',\n  path: 'assemble/verb.git',\n  href: 'git://github.com/assemble/verb.git',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'master',\n  repository: 'assemble/verb' }\n\n// git@gh.pages.com:assemble/verb.git\nUrl {\n  protocol: null,\n  slashes: null,\n  auth: null,\n  host: 'gh.pages.com',\n  port: null,\n  hostname: null,\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'git@gh.pages.com:assemble/verb.git',\n  path: 'git@gh.pages.com:assemble/verb.git',\n  href: 'git@gh.pages.com:assemble/verb.git',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'master',\n  repository: 'assemble/verb' }\n\n// git@github.com:assemble/verb.git#1.2.3\nUrl {\n  protocol: null,\n  slashes: null,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: null,\n  hash: '#1.2.3',\n  search: null,\n  query: null,\n  pathname: 'git@github.com:assemble/verb.git',\n  path: 'git@github.com:assemble/verb.git',\n  href: 'git@github.com:assemble/verb.git#1.2.3',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: '1.2.3',\n  repository: 'assemble/verb' }\n\n// git@github.com:assemble/verb.git#v1.2.3\nUrl {\n  protocol: null,\n  slashes: null,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: null,\n  hash: '#v1.2.3',\n  search: null,\n  query: null,\n  pathname: 'git@github.com:assemble/verb.git',\n  path: 'git@github.com:assemble/verb.git',\n  href: 'git@github.com:assemble/verb.git#v1.2.3',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'v1.2.3',\n  repository: 'assemble/verb' }\n\n// git@github.com:assemble/verb.git\nUrl {\n  protocol: null,\n  slashes: null,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: null,\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'git@github.com:assemble/verb.git',\n  path: 'git@github.com:assemble/verb.git',\n  href: 'git@github.com:assemble/verb.git',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'master',\n  repository: 'assemble/verb' }\n\n// github:assemble/verb\nUrl {\n  protocol: 'github:',\n  slashes: null,\n  auth: null,\n  host: 'assemble',\n  port: null,\n  hostname: 'assemble',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'verb',\n  path: 'verb',\n  href: 'github:assemble/verb',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'master',\n  repository: 'assemble/verb' }\n\n// http://github.com/assemble\nUrl {\n  protocol: 'http:',\n  slashes: true,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: 'github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble',\n  path: 'assemble',\n  href: 'http://github.com/assemble',\n  filepath: null,\n  owner: 'assemble',\n  name: null,\n  repo: null,\n  branch: 'master',\n  repository: null }\n\n// http://github.com/assemble/verb\nUrl {\n  protocol: 'http:',\n  slashes: true,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: 'github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb',\n  path: 'assemble/verb',\n  href: 'http://github.com/assemble/verb',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'master',\n  repository: 'assemble/verb' }\n\n// http://github.com/assemble/verb.git\nUrl {\n  protocol: 'http:',\n  slashes: true,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: 'github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb.git',\n  path: 'assemble/verb.git',\n  href: 'http://github.com/assemble/verb.git',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'master',\n  repository: 'assemble/verb' }\n\n// http://github.com/assemble/verb/tree\nUrl {\n  protocol: 'http:',\n  slashes: true,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: 'github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb/tree',\n  path: 'assemble/verb/tree',\n  href: 'http://github.com/assemble/verb/tree',\n  filepath: null,\n  branch: 'tree',\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  repository: 'assemble/verb' }\n\n// http://github.com/assemble/verb/tree/master\nUrl {\n  protocol: 'http:',\n  slashes: true,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: 'github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb/tree/master',\n  path: 'assemble/verb/tree/master',\n  href: 'http://github.com/assemble/verb/tree/master',\n  filepath: null,\n  branch: 'master',\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  repository: 'assemble/verb' }\n\n// http://github.com/assemble/verb/tree/master/foo/bar\nUrl {\n  protocol: 'http:',\n  slashes: true,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: 'github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb/tree/master/foo/bar',\n  path: 'assemble/verb/tree/master/foo/bar',\n  href: 'http://github.com/assemble/verb/tree/master/foo/bar',\n  filepath: null,\n  branch: 'master',\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  repository: 'assemble/verb' }\n\n// https://assemble.github.com/assemble/verb/somefile.tar.gz\nUrl {\n  protocol: 'https:',\n  slashes: true,\n  auth: null,\n  host: 'assemble.github.com',\n  port: null,\n  hostname: 'assemble.github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb/somefile.tar.gz',\n  path: 'assemble/verb/somefile.tar.gz',\n  href: 'https://assemble.github.com/assemble/verb/somefile.tar.gz',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'somefile.tar.gz',\n  repository: 'assemble/verb' }\n\n// https://assemble.github.com/assemble/verb/somefile.zip\nUrl {\n  protocol: 'https:',\n  slashes: true,\n  auth: null,\n  host: 'assemble.github.com',\n  port: null,\n  hostname: 'assemble.github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb/somefile.zip',\n  path: 'assemble/verb/somefile.zip',\n  href: 'https://assemble.github.com/assemble/verb/somefile.zip',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'somefile.zip',\n  repository: 'assemble/verb' }\n\n// https://assemble@github.com/assemble/verb.git\nUrl {\n  protocol: 'https:',\n  slashes: true,\n  auth: 'assemble',\n  host: 'github.com',\n  port: null,\n  hostname: 'github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb.git',\n  path: 'assemble/verb.git',\n  href: 'https://assemble@github.com/assemble/verb.git',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'master',\n  repository: 'assemble/verb' }\n\n// https://gh.pages.com/assemble/verb.git\nUrl {\n  protocol: 'https:',\n  slashes: true,\n  auth: null,\n  host: 'gh.pages.com',\n  port: null,\n  hostname: 'gh.pages.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb.git',\n  path: 'assemble/verb.git',\n  href: 'https://gh.pages.com/assemble/verb.git',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'master',\n  repository: 'assemble/verb' }\n\n// https://github.com/assemble/verb\nUrl {\n  protocol: 'https:',\n  slashes: true,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: 'github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb',\n  path: 'assemble/verb',\n  href: 'https://github.com/assemble/verb',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'master',\n  repository: 'assemble/verb' }\n\n// https://github.com/assemble/verb.git\nUrl {\n  protocol: 'https:',\n  slashes: true,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: 'github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb.git',\n  path: 'assemble/verb.git',\n  href: 'https://github.com/assemble/verb.git',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'master',\n  repository: 'assemble/verb' }\n\n// https://github.com/assemble/verb/blob/1.2.3/README.md\nUrl {\n  protocol: 'https:',\n  slashes: true,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: 'github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb/blob/1.2.3/README.md',\n  path: 'assemble/verb/blob/1.2.3/README.md',\n  href: 'https://github.com/assemble/verb/blob/1.2.3/README.md',\n  filepath: 'README.md',\n  branch: '1.2.3',\n  blob: '1.2.3/README.md',\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  repository: 'assemble/verb' }\n\n// https://github.com/assemble/verb/blob/249b21a86400b38969cee3d5df6d2edf8813c137/README.md\nUrl {\n  protocol: 'https:',\n  slashes: true,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: 'github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb/blob/249b21a86400b38969cee3d5df6d2edf8813c137/README.md',\n  path: 'assemble/verb/blob/249b21a86400b38969cee3d5df6d2edf8813c137/README.md',\n  href: 'https://github.com/assemble/verb/blob/249b21a86400b38969cee3d5df6d2edf8813c137/README.md',\n  filepath: '249b21a86400b38969cee3d5df6d2edf8813c137/README.md',\n  blob: '249b21a86400b38969cee3d5df6d2edf8813c137/README.md',\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'blob',\n  repository: 'assemble/verb' }\n\n// https://github.com/assemble/verb/blob/master/assemble/index.js\nUrl {\n  protocol: 'https:',\n  slashes: true,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: 'github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb/blob/master/assemble/index.js',\n  path: 'assemble/verb/blob/master/assemble/index.js',\n  href: 'https://github.com/assemble/verb/blob/master/assemble/index.js',\n  filepath: 'assemble/index.js',\n  branch: 'master',\n  blob: 'master/assemble/index.js',\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  repository: 'assemble/verb' }\n\n// https://github.com/assemble/verb/tree/1.2.3\nUrl {\n  protocol: 'https:',\n  slashes: true,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: 'github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb/tree/1.2.3',\n  path: 'assemble/verb/tree/1.2.3',\n  href: 'https://github.com/assemble/verb/tree/1.2.3',\n  filepath: null,\n  branch: '1.2.3',\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  repository: 'assemble/verb' }\n\n// https://github.com/assemble/verb/tree/feature/1.2.3\nUrl {\n  protocol: 'https:',\n  slashes: true,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: 'github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'assemble/verb/tree/feature/1.2.3',\n  path: 'assemble/verb/tree/feature/1.2.3',\n  href: 'https://github.com/assemble/verb/tree/feature/1.2.3',\n  filepath: null,\n  branch: 'feature',\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  repository: 'assemble/verb' }\n\n// https://github.com/repos/assemble/verb/tarball\nUrl {\n  protocol: 'https:',\n  slashes: true,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: 'github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'repos/assemble/verb/tarball',\n  path: 'assemble/verb/tarball',\n  href: 'https://github.com/repos/assemble/verb/tarball',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'tarball',\n  repository: 'assemble/verb' }\n\n// https://github.com/repos/assemble/verb/zipball\nUrl {\n  protocol: 'https:',\n  slashes: true,\n  auth: null,\n  host: 'github.com',\n  port: null,\n  hostname: 'github.com',\n  hash: null,\n  search: null,\n  query: null,\n  pathname: 'repos/assemble/verb/zipball',\n  path: 'assemble/verb/zipball',\n  href: 'https://github.com/repos/assemble/verb/zipball',\n  filepath: null,\n  owner: 'assemble',\n  name: 'verb',\n  repo: 'assemble/verb',\n  branch: 'zipball',\n  repository: 'assemble/verb' }\n```\n\n## About\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eContributing\u003c/strong\u003e\u003c/summary\u003e\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eRunning Tests\u003c/strong\u003e\u003c/summary\u003e\n\nRunning and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:\n\n```sh\n$ npm install \u0026\u0026 npm test\n```\n\n\u003c/details\u003e\n\n### Related projects\n\nYou might also be interested in these projects:\n\n* [git-add-remote](https://www.npmjs.com/package/git-add-remote): API for adding git remotes. | [homepage](https://github.com/jonschlinkert/git-add-remote \"API for adding git remotes.\")\n* [git-branch](https://www.npmjs.com/package/git-branch): Get the current branch for a local git repository. | [homepage](https://github.com/jonschlinkert/git-branch \"Get the current branch for a local git repository.\")\n* [git-repo-name](https://www.npmjs.com/package/git-repo-name): Get the repository name from the git remote origin URL. | [homepage](https://github.com/jonschlinkert/git-repo-name \"Get the repository name from the git remote origin URL.\")\n* [git-username](https://www.npmjs.com/package/git-username): Get the username from a git remote origin URL. | [homepage](https://github.com/jonschlinkert/git-username \"Get the username from a git remote origin URL.\")\n* [is-git-url](https://www.npmjs.com/package/is-git-url): Regex to validate that a URL is a git url. | [homepage](https://github.com/jonschlinkert/is-git-url \"Regex to validate that a URL is a git url.\")\n\n[package-url]: https://npmjs.org/package/parse-github-url\n[npm-version-svg]: https://versionbadg.es/jonschlinkert/parse-github-url.svg\n[deps-svg]: https://david-dm.org/jonschlinkert/parse-github-url.svg\n[deps-url]: https://david-dm.org/jonschlinkert/parse-github-url\n[dev-deps-svg]: https://david-dm.org/jonschlinkert/parse-github-url/dev-status.svg\n[dev-deps-url]: https://david-dm.org/jonschlinkert/parse-github-url#info=devDependencies\n[npm-badge-png]: https://nodei.co/npm/parse-github-url.png?downloads=true\u0026stars=true\n[license-image]: https://img.shields.io/npm/l/parse-github-url.svg\n[license-url]: LICENSE\n[downloads-image]: https://img.shields.io/npm/dm/parse-github-url.svg\n[downloads-url]: https://npm-stat.com/charts.html?package=parse-github-url\n[codecov-image]: https://codecov.io/gh/jonschlinkert/parse-github-url/branch/main/graphs/badge.svg\n[codecov-url]: https://app.codecov.io/gh/jonschlinkert/parse-github-url/\n[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/jonschlinkert/parse-github-url\n[actions-url]: https://github.com/jonschlinkert/parse-github-url/actions\n","funding_links":["https://github.com/sponsors/ljharb","https://github.com/sponsors/jonschlinkert","https://tidelift.com/funding/github/npm/parse-github-url"],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonschlinkert%2Fparse-github-url","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonschlinkert%2Fparse-github-url","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonschlinkert%2Fparse-github-url/lists"}