A Git URL parsing module (supports parsing and rewriting)
Project description
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)
History
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
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
File details
Details for the file giturlparse2-1.0.0.tar.gz
.
File metadata
- Download URL: giturlparse2-1.0.0.tar.gz
- Upload date:
- Size: 16.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 773fc9ad2b031f7e4da21d14d8660a52c615aba081de162a48c65756c569d3f7 |
|
MD5 | c0098f9cf9cf5a55e7dfe2da2fb53b46 |
|
BLAKE2b-256 | 78373ad2adc1af952b86bed78dc3d4c4c42c0053ea2cbda861a33d0a063e62c4 |
File details
Details for the file giturlparse2-1.0.0-py2.py3-none-any.whl
.
File metadata
- Download URL: giturlparse2-1.0.0-py2.py3-none-any.whl
- Upload date:
- Size: 15.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e0fa714b30931546835b13a885f07fed84c5b8c5b985e25ab019c92d0ed6ecc |
|
MD5 | 8ac557baa8019829ecac0c7eb1bdad53 |
|
BLAKE2b-256 | 705c2e07ab859031372b9944c20601034be37ced6863f48495a80d3e7ec2352b |