Skip to main content

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

  • 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)

History

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

giturlparse-0.12.0.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

giturlparse-0.12.0-py2.py3-none-any.whl (15.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file giturlparse-0.12.0.tar.gz.

File metadata

  • Download URL: giturlparse-0.12.0.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for giturlparse-0.12.0.tar.gz
Algorithm Hash digest
SHA256 c0fff7c21acc435491b1779566e038757a205c1ffdcb47e4f81ea52ad8c3859a
MD5 1e19953533eab452548a304c3dac96b1
BLAKE2b-256 375f543dc54c82842376139748226e5aa61eb95093992f63dd495af9c6b4f076

See more details on using hashes here.

File details

Details for the file giturlparse-0.12.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for giturlparse-0.12.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 412b74f2855f1da2fefa89fd8dde62df48476077a72fc19b62039554d27360eb
MD5 89222d2c1220eb17387941da034bf4dc
BLAKE2b-256 dd94c6ff3388b8e3225a014e55aed957188639aa0966443e0408d38f0c9614a7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page