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