Watch
1
0
Fork
You've already forked giturlparse
0
No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Daniel Baumann 3cfdd361cb
Adding debian version 0.15.0-1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2026-09-26 11:25:17 +02:00
.github Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
changes Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
debian Adding debian version 0.15.0-1. 2026-09-26 11:25:17 +02:00
giturlparse Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
.checkignore Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
.codeclimate.yaml Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
.coveragerc Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
.csslintrc Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
.editorconfig Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
.gitignore Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
.pre-commit-config.yaml Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
.pyup.yaml Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
AUTHORS.rst Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
CONTRIBUTING.rst Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
HISTORY.rst Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
LICENSE Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
MANIFEST.in Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
pyproject.toml Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
README.rst Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
requirements-test.txt Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
requirements.txt Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
setup.cfg Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
setup.py Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
tasks.py Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00
tox.ini Adding upstream version 0.15.0. 2026-09-26 11:15:40 +02:00

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