===========
giturlparse
===========
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)
.. :changelog:
*******
History
*******
.. towncrier release notes start
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
Raw data
{
"_id": null,
"home_page": "https://github.com/godfryd/giturlparse2",
"name": "giturlparse2",
"maintainer": "Michal Nowikowski",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "godfryd@gmail.com",
"keywords": "giturlparse",
"author": "Aaron O Mullan",
"author_email": "aaron@friendco.de",
"download_url": "https://files.pythonhosted.org/packages/78/37/3ad2adc1af952b86bed78dc3d4c4c42c0053ea2cbda861a33d0a063e62c4/giturlparse2-1.0.0.tar.gz",
"platform": null,
"description": "===========\ngiturlparse\n===========\n\nParse & rewrite git urls (supports GitHub, Bitbucket, FriendCode, Assembla, Gitlab ...)\n\nThis is again a fork, now fork of https://github.com/nephila/giturlparse.\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\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\n1.0.0 (2023-07-22)\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": "1.0.0",
"project_urls": {
"Homepage": "https://github.com/godfryd/giturlparse2"
},
"split_keywords": [
"giturlparse"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "705c2e07ab859031372b9944c20601034be37ced6863f48495a80d3e7ec2352b",
"md5": "8ac557baa8019829ecac0c7eb1bdad53",
"sha256": "1e0fa714b30931546835b13a885f07fed84c5b8c5b985e25ab019c92d0ed6ecc"
},
"downloads": -1,
"filename": "giturlparse2-1.0.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "8ac557baa8019829ecac0c7eb1bdad53",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.8",
"size": 15433,
"upload_time": "2023-07-22T05:28:02",
"upload_time_iso_8601": "2023-07-22T05:28:02.611131Z",
"url": "https://files.pythonhosted.org/packages/70/5c/2e07ab859031372b9944c20601034be37ced6863f48495a80d3e7ec2352b/giturlparse2-1.0.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "78373ad2adc1af952b86bed78dc3d4c4c42c0053ea2cbda861a33d0a063e62c4",
"md5": "c0098f9cf9cf5a55e7dfe2da2fb53b46",
"sha256": "773fc9ad2b031f7e4da21d14d8660a52c615aba081de162a48c65756c569d3f7"
},
"downloads": -1,
"filename": "giturlparse2-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "c0098f9cf9cf5a55e7dfe2da2fb53b46",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 16095,
"upload_time": "2023-07-22T05:28:03",
"upload_time_iso_8601": "2023-07-22T05:28:03.679229Z",
"url": "https://files.pythonhosted.org/packages/78/37/3ad2adc1af952b86bed78dc3d4c4c42c0053ea2cbda861a33d0a063e62c4/giturlparse2-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-07-22 05:28:03",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "godfryd",
"github_project": "giturlparse2",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"requirements": [],
"tox": true,
"lcname": "giturlparse2"
}