gitcd


Namegitcd JSON
Version 2.2.9 PyPI version JSON
download
home_pagehttps://www.gitcd.io
SummaryTool for continuous delivery using git
upload_time2025-11-01 13:29:29
maintainerNone
docs_urlNone
authorClaudio Walser
requires_python>=3.9
licenseApache License
keywords git application continuos delivery
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            Continuous tool for working with git
====================================

.. image:: https://www.gitcd.io/images/logo.svg
    :height: 150px
    :width: 150px



**Development Status**

.. image:: https://img.shields.io/pypi/status/gitcd.svg
   :target: https://pypi.org/project/gitcd/

.. image:: https://travis-ci.org/gitcd-io/gitcd.svg?branch=master
    :target: https://travis-ci.org/gitcd-io/gitcd

.. image:: https://readthedocs.org/projects/gitcd/badge/?version=latest
    :target: https://gitcd.readthedocs.org/en/latest/?badge=latest

.. image:: https://img.shields.io/github/last-commit/gitcd-io/gitcd.svg
    :target: https://github.com/gitcd-io/gitcd/commits/master



**Package Info**

.. image:: https://badge.fury.io/py/gitcd.svg
    :target: https://pypi.org/project/gitcd/

.. image:: https://img.shields.io/pypi/dm/gitcd.svg
    :target: https://pypi.org/project/gitcd/

.. image:: https://img.shields.io/pypi/wheel/gitcd.svg
    :target: https://pypi.org/project/gitcd/

.. image:: http://img.shields.io/badge/license-APACHE2-blue.svg
    :target: https://github.com/gitcd-io/gitcd/blob/master/LICENSE

.. image:: https://img.shields.io/pypi/pyversions/gitcd.svg
    :target: https://pypi.org/project/gitcd/


Description
###########

**gitcd** is a little helper for continuous delivery workflows, using git as scm.


Installation of gitcd
#####################



Pre requisites
--------------
Gitcd is written in Python3. Most systems still deliver with Python2 as default.
You need to install Python3 in order to run gitcd properly.

MacOSX
______

.. code-block:: bash

    brew install python3

Ubuntu / Debian
_______________

.. code-block:: bash

    sudo apt-get install python3 python3-pip





Installation of gitcd itself
----------------------------
Now you are ready to install gitcd itself, which is quite easy using pip.

.. code-block:: bash

    pip3 install --user --upgrade gitcd


Trouble using git-cd?
---------------------
If the command "git-cd" or "git cd" is not available now, you probably need to add the pip binary path to your $PATH variable.

MacOSX
______

Open ~/.bash_profile or ~/.zprofile in your favorite editor and add the following lines at the end of the file.

.. note::

    Replace <python-version> with your currently installed python version, e.g. ``3.11``

.. code-block:: bash

    if [ -d "$HOME/Library/Python/<python-version>/bin" ] ; then
        PATH="$HOME/Library/Python/<python-version>/bin:$PATH"
    fi

Ubuntu / Debian
_______________

Open ~/.profile in your favorite editor and add the following lines at the end of the file.

.. code-block:: bash

    if [ -d "$HOME/.local/bin" ] ; then
        PATH="$HOME/.local/bin:$PATH"
    fi


Argument Completion
-------------------
Gitcd supports argument completion, to activate it execute the following steps.

MacOSX
______

Under OSX it isn't that simple unfortunately. Global completion requires bash support for complete -D, which was introduced in bash 4.2. On OS X or older Linux systems, you will need to update bash to use this feature. Check the version of the running copy of bash with echo $BASH_VERSION. On OS X, install bash via Homebrew (brew install bash), add /usr/local/bin/bash to /etc/shells, and run chsh to change your shell.

You might consider reading the docs for argcomplete https://argcomplete.readthedocs.io/en/latest/#global-completion

Activate Global argcomplete
_____________________________

You are now ready to activate global argcompletion for python with the following command.

.. code-block:: bash

    activate-global-python-argcomplete




CLI Usage of gitcd
##################

For convenience, you can call gitcd as a git sub command as well as directly. Therefore, you can replace "git cd" in any of the following commands with "git-cd" if you like it more.


.. note::

    Python argument completion won't work if you use it as a git sub command!


Initializing gitcd
------------------
First of all you probably want to initialize one of your local git repositories with gitcd. Change directory to one of your local git repositories and run git-cd init.
Most of the values should be very self-explanatory. Still, here is a complete list of values you can pass.

- **Branch name for production releases?**

  - This is the branch git-cd is creating a tag from if you execute the release command, you probably want to go with **master** here.

- **Branch name for feature development?**

  - This is more kind of a prefix for feature branches, it is empty by default. If you wish your feature branch has a name like feature/my-new-feature, you can set this prefix to **feature/**.

- **Branch name for test releases?**

  - Pass your branch name where you want to merge code into while executing git-cd test. Let it empty if you don't want to use that feature. At work, we have this for many repositories set to **test**.

- **Version tag prefix?**

  - Prefix for your release tags, this is **v** by default which would result in a tag equals to v0.0.1 for example.

- **Version type? You can either set your tag number manually, read it from a version file or generate it by date.**

  - This is about how git-cd release gets your current version number you want to release.

    - manual means you'll get asked to enter the version number by hand
    - file means gitcd reads the version number from a file, you'll be asked from which file in the next step
    - date means you generate a version number from a date scheme, you'll be asked for the scheme later. As a date version scheme, you can pass any directive for http://strftime.org/.

- **Do you want to execute some additional commands after a release?**

  - This is useful if you want to execute any cli script after creating a tag, for example, gitcd itself uses such a script to publish the new release on pypi after creating a new tag. You can see the script here https://github.com/gitcd-io/gitcd/blob/master/publish.sh.

- **Do you want to execute some additional commands before a release?**

  - This is useful if you want to execute any cli script before creating a tag, for example, if you want to modify any file in your git tree where you want to add the current version number.


.. code-block:: bash

    git cd init

The image below represents the configuration for gitcd itself.

.. container:: responsive-image

    .. image:: https://www.gitcd.io/images/cli/git-cd_init.png
        :alt: git cd init



Check current version
---------------------
You want to know which version of gitcd you are currently running?

.. code-block:: bash

    git cd version

.. container:: responsive-image

    .. image:: https://www.gitcd.io/images/cli/git-cd_version.png
        :alt: git cd version


Upgrade gitcd itself
--------------------
Gitcd is able to check your local version with the one published on pypi and upgrade itself if you wish so.

.. code-block:: bash

    git cd upgrade

.. container:: responsive-image

    .. image:: https://www.gitcd.io/images/cli/git-cd_upgrade-2.png
        :alt: git cd upgrade


Clean up local branches
-----------------------
The tool is able to cleanup all local branches which doesn't exist on remotes. This is done with the clean command.

.. code-block:: bash

    git cd clean

.. container:: responsive-image

    .. image:: https://www.gitcd.io/images/cli/git-cd_clean-2.png
        :alt: git cd clean


Start a new feature
-------------------
Starts a new feature branch from your master branch. If you don't pass a branch name, you will be asked later.

.. code-block:: bash

    git cd start <branchname>

.. container:: responsive-image

    .. image:: https://www.gitcd.io/images/cli/git-cd_start.png
        :alt: git cd start


Updating a feature with the master branch
-----------------------------------------
Merges the remote master branch into your current feature branch. If you don't pass a branch name, your current branch will be taken.

.. code-block:: bash

    git cd refresh <branchname>

.. container:: responsive-image

    .. image:: https://www.gitcd.io/images/cli/git-cd_refresh.png
        :alt: git cd refresh


Testing a feature
-----------------
You might have a testing environment or want to run some integration test on a shared or common branch without the need to push out your feature with the next release. Therefore you can't merge it into the master. That's exactly why the git-cd test command exists. You might even have some dedicated tester checking the new feature on this specific branch. So to merge your new feature into your testing branch you call this command, if you don't pass a branch name, your current feature branch will be merged.

.. code-block:: bash

    git cd test <branchname>

.. container:: responsive-image

    .. image:: https://www.gitcd.io/images/cli/git-cd_test.png
        :alt: git cd test


Open a pull request for code review
-----------------------------------
Opens a pull request to your master branch. If you don't pass a branch name, your current branch will be taken.

.. code-block:: bash

    git cd review <branchname>

.. container:: responsive-image

    .. image:: https://www.gitcd.io/images/cli/git-cd_review.png
        :alt: git cd review


See the status of a pull request
--------------------------------
You can see the status of a pull request directly in the command line. If you don't pass a branch name, your current branch will be taken.

.. code-block:: bash

    git cd status <branchname>

.. container:: responsive-image

    .. image:: https://www.gitcd.io/images/cli/git-cd_status.png
        :alt: git cd status

Finish a feature branch
-----------------------
If your pull request got approved by a fellow developer and all your tests were running properly, you probably want to merge your feature into the master branch. If you don't pass a branch name, your current branch will be taken.

.. code-block:: bash

    git cd finish <branchname>

.. container:: responsive-image

    .. image:: https://www.gitcd.io/images/cli/git-cd_finish.png
        :alt: git cd finish


Compare different branches or tags
----------------------------------
By now, your code is in the master branch. Personally, I always like to see what I am going to release by comparing the current branch (which is master after the finish) against the latest tag. If you don't pass a branch or tag name, the latest tag will be taken.

.. code-block:: bash

    git cd compare <branchname>||<tagname>

.. container:: responsive-image

    .. image:: https://www.gitcd.io/images/cli/git-cd_compare.png
        :alt: git cd compare


Release a new version
---------------------
Now your feature is merged and you made sure you know the changes going out, you are ready to ship it. This command creates a new tag from the master branch and executes any command you've setup in the initialize command.

.. code-block:: bash

    git cd release

.. container:: responsive-image

    .. image:: https://www.gitcd.io/images/cli/git-cd_release.png
        :alt: git cd release

Known Issues
############

If you discover any bugs, feel free to create an issue on GitHub or fork this repository
and send us a pull request.

`Issues List`_.


Authors
#######

-  Claudio Walser (https://github.com/claudio-walser)
-  Phil Christen (https://github.com/pchr-srf)
-  Urban Etter (https://github.com/mms-uret)
-  Gianni Carafa (https://github.com/mms-gianni)


Contributing
############

1. Fork it
2. Add this repository as an origin (``git remote add upstream https://github.com/gitcd-io/gitcd.git``)
3. Create your feature branch (``git cd start my-new-feature``)
4. Commit your changes (``git commit -am 'Add some feature'``)
5. Push to the branch (``git push origin feature/my-new-feature``)
6. Create new Pull Request against upstream (``git cd review my-new-feature``)


License
#######

Apache License 2.0 see
https://github.com/gitcd-io/gitcd/blob/master/LICENSE

.. _Issues List: https://github.com/gitcd-io/gitcd/issues


            

Raw data

            {
    "_id": null,
    "home_page": "https://www.gitcd.io",
    "name": "gitcd",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "git, application, continuos delivery",
    "author": "Claudio Walser",
    "author_email": "info@gitcd.io",
    "download_url": "https://files.pythonhosted.org/packages/76/2a/ba339b386e929e77babe2830e748533b229571a3a1102bc5980345c55465/gitcd-2.2.9.tar.gz",
    "platform": null,
    "description": "Continuous tool for working with git\n====================================\n\n.. image:: https://www.gitcd.io/images/logo.svg\n    :height: 150px\n    :width: 150px\n\n\n\n**Development Status**\n\n.. image:: https://img.shields.io/pypi/status/gitcd.svg\n   :target: https://pypi.org/project/gitcd/\n\n.. image:: https://travis-ci.org/gitcd-io/gitcd.svg?branch=master\n    :target: https://travis-ci.org/gitcd-io/gitcd\n\n.. image:: https://readthedocs.org/projects/gitcd/badge/?version=latest\n    :target: https://gitcd.readthedocs.org/en/latest/?badge=latest\n\n.. image:: https://img.shields.io/github/last-commit/gitcd-io/gitcd.svg\n    :target: https://github.com/gitcd-io/gitcd/commits/master\n\n\n\n**Package Info**\n\n.. image:: https://badge.fury.io/py/gitcd.svg\n    :target: https://pypi.org/project/gitcd/\n\n.. image:: https://img.shields.io/pypi/dm/gitcd.svg\n    :target: https://pypi.org/project/gitcd/\n\n.. image:: https://img.shields.io/pypi/wheel/gitcd.svg\n    :target: https://pypi.org/project/gitcd/\n\n.. image:: http://img.shields.io/badge/license-APACHE2-blue.svg\n    :target: https://github.com/gitcd-io/gitcd/blob/master/LICENSE\n\n.. image:: https://img.shields.io/pypi/pyversions/gitcd.svg\n    :target: https://pypi.org/project/gitcd/\n\n\nDescription\n###########\n\n**gitcd** is a little helper for continuous delivery workflows, using git as scm.\n\n\nInstallation of gitcd\n#####################\n\n\n\nPre requisites\n--------------\nGitcd is written in Python3. Most systems still deliver with Python2 as default.\nYou need to install Python3 in order to run gitcd properly.\n\nMacOSX\n______\n\n.. code-block:: bash\n\n    brew install python3\n\nUbuntu / Debian\n_______________\n\n.. code-block:: bash\n\n    sudo apt-get install python3 python3-pip\n\n\n\n\n\nInstallation of gitcd itself\n----------------------------\nNow you are ready to install gitcd itself, which is quite easy using pip.\n\n.. code-block:: bash\n\n    pip3 install --user --upgrade gitcd\n\n\nTrouble using git-cd?\n---------------------\nIf the command \"git-cd\" or \"git cd\" is not available now, you probably need to add the pip binary path to your $PATH variable.\n\nMacOSX\n______\n\nOpen ~/.bash_profile or ~/.zprofile in your favorite editor and add the following lines at the end of the file.\n\n.. note::\n\n    Replace <python-version> with your currently installed python version, e.g. ``3.11``\n\n.. code-block:: bash\n\n    if [ -d \"$HOME/Library/Python/<python-version>/bin\" ] ; then\n        PATH=\"$HOME/Library/Python/<python-version>/bin:$PATH\"\n    fi\n\nUbuntu / Debian\n_______________\n\nOpen ~/.profile in your favorite editor and add the following lines at the end of the file.\n\n.. code-block:: bash\n\n    if [ -d \"$HOME/.local/bin\" ] ; then\n        PATH=\"$HOME/.local/bin:$PATH\"\n    fi\n\n\nArgument Completion\n-------------------\nGitcd supports argument completion, to activate it execute the following steps.\n\nMacOSX\n______\n\nUnder OSX it isn't that simple unfortunately. Global completion requires bash support for complete -D, which was introduced in bash 4.2. On OS X or older Linux systems, you will need to update bash to use this feature. Check the version of the running copy of bash with echo $BASH_VERSION. On OS X, install bash via Homebrew (brew install bash), add /usr/local/bin/bash to /etc/shells, and run chsh to change your shell.\n\nYou might consider reading the docs for argcomplete https://argcomplete.readthedocs.io/en/latest/#global-completion\n\nActivate Global argcomplete\n_____________________________\n\nYou are now ready to activate global argcompletion for python with the following command.\n\n.. code-block:: bash\n\n    activate-global-python-argcomplete\n\n\n\n\nCLI Usage of gitcd\n##################\n\nFor convenience, you can call gitcd as a git sub command as well as directly. Therefore, you can replace \"git cd\" in any of the following commands with \"git-cd\" if you like it more.\n\n\n.. note::\n\n    Python argument completion won't work if you use it as a git sub command!\n\n\nInitializing gitcd\n------------------\nFirst of all you probably want to initialize one of your local git repositories with gitcd. Change directory to one of your local git repositories and run git-cd init.\nMost of the values should be very self-explanatory. Still, here is a complete list of values you can pass.\n\n- **Branch name for production releases?**\n\n  - This is the branch git-cd is creating a tag from if you execute the release command, you probably want to go with **master** here.\n\n- **Branch name for feature development?**\n\n  - This is more kind of a prefix for feature branches, it is empty by default. If you wish your feature branch has a name like feature/my-new-feature, you can set this prefix to **feature/**.\n\n- **Branch name for test releases?**\n\n  - Pass your branch name where you want to merge code into while executing git-cd test. Let it empty if you don't want to use that feature. At work, we have this for many repositories set to **test**.\n\n- **Version tag prefix?**\n\n  - Prefix for your release tags, this is **v** by default which would result in a tag equals to v0.0.1 for example.\n\n- **Version type? You can either set your tag number manually, read it from a version file or generate it by date.**\n\n  - This is about how git-cd release gets your current version number you want to release.\n\n    - manual means you'll get asked to enter the version number by hand\n    - file means gitcd reads the version number from a file, you'll be asked from which file in the next step\n    - date means you generate a version number from a date scheme, you'll be asked for the scheme later. As a date version scheme, you can pass any directive for http://strftime.org/.\n\n- **Do you want to execute some additional commands after a release?**\n\n  - This is useful if you want to execute any cli script after creating a tag, for example, gitcd itself uses such a script to publish the new release on pypi after creating a new tag. You can see the script here https://github.com/gitcd-io/gitcd/blob/master/publish.sh.\n\n- **Do you want to execute some additional commands before a release?**\n\n  - This is useful if you want to execute any cli script before creating a tag, for example, if you want to modify any file in your git tree where you want to add the current version number.\n\n\n.. code-block:: bash\n\n    git cd init\n\nThe image below represents the configuration for gitcd itself.\n\n.. container:: responsive-image\n\n    .. image:: https://www.gitcd.io/images/cli/git-cd_init.png\n        :alt: git cd init\n\n\n\nCheck current version\n---------------------\nYou want to know which version of gitcd you are currently running?\n\n.. code-block:: bash\n\n    git cd version\n\n.. container:: responsive-image\n\n    .. image:: https://www.gitcd.io/images/cli/git-cd_version.png\n        :alt: git cd version\n\n\nUpgrade gitcd itself\n--------------------\nGitcd is able to check your local version with the one published on pypi and upgrade itself if you wish so.\n\n.. code-block:: bash\n\n    git cd upgrade\n\n.. container:: responsive-image\n\n    .. image:: https://www.gitcd.io/images/cli/git-cd_upgrade-2.png\n        :alt: git cd upgrade\n\n\nClean up local branches\n-----------------------\nThe tool is able to cleanup all local branches which doesn't exist on remotes. This is done with the clean command.\n\n.. code-block:: bash\n\n    git cd clean\n\n.. container:: responsive-image\n\n    .. image:: https://www.gitcd.io/images/cli/git-cd_clean-2.png\n        :alt: git cd clean\n\n\nStart a new feature\n-------------------\nStarts a new feature branch from your master branch. If you don't pass a branch name, you will be asked later.\n\n.. code-block:: bash\n\n    git cd start <branchname>\n\n.. container:: responsive-image\n\n    .. image:: https://www.gitcd.io/images/cli/git-cd_start.png\n        :alt: git cd start\n\n\nUpdating a feature with the master branch\n-----------------------------------------\nMerges the remote master branch into your current feature branch. If you don't pass a branch name, your current branch will be taken.\n\n.. code-block:: bash\n\n    git cd refresh <branchname>\n\n.. container:: responsive-image\n\n    .. image:: https://www.gitcd.io/images/cli/git-cd_refresh.png\n        :alt: git cd refresh\n\n\nTesting a feature\n-----------------\nYou might have a testing environment or want to run some integration test on a shared or common branch without the need to push out your feature with the next release. Therefore you can't merge it into the master. That's exactly why the git-cd test command exists. You might even have some dedicated tester checking the new feature on this specific branch. So to merge your new feature into your testing branch you call this command, if you don't pass a branch name, your current feature branch will be merged.\n\n.. code-block:: bash\n\n    git cd test <branchname>\n\n.. container:: responsive-image\n\n    .. image:: https://www.gitcd.io/images/cli/git-cd_test.png\n        :alt: git cd test\n\n\nOpen a pull request for code review\n-----------------------------------\nOpens a pull request to your master branch. If you don't pass a branch name, your current branch will be taken.\n\n.. code-block:: bash\n\n    git cd review <branchname>\n\n.. container:: responsive-image\n\n    .. image:: https://www.gitcd.io/images/cli/git-cd_review.png\n        :alt: git cd review\n\n\nSee the status of a pull request\n--------------------------------\nYou can see the status of a pull request directly in the command line. If you don't pass a branch name, your current branch will be taken.\n\n.. code-block:: bash\n\n    git cd status <branchname>\n\n.. container:: responsive-image\n\n    .. image:: https://www.gitcd.io/images/cli/git-cd_status.png\n        :alt: git cd status\n\nFinish a feature branch\n-----------------------\nIf your pull request got approved by a fellow developer and all your tests were running properly, you probably want to merge your feature into the master branch. If you don't pass a branch name, your current branch will be taken.\n\n.. code-block:: bash\n\n    git cd finish <branchname>\n\n.. container:: responsive-image\n\n    .. image:: https://www.gitcd.io/images/cli/git-cd_finish.png\n        :alt: git cd finish\n\n\nCompare different branches or tags\n----------------------------------\nBy now, your code is in the master branch. Personally, I always like to see what I am going to release by comparing the current branch (which is master after the finish) against the latest tag. If you don't pass a branch or tag name, the latest tag will be taken.\n\n.. code-block:: bash\n\n    git cd compare <branchname>||<tagname>\n\n.. container:: responsive-image\n\n    .. image:: https://www.gitcd.io/images/cli/git-cd_compare.png\n        :alt: git cd compare\n\n\nRelease a new version\n---------------------\nNow your feature is merged and you made sure you know the changes going out, you are ready to ship it. This command creates a new tag from the master branch and executes any command you've setup in the initialize command.\n\n.. code-block:: bash\n\n    git cd release\n\n.. container:: responsive-image\n\n    .. image:: https://www.gitcd.io/images/cli/git-cd_release.png\n        :alt: git cd release\n\nKnown Issues\n############\n\nIf you discover any bugs, feel free to create an issue on GitHub or fork this repository\nand send us a pull request.\n\n`Issues List`_.\n\n\nAuthors\n#######\n\n-  Claudio Walser (https://github.com/claudio-walser)\n-  Phil Christen (https://github.com/pchr-srf)\n-  Urban Etter (https://github.com/mms-uret)\n-  Gianni Carafa (https://github.com/mms-gianni)\n\n\nContributing\n############\n\n1. Fork it\n2. Add this repository as an origin (``git remote add upstream https://github.com/gitcd-io/gitcd.git``)\n3. Create your feature branch (``git cd start my-new-feature``)\n4. Commit your changes (``git commit -am 'Add some feature'``)\n5. Push to the branch (``git push origin feature/my-new-feature``)\n6. Create new Pull Request against upstream (``git cd review my-new-feature``)\n\n\nLicense\n#######\n\nApache License 2.0 see\nhttps://github.com/gitcd-io/gitcd/blob/master/LICENSE\n\n.. _Issues List: https://github.com/gitcd-io/gitcd/issues\n\n",
    "bugtrack_url": null,
    "license": "Apache License",
    "summary": "Tool for continuous delivery using git",
    "version": "2.2.9",
    "project_urls": {
        "Homepage": "https://www.gitcd.io"
    },
    "split_keywords": [
        "git",
        " application",
        " continuos delivery"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ebf363a88df1f47bc1512f13e89b62ae975878cde1dd1d99ad3bf02af92888a5",
                "md5": "c5bec053a724d5758e5d51c806d29036",
                "sha256": "033a28aebd5442cb5d2c3e356b7214e5d343ba54af904b0ab6c31cc6deebafd3"
            },
            "downloads": -1,
            "filename": "gitcd-2.2.9-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c5bec053a724d5758e5d51c806d29036",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 45421,
            "upload_time": "2025-11-01T13:29:28",
            "upload_time_iso_8601": "2025-11-01T13:29:28.468581Z",
            "url": "https://files.pythonhosted.org/packages/eb/f3/63a88df1f47bc1512f13e89b62ae975878cde1dd1d99ad3bf02af92888a5/gitcd-2.2.9-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "762aba339b386e929e77babe2830e748533b229571a3a1102bc5980345c55465",
                "md5": "3800947543322f5dc299de720f2037d1",
                "sha256": "79b3951e1ee082d06c02e877106c5c8ff5bd0233909d8619611346162d1144fa"
            },
            "downloads": -1,
            "filename": "gitcd-2.2.9.tar.gz",
            "has_sig": false,
            "md5_digest": "3800947543322f5dc299de720f2037d1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 33454,
            "upload_time": "2025-11-01T13:29:29",
            "upload_time_iso_8601": "2025-11-01T13:29:29.406910Z",
            "url": "https://files.pythonhosted.org/packages/76/2a/ba339b386e929e77babe2830e748533b229571a3a1102bc5980345c55465/gitcd-2.2.9.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-11-01 13:29:29",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "gitcd"
}
        
Elapsed time: 0.51115s