Skip to main content

Parse & rewrite git urls (supports GitHub, Bitbucket, FriendCode, Assembla, Gitlab …)

This is again a fork, now fork of https://github.com/nephila/giturlparse. Original project can be found at https://github.com/FriendCode/giturlparse.py

Installing

pip install giturlparse

Examples

Exposed attributes

  • platform: platform codename

  • host: server hostname

  • resource: same as host

  • port: URL port (only if explicitly defined in URL)

  • protocol: URL protocol (git, ssh, http/https)

  • protocols: list of protocols explicitly defined in URL

  • user: repository user

  • owner: repository owner (user or organization)

  • repo: repository name

  • name: same as repo

  • groups: list of groups - gitlab only

  • path: path to file or directory (includes the branch name) - gitlab / github only

  • path_raw: raw path starting from the repo name (might include platform keyword) - gitlab / github only

  • branch: branch name (when parseable) - gitlab / github only

Parse

from giturlparse import parse

p = parse('git@bitbucket.org:AaronO/some-repo.git')

p.host, p.owner, p.repo

# => ('bitbucket.org', 'AaronO', 'some-repo')

Rewrite

from giturlparse import parse

url = 'git@github.com:Org/Private-repo.git'

p = parse(url)

p.url2ssh, p.url2https, p.url2git, p.url2http
# => ('git@github.com:Org/Private-repo.git', 'https://github.com/Org/Private-repo.git', 'git://github.com/Org/Private-repo.git', None)

URLS

Alternative URLs for same repo:

from giturlparse import parse

url = 'git@github.com:Org/Private-repo.git'

parse(url).urls
# => {
#     'ssh': 'git@github.com:Org/Private-repo.git',
#     'https': 'https://github.com/Org/Private-repo.git',
#     'git': 'git://github.com/Org/Private-repo.git'
# }

Validate

from giturlparse import parse, validate

url = 'git@github.com:Org/Private-repo.git'

parse(url).valid
# => True

# Or

validate(url)
# => True

Tests

python -munittest

License

Apache v2 (Check out LICENSE file)

History

1.0.0 (2023-07-22)

Features

  • Add parsing variable for user to gitlab parser (#47)

  • Add support for Python 3.8+ (#48)

Bugfixes

  • Update tests invocation method to avoid future breakages (#29)

  • Update linting tools and fix code style (#34)

  • Add more github use cases (#43)

  • Fix parsing generic git url (#46)

0.10.0 (2020-12-05)

Features

  • General matching improvements (#18)

  • Update tooling, drop python2 (#10213)

0.9.2 (2018-10-27)

  • Removed “s” from the base platform regex

  • Fix license classifier in setup.py

  • Update meta files

0.9.1 (2018-01-20)

  • First fork release

Release files for giturlparse2 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for giturlparse2 1.0.0
File Size Uploaded
giturlparse2-1.0.0.tar.gz 16.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for giturlparse2 1.0.0
File Interpreter ABI Platform
giturlparse2-1.0.0-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 31.5 kB

Release files / giturlparse2-1.0.0.tar.gz

Download URL giturlparse2-1.0.0.tar.gz
Size 16.1 kB
Tags Source
SHA-256 checksum
How to use checksums
773fc9ad2b031f7e4da21d14d8660a52c615aba081de162a48c65756c569d3f7
BLAKE2b-256 checksum
How to use checksums
78373ad2adc1af952b86bed78dc3d4c4c42c0053ea2cbda861a33d0a063e62c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Release files / giturlparse2-1.0.0-py2.py3-none-any.whl

Download URL giturlparse2-1.0.0-py2.py3-none-any.whl
Size 15.4 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
1e0fa714b30931546835b13a885f07fed84c5b8c5b985e25ab019c92d0ed6ecc
BLAKE2b-256 checksum
How to use checksums
705c2e07ab859031372b9944c20601034be37ced6863f48495a80d3e7ec2352b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page