giturlparse


Namegiturlparse JSON
Version 0.14.0 PyPI version JSON
download
home_pagehttps://github.com/nephila/giturlparse
SummaryA Git URL parsing module (supports parsing and rewriting)
upload_time2025-10-22 09:21:11
maintainerIacopo Spalletti
docs_urlNone
authorAaron O Mullan
requires_python>=3.8
licenseApache v2
keywords giturlparse
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            ===========
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)

.. :changelog:

*******
History
*******

.. towncrier release notes start

0.14.0 (2025-10-22)
===================

Features
--------

- Allow rewriting repo and owner (#0)


0.13.0 (2025-10-22)
===================

Features
--------

- Switch to Coveralls Github action (#88)


Bugfixes
--------

- Fix Bitbucket url parse and add bitbucket.com to recognized domains (#107)
- Remove fix-encoding-pragma from pre-commit hooks as it is deprecated (#119)


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

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/nephila/giturlparse",
    "name": "giturlparse",
    "maintainer": "Iacopo Spalletti",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "i.spalletti@nephila.it",
    "keywords": "giturlparse",
    "author": "Aaron O Mullan",
    "author_email": "aaron@friendco.de",
    "download_url": "https://files.pythonhosted.org/packages/09/35/7f25a604a406be7d7d0f849bfcbc1603df084e9e58fe6170980c231138e4/giturlparse-0.14.0.tar.gz",
    "platform": null,
    "description": "===========\ngiturlparse\n===========\n\nParse & rewrite git urls (supports GitHub, Bitbucket, FriendCode, Assembla, Gitlab ...)\n\nThis is a fork of giturlparse.py with updated parsers.\n\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* ``username``: username from ``<username>:<access_token>@<url>`` gitlab / github urls\n* ``access_token``: access token from ``<username>:<access_token>@<url>`` gitlab / github urls\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\n0.14.0 (2025-10-22)\n===================\n\nFeatures\n--------\n\n- Allow rewriting repo and owner (#0)\n\n\n0.13.0 (2025-10-22)\n===================\n\nFeatures\n--------\n\n- Switch to Coveralls Github action (#88)\n\n\nBugfixes\n--------\n\n- Fix Bitbucket url parse and add bitbucket.com to recognized domains (#107)\n- Remove fix-encoding-pragma from pre-commit hooks as it is deprecated (#119)\n\n\n0.12.0 (2023-09-24)\n===================\n\nFeatures\n--------\n\n- Add github/gitlab username:access_token parse support (#21)\n- Migrate to bump-my-version (#79)\n\n\nBugfixes\n--------\n\n- Fix Gitlab URLs with branch (#42)\n- Align tox.ini with github actions (#71)\n\n\n0.11.1 (2023-08-04)\n===================\n\nBugfixes\n--------\n\n- Remove debug print statements (#66)\n\n\n0.11.0 (2023-08-03)\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": "0.14.0",
    "project_urls": {
        "Homepage": "https://github.com/nephila/giturlparse"
    },
    "split_keywords": [
        "giturlparse"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c4f99ff5a301459f804a885f237453ba81564bc6ee54740e9f2676c2642043f6",
                "md5": "12e45c44875147689d4c1df213c24bd3",
                "sha256": "04fd9c262ca9a4db86043d2ef32b2b90bfcbcdefc4f6a260fd9402127880931d"
            },
            "downloads": -1,
            "filename": "giturlparse-0.14.0-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "12e45c44875147689d4c1df213c24bd3",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=3.8",
            "size": 16299,
            "upload_time": "2025-10-22T09:21:10",
            "upload_time_iso_8601": "2025-10-22T09:21:10.818418Z",
            "url": "https://files.pythonhosted.org/packages/c4/f9/9ff5a301459f804a885f237453ba81564bc6ee54740e9f2676c2642043f6/giturlparse-0.14.0-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "09357f25a604a406be7d7d0f849bfcbc1603df084e9e58fe6170980c231138e4",
                "md5": "afaee58ec97ef4b55390a3d4fc2c31a6",
                "sha256": "0a13208cb3f60e067ee3d09d28e01f9c936065986004fa2d5cd6db7758e9f6e6"
            },
            "downloads": -1,
            "filename": "giturlparse-0.14.0.tar.gz",
            "has_sig": false,
            "md5_digest": "afaee58ec97ef4b55390a3d4fc2c31a6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 15637,
            "upload_time": "2025-10-22T09:21:11",
            "upload_time_iso_8601": "2025-10-22T09:21:11.674329Z",
            "url": "https://files.pythonhosted.org/packages/09/35/7f25a604a406be7d7d0f849bfcbc1603df084e9e58fe6170980c231138e4/giturlparse-0.14.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-22 09:21:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "nephila",
    "github_project": "giturlparse",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "requirements": [],
    "tox": true,
    "lcname": "giturlparse"
}
        
Elapsed time: 4.06496s