python-gitlab


Namepython-gitlab JSON
Version 5.2.0 PyPI version JSON
download
home_pageNone
SummaryThe python wrapper for the GitLab REST and GraphQL APIs.
upload_time2024-12-17 13:23:00
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9.0
licenseLGPL-3.0-or-later
keywords api client gitlab python python-gitlab wrapper
VCS
bugtrack_url
requirements gql httpx requests requests-toolbelt
Travis-CI No Travis.
coveralls test coverage No coveralls.
            python-gitlab
=============

.. image:: https://github.com/python-gitlab/python-gitlab/workflows/Test/badge.svg
   :target: https://github.com/python-gitlab/python-gitlab/actions

.. image:: https://badge.fury.io/py/python-gitlab.svg
   :target: https://badge.fury.io/py/python-gitlab

.. image:: https://readthedocs.org/projects/python-gitlab/badge/?version=latest
   :target: https://python-gitlab.readthedocs.org/en/latest/?badge=latest

.. image:: https://codecov.io/github/python-gitlab/python-gitlab/coverage.svg?branch=main
    :target: https://codecov.io/github/python-gitlab/python-gitlab?branch=main

.. image:: https://img.shields.io/pypi/pyversions/python-gitlab.svg
   :target: https://pypi.python.org/pypi/python-gitlab

.. image:: https://img.shields.io/gitter/room/python-gitlab/Lobby.svg
   :target: https://gitter.im/python-gitlab/Lobby

.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
    :target: https://github.com/python/black

.. image:: https://img.shields.io/github/license/python-gitlab/python-gitlab
   :target: https://github.com/python-gitlab/python-gitlab/blob/main/COPYING

``python-gitlab`` is a Python package providing access to the GitLab APIs.

It includes a client for GitLab's v4 REST API, synchronous and asynchronous GraphQL API
clients, as well as a CLI tool (``gitlab``) wrapping REST API endpoints.

.. _features:

Features
--------

``python-gitlab`` enables you to:

* write Pythonic code to manage your GitLab resources.
* pass arbitrary parameters to the GitLab API. Simply follow GitLab's docs
  on what parameters are available.
* use a synchronous or asynchronous client when using the GraphQL API.
* access arbitrary endpoints as soon as they are available on GitLab, by using
  lower-level API methods.
* use persistent requests sessions for authentication, proxy and certificate handling.
* handle smart retries on network and server errors, with rate-limit handling.
* flexible handling of paginated responses, including lazy iterators.
* automatically URL-encode paths and parameters where needed.
* automatically convert some complex data structures to API attribute types
* merge configuration from config files, environment variables and arguments.

Installation
------------

As of 5.0.0, ``python-gitlab`` is compatible with Python 3.9+.

Use ``pip`` to install the latest stable version of ``python-gitlab``:

.. code-block:: console

   $ pip install --upgrade python-gitlab

The current development version is available on both `GitHub.com
<https://github.com/python-gitlab/python-gitlab>`__ and `GitLab.com
<https://gitlab.com/python-gitlab/python-gitlab>`__, and can be
installed directly from the git repository:

.. code-block:: console

   $ pip install git+https://github.com/python-gitlab/python-gitlab.git

From GitLab:

.. code-block:: console

   $ pip install git+https://gitlab.com/python-gitlab/python-gitlab.git

Using the docker images
-----------------------

``python-gitlab`` provides Docker images in two flavors, based on the Alpine and Debian slim
python `base images <https://hub.docker.com/_/python>`__. The default tag is ``alpine``,
but you can explicitly use the alias (see below).

The alpine image is smaller, but you may want to use the Debian-based slim tag (currently 
based on ``-slim-bullseye``) if you are running into issues or need a more complete environment
with a bash shell, such as in CI jobs.

The images are published on the GitLab registry, for example:

* ``registry.gitlab.com/python-gitlab/python-gitlab:latest`` (latest, alpine alias)
* ``registry.gitlab.com/python-gitlab/python-gitlab:alpine`` (latest alpine)
* ``registry.gitlab.com/python-gitlab/python-gitlab:slim-bullseye`` (latest slim-bullseye)
* ``registry.gitlab.com/python-gitlab/python-gitlab:v3.2.0`` (alpine alias)
* ``registry.gitlab.com/python-gitlab/python-gitlab:v3.2.0-alpine``
* ``registry.gitlab.com/python-gitlab/python-gitlab:v3.2.0-slim-bullseye``

You can run the Docker image directly from the GitLab registry:

.. code-block:: console

   $ docker run -it --rm registry.gitlab.com/python-gitlab/python-gitlab:latest <command> ...

For example, to get a project on GitLab.com (without authentication):

.. code-block:: console

   $ docker run -it --rm registry.gitlab.com/python-gitlab/python-gitlab:latest project get --id gitlab-org/gitlab

You can also mount your own config file:

.. code-block:: console

   $ docker run -it --rm -v /path/to/python-gitlab.cfg:/etc/python-gitlab.cfg registry.gitlab.com/python-gitlab/python-gitlab:latest <command> ...

Usage inside GitLab CI
~~~~~~~~~~~~~~~~~~~~~~

If you want to use the Docker image directly inside your GitLab CI as an ``image``, you will need to override
the ``entrypoint``, `as noted in the official GitLab documentation <https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#override-the-entrypoint-of-an-image>`__:

.. code-block:: yaml

   Job Name:
      image:
         name: registry.gitlab.com/python-gitlab/python-gitlab:latest
         entrypoint: [""]
      before_script:
         gitlab --version
      script:
         gitlab <command>

Building the image
~~~~~~~~~~~~~~~~~~

To build your own image from this repository, run:

.. code-block:: console

   $ docker build -t python-gitlab:latest .

Run your own image:

.. code-block:: console

   $ docker run -it --rm python-gitlab:latest <command> ...

Build a Debian slim-based image:

.. code-block:: console

   $ docker build -t python-gitlab:latest --build-arg PYTHON_FLAVOR=slim-bullseye .

Bug reports
-----------

Please report bugs and feature requests at
https://github.com/python-gitlab/python-gitlab/issues.

Gitter Community Chat
---------------------

We have a `gitter <https://gitter.im/python-gitlab/Lobby>`_ community chat
available at https://gitter.im/python-gitlab/Lobby, which you can also
directly access via the Open Chat button below.

If you have a simple question, the community might be able to help already,
without you opening an issue. If you regularly use python-gitlab, we also
encourage you to join and participate. You might discover new ideas and
use cases yourself!

Documentation
-------------

The full documentation for CLI and API is available on `readthedocs
<http://python-gitlab.readthedocs.org/en/stable/>`_.

Build the docs
~~~~~~~~~~~~~~

We use ``tox`` to manage our environment and build the documentation::

    pip install tox
    tox -e docs

Contributing
------------

For guidelines for contributing to ``python-gitlab``, refer to `CONTRIBUTING.rst <https://github.com/python-gitlab/python-gitlab/blob/main/CONTRIBUTING.rst>`_.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "python-gitlab",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9.0",
    "maintainer_email": "John Villalovos <john@sodarock.com>, Max Wittig <max.wittig@siemens.com>, Nejc Habjan <nejc.habjan@siemens.com>, Roger Meier <r.meier@siemens.com>",
    "keywords": "api, client, gitlab, python, python-gitlab, wrapper",
    "author": null,
    "author_email": "Gauvain Pocentek <gauvain@pocentek.net>",
    "download_url": "https://files.pythonhosted.org/packages/8f/20/30e70cb0ebb6d86f6f8bf21e75896e2c4fc8f8523eb82212d3827d05f8f3/python_gitlab-5.2.0.tar.gz",
    "platform": null,
    "description": "python-gitlab\n=============\n\n.. image:: https://github.com/python-gitlab/python-gitlab/workflows/Test/badge.svg\n   :target: https://github.com/python-gitlab/python-gitlab/actions\n\n.. image:: https://badge.fury.io/py/python-gitlab.svg\n   :target: https://badge.fury.io/py/python-gitlab\n\n.. image:: https://readthedocs.org/projects/python-gitlab/badge/?version=latest\n   :target: https://python-gitlab.readthedocs.org/en/latest/?badge=latest\n\n.. image:: https://codecov.io/github/python-gitlab/python-gitlab/coverage.svg?branch=main\n    :target: https://codecov.io/github/python-gitlab/python-gitlab?branch=main\n\n.. image:: https://img.shields.io/pypi/pyversions/python-gitlab.svg\n   :target: https://pypi.python.org/pypi/python-gitlab\n\n.. image:: https://img.shields.io/gitter/room/python-gitlab/Lobby.svg\n   :target: https://gitter.im/python-gitlab/Lobby\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n    :target: https://github.com/python/black\n\n.. image:: https://img.shields.io/github/license/python-gitlab/python-gitlab\n   :target: https://github.com/python-gitlab/python-gitlab/blob/main/COPYING\n\n``python-gitlab`` is a Python package providing access to the GitLab APIs.\n\nIt includes a client for GitLab's v4 REST API, synchronous and asynchronous GraphQL API\nclients, as well as a CLI tool (``gitlab``) wrapping REST API endpoints.\n\n.. _features:\n\nFeatures\n--------\n\n``python-gitlab`` enables you to:\n\n* write Pythonic code to manage your GitLab resources.\n* pass arbitrary parameters to the GitLab API. Simply follow GitLab's docs\n  on what parameters are available.\n* use a synchronous or asynchronous client when using the GraphQL API.\n* access arbitrary endpoints as soon as they are available on GitLab, by using\n  lower-level API methods.\n* use persistent requests sessions for authentication, proxy and certificate handling.\n* handle smart retries on network and server errors, with rate-limit handling.\n* flexible handling of paginated responses, including lazy iterators.\n* automatically URL-encode paths and parameters where needed.\n* automatically convert some complex data structures to API attribute types\n* merge configuration from config files, environment variables and arguments.\n\nInstallation\n------------\n\nAs of 5.0.0, ``python-gitlab`` is compatible with Python 3.9+.\n\nUse ``pip`` to install the latest stable version of ``python-gitlab``:\n\n.. code-block:: console\n\n   $ pip install --upgrade python-gitlab\n\nThe current development version is available on both `GitHub.com\n<https://github.com/python-gitlab/python-gitlab>`__ and `GitLab.com\n<https://gitlab.com/python-gitlab/python-gitlab>`__, and can be\ninstalled directly from the git repository:\n\n.. code-block:: console\n\n   $ pip install git+https://github.com/python-gitlab/python-gitlab.git\n\nFrom GitLab:\n\n.. code-block:: console\n\n   $ pip install git+https://gitlab.com/python-gitlab/python-gitlab.git\n\nUsing the docker images\n-----------------------\n\n``python-gitlab`` provides Docker images in two flavors, based on the Alpine and Debian slim\npython `base images <https://hub.docker.com/_/python>`__. The default tag is ``alpine``,\nbut you can explicitly use the alias (see below).\n\nThe alpine image is smaller, but you may want to use the Debian-based slim tag (currently \nbased on ``-slim-bullseye``) if you are running into issues or need a more complete environment\nwith a bash shell, such as in CI jobs.\n\nThe images are published on the GitLab registry, for example:\n\n* ``registry.gitlab.com/python-gitlab/python-gitlab:latest`` (latest, alpine alias)\n* ``registry.gitlab.com/python-gitlab/python-gitlab:alpine`` (latest alpine)\n* ``registry.gitlab.com/python-gitlab/python-gitlab:slim-bullseye`` (latest slim-bullseye)\n* ``registry.gitlab.com/python-gitlab/python-gitlab:v3.2.0`` (alpine alias)\n* ``registry.gitlab.com/python-gitlab/python-gitlab:v3.2.0-alpine``\n* ``registry.gitlab.com/python-gitlab/python-gitlab:v3.2.0-slim-bullseye``\n\nYou can run the Docker image directly from the GitLab registry:\n\n.. code-block:: console\n\n   $ docker run -it --rm registry.gitlab.com/python-gitlab/python-gitlab:latest <command> ...\n\nFor example, to get a project on GitLab.com (without authentication):\n\n.. code-block:: console\n\n   $ docker run -it --rm registry.gitlab.com/python-gitlab/python-gitlab:latest project get --id gitlab-org/gitlab\n\nYou can also mount your own config file:\n\n.. code-block:: console\n\n   $ docker run -it --rm -v /path/to/python-gitlab.cfg:/etc/python-gitlab.cfg registry.gitlab.com/python-gitlab/python-gitlab:latest <command> ...\n\nUsage inside GitLab CI\n~~~~~~~~~~~~~~~~~~~~~~\n\nIf you want to use the Docker image directly inside your GitLab CI as an ``image``, you will need to override\nthe ``entrypoint``, `as noted in the official GitLab documentation <https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#override-the-entrypoint-of-an-image>`__:\n\n.. code-block:: yaml\n\n   Job Name:\n      image:\n         name: registry.gitlab.com/python-gitlab/python-gitlab:latest\n         entrypoint: [\"\"]\n      before_script:\n         gitlab --version\n      script:\n         gitlab <command>\n\nBuilding the image\n~~~~~~~~~~~~~~~~~~\n\nTo build your own image from this repository, run:\n\n.. code-block:: console\n\n   $ docker build -t python-gitlab:latest .\n\nRun your own image:\n\n.. code-block:: console\n\n   $ docker run -it --rm python-gitlab:latest <command> ...\n\nBuild a Debian slim-based image:\n\n.. code-block:: console\n\n   $ docker build -t python-gitlab:latest --build-arg PYTHON_FLAVOR=slim-bullseye .\n\nBug reports\n-----------\n\nPlease report bugs and feature requests at\nhttps://github.com/python-gitlab/python-gitlab/issues.\n\nGitter Community Chat\n---------------------\n\nWe have a `gitter <https://gitter.im/python-gitlab/Lobby>`_ community chat\navailable at https://gitter.im/python-gitlab/Lobby, which you can also\ndirectly access via the Open Chat button below.\n\nIf you have a simple question, the community might be able to help already,\nwithout you opening an issue. If you regularly use python-gitlab, we also\nencourage you to join and participate. You might discover new ideas and\nuse cases yourself!\n\nDocumentation\n-------------\n\nThe full documentation for CLI and API is available on `readthedocs\n<http://python-gitlab.readthedocs.org/en/stable/>`_.\n\nBuild the docs\n~~~~~~~~~~~~~~\n\nWe use ``tox`` to manage our environment and build the documentation::\n\n    pip install tox\n    tox -e docs\n\nContributing\n------------\n\nFor guidelines for contributing to ``python-gitlab``, refer to `CONTRIBUTING.rst <https://github.com/python-gitlab/python-gitlab/blob/main/CONTRIBUTING.rst>`_.\n",
    "bugtrack_url": null,
    "license": "LGPL-3.0-or-later",
    "summary": "The python wrapper for the GitLab REST and GraphQL APIs.",
    "version": "5.2.0",
    "project_urls": {
        "Changelog": "https://github.com/python-gitlab/python-gitlab/blob/main/CHANGELOG.md",
        "Documentation": "https://python-gitlab.readthedocs.io",
        "Homepage": "https://github.com/python-gitlab/python-gitlab",
        "Source": "https://github.com/python-gitlab/python-gitlab"
    },
    "split_keywords": [
        "api",
        " client",
        " gitlab",
        " python",
        " python-gitlab",
        " wrapper"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "81409eaeb1575b1654282030ff8d147ae5cb440a2fcc65fc799107e97fd59c1a",
                "md5": "fbfb3f6b9e6ce53a24c4ff726b7700c6",
                "sha256": "aa0136f3377210682970688789c1b510f948b68c4c14d1b873b590335501bd04"
            },
            "downloads": -1,
            "filename": "python_gitlab-5.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fbfb3f6b9e6ce53a24c4ff726b7700c6",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9.0",
            "size": 146107,
            "upload_time": "2024-12-17T13:22:57",
            "upload_time_iso_8601": "2024-12-17T13:22:57.822262Z",
            "url": "https://files.pythonhosted.org/packages/81/40/9eaeb1575b1654282030ff8d147ae5cb440a2fcc65fc799107e97fd59c1a/python_gitlab-5.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8f2030e70cb0ebb6d86f6f8bf21e75896e2c4fc8f8523eb82212d3827d05f8f3",
                "md5": "9ad9d2954c39c3d8a3b7bad453a55c86",
                "sha256": "1fb99d9de78aa93fdc97a106db44f0870cba225ea2064426302db02d14027967"
            },
            "downloads": -1,
            "filename": "python_gitlab-5.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "9ad9d2954c39c3d8a3b7bad453a55c86",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9.0",
            "size": 387472,
            "upload_time": "2024-12-17T13:23:00",
            "upload_time_iso_8601": "2024-12-17T13:23:00.851691Z",
            "url": "https://files.pythonhosted.org/packages/8f/20/30e70cb0ebb6d86f6f8bf21e75896e2c4fc8f8523eb82212d3827d05f8f3/python_gitlab-5.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-17 13:23:00",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "python-gitlab",
    "github_project": "python-gitlab",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "gql",
            "specs": [
                [
                    "==",
                    "3.5.0"
                ]
            ]
        },
        {
            "name": "httpx",
            "specs": [
                [
                    "==",
                    "0.27.2"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    "==",
                    "2.32.3"
                ]
            ]
        },
        {
            "name": "requests-toolbelt",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        }
    ],
    "tox": true,
    "lcname": "python-gitlab"
}
        
Elapsed time: 1.06120s