A Git URL parsing module (supports parsing and rewriting)
Project description
Parse & rewrite git urls (supports GitHub, Bitbucket, FriendCode, Assembla, Gitlab …)
This is a fork of giturlparse.py with updated parsers.
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
username: username from <username>:<access_token>@<url> gitlab / github urls
access_token: access token from <username>:<access_token>@<url> gitlab / github urls
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
0.14.0 (2025-10-22)
Features
Allow rewriting repo and owner (#0)
0.13.0 (2025-10-22)
Features
Switch to Coveralls Github action (#88)
Bugfixes
Fix Bitbucket url parse and add bitbucket.com to recognized domains (#107)
Remove fix-encoding-pragma from pre-commit hooks as it is deprecated (#119)
0.12.0 (2023-09-24)
Features
Add github/gitlab username:access_token parse support (#21)
Migrate to bump-my-version (#79)
Bugfixes
Fix Gitlab URLs with branch (#42)
Align tox.ini with github actions (#71)
0.11.1 (2023-08-04)
Bugfixes
Remove debug print statements (#66)
0.11.0 (2023-08-03)
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file giturlparse-0.14.0.tar.gz.
File metadata
- Download URL: giturlparse-0.14.0.tar.gz
- Upload date:
- Size: 15.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a13208cb3f60e067ee3d09d28e01f9c936065986004fa2d5cd6db7758e9f6e6
|
|
| MD5 |
afaee58ec97ef4b55390a3d4fc2c31a6
|
|
| BLAKE2b-256 |
09357f25a604a406be7d7d0f849bfcbc1603df084e9e58fe6170980c231138e4
|
File details
Details for the file giturlparse-0.14.0-py2.py3-none-any.whl.
File metadata
- Download URL: giturlparse-0.14.0-py2.py3-none-any.whl
- Upload date:
- Size: 16.3 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04fd9c262ca9a4db86043d2ef32b2b90bfcbcdefc4f6a260fd9402127880931d
|
|
| MD5 |
12e45c44875147689d4c1df213c24bd3
|
|
| BLAKE2b-256 |
c4f99ff5a301459f804a885f237453ba81564bc6ee54740e9f2676c2642043f6
|