===========
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.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
Raw data
{
"_id": null,
"home_page": "https://github.com/nephila/giturlparse",
"name": "giturlparse",
"maintainer": "Iacopo Spalletti",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "i.spalletti@nephila.it",
"keywords": "giturlparse",
"author": "Aaron O Mullan",
"author_email": "aaron@friendco.de",
"download_url": "https://files.pythonhosted.org/packages/37/5f/543dc54c82842376139748226e5aa61eb95093992f63dd495af9c6b4f076/giturlparse-0.12.0.tar.gz",
"platform": null,
"description": "===========\ngiturlparse\n===========\n\nParse & rewrite git urls (supports GitHub, Bitbucket, FriendCode, Assembla, Gitlab ...)\n\nThis is a fork of giturlparse.py with updated parsers.\n\nOriginal project can be found at https://github.com/FriendCode/giturlparse.py\n\n************\nInstalling\n************\n\n::\n\n pip install giturlparse\n\n******************\nExamples\n******************\n\nExposed attributes\n==================\n\n* ``platform``: platform codename\n* ``host``: server hostname\n* ``resource``: same as ``host``\n* ``port``: URL port (only if explicitly defined in URL)\n* ``protocol``: URL protocol (git, ssh, http/https)\n* ``protocols``: list of protocols explicitly defined in URL\n* ``user``: repository user\n* ``owner``: repository owner (user or organization)\n* ``repo``: repository name\n* ``name``: same as ``repo``\n* ``groups``: list of groups - gitlab only\n* ``path``: path to file or directory (includes the branch name) - gitlab / github only\n* ``path_raw``: raw path starting from the repo name (might include platform keyword) - gitlab / github only\n* ``branch``: branch name (when parseable) - gitlab / github only\n* ``username``: username from ``<username>:<access_token>@<url>`` gitlab / github urls\n* ``access_token``: access token from ``<username>:<access_token>@<url>`` gitlab / github urls\n\nParse\n==================\n\n::\n\n from giturlparse import parse\n\n p = parse('git@bitbucket.org:AaronO/some-repo.git')\n\n p.host, p.owner, p.repo\n\n # => ('bitbucket.org', 'AaronO', 'some-repo')\n\n\nRewrite\n==================\n\n::\n\n from giturlparse import parse\n\n url = 'git@github.com:Org/Private-repo.git'\n\n p = parse(url)\n\n p.url2ssh, p.url2https, p.url2git, p.url2http\n # => ('git@github.com:Org/Private-repo.git', 'https://github.com/Org/Private-repo.git', 'git://github.com/Org/Private-repo.git', None)\n\nURLS\n==================\n\nAlternative URLs for same repo::\n\n from giturlparse import parse\n\n url = 'git@github.com:Org/Private-repo.git'\n\n parse(url).urls\n # => {\n # 'ssh': 'git@github.com:Org/Private-repo.git',\n # 'https': 'https://github.com/Org/Private-repo.git',\n # 'git': 'git://github.com/Org/Private-repo.git'\n # }\n\nValidate\n==================\n\n::\n\n from giturlparse import parse, validate\n\n url = 'git@github.com:Org/Private-repo.git'\n\n parse(url).valid\n # => True\n\n # Or\n\n validate(url)\n # => True\n\nTests\n==================\n\n::\n\n python -munittest\n\nLicense\n==================\n\nApache v2 (Check out LICENSE file)\n\n.. :changelog:\n\n*******\nHistory\n*******\n\n.. towncrier release notes start\n\n0.12.0 (2023-09-24)\n===================\n\nFeatures\n--------\n\n- Add github/gitlab username:access_token parse support (#21)\n- Migrate to bump-my-version (#79)\n\n\nBugfixes\n--------\n\n- Fix Gitlab URLs with branch (#42)\n- Align tox.ini with github actions (#71)\n\n\n0.11.1 (2023-08-04)\n===================\n\nBugfixes\n--------\n\n- Remove debug print statements (#66)\n\n\n0.11.0 (2023-08-03)\n===================\n\nFeatures\n--------\n\n- Add parsing variable for user to gitlab parser (#47)\n- Add support for Python 3.8+ (#48)\n\n\nBugfixes\n--------\n\n- Update tests invocation method to avoid future breakages (#29)\n- Update linting tools and fix code style (#34)\n- Add more github use cases (#43)\n- Fix parsing generic git url (#46)\n\n\n0.10.0 (2020-12-05)\n===================\n\nFeatures\n--------\n\n- General matching improvements (#18)\n- Update tooling, drop python2 (#10213)\n\n0.9.2 (2018-10-27)\n==================\n\n* Removed \"s\" from the base platform regex\n* Fix license classifier in setup.py\n* Update meta files\n\n0.9.1 (2018-01-20)\n==================\n\n* First fork release\n",
"bugtrack_url": null,
"license": "Apache v2",
"summary": "A Git URL parsing module (supports parsing and rewriting)",
"version": "0.12.0",
"project_urls": {
"Homepage": "https://github.com/nephila/giturlparse"
},
"split_keywords": [
"giturlparse"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "dd94c6ff3388b8e3225a014e55aed957188639aa0966443e0408d38f0c9614a7",
"md5": "89222d2c1220eb17387941da034bf4dc",
"sha256": "412b74f2855f1da2fefa89fd8dde62df48476077a72fc19b62039554d27360eb"
},
"downloads": -1,
"filename": "giturlparse-0.12.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "89222d2c1220eb17387941da034bf4dc",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.8",
"size": 15752,
"upload_time": "2023-09-24T07:22:35",
"upload_time_iso_8601": "2023-09-24T07:22:35.465332Z",
"url": "https://files.pythonhosted.org/packages/dd/94/c6ff3388b8e3225a014e55aed957188639aa0966443e0408d38f0c9614a7/giturlparse-0.12.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "375f543dc54c82842376139748226e5aa61eb95093992f63dd495af9c6b4f076",
"md5": "1e19953533eab452548a304c3dac96b1",
"sha256": "c0fff7c21acc435491b1779566e038757a205c1ffdcb47e4f81ea52ad8c3859a"
},
"downloads": -1,
"filename": "giturlparse-0.12.0.tar.gz",
"has_sig": false,
"md5_digest": "1e19953533eab452548a304c3dac96b1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 14907,
"upload_time": "2023-09-24T07:22:36",
"upload_time_iso_8601": "2023-09-24T07:22:36.795624Z",
"url": "https://files.pythonhosted.org/packages/37/5f/543dc54c82842376139748226e5aa61eb95093992f63dd495af9c6b4f076/giturlparse-0.12.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-09-24 07:22:36",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "nephila",
"github_project": "giturlparse",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"requirements": [],
"tox": true,
"lcname": "giturlparse"
}