A Git URL parsing module (supports parsing and rewriting)
Project description
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
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 setup.py test
License
Apache v2 (Check out LICENSE file)
History
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
Hashes for giturlparse-0.10.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04ba1a3a099c3093fa8d24a422913c6a9b2c2cd22bcffc939cf72e3e98f672d7 |
|
MD5 | 99712a268c6d6ee8db2a9e4e3db0d4ce |
|
BLAKE2b-256 | a201baa326ad32510acd3f08835e1b9f3c66170ddf7dfcc233640ff22d0ea619 |