freshcrate
Home > Frameworks > giturlparse

giturlparse

A Git URL parsing module (supports parsing and rewriting)

Description

=========== giturlparse =========== 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) .. :changelog: ******* History ******* .. towncrier release notes start 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

Release History

VersionChangesUrgencyDate
0.14.0Imported from PyPI (0.14.0)Low4/21/2026
0.13.0Features -------- - 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)Low10/22/2025
0.12.0Features -------- - 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)Low9/24/2023
0.11.1Bugfixes -------- - Remove debug print statements (#66)Low8/4/2023
0.11.0Features -------- - 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)Low8/3/2023
0.10.0Features -------- - General matching improvements (#18) - Update tooling, drop python2 (#10213)Low12/5/2020
0.9.1* First fork release Low10/27/2018
0.9.2* Removed "s" from the base platform regex * Fix license classifier in setup.py * Update meta files Low10/27/2018

Dependencies & License Audit

Loading dependencies...

Similar Packages

pre-commitA framework for managing and maintaining multi-language pre-commit hooks.v4.6.0
azure-core-tracing-opentelemetryMicrosoft Azure Azure Core OpenTelemetry plugin Library for Pythonazure-template_0.1.0b6187637
spdx-toolsSPDX parser and tools.0.8.5
lacesDjango components that know how to render themselves.0.1.2
django-tasksA backport of Django's built in Tasks framework0.12.0