python-gitlab

The python wrapper for the GitLab REST and GraphQL APIs.

LGPL-3.0-or-later 123 个版本 Python >=3.10.0
安装
pip install python-gitlab
poetry add python-gitlab
pipenv install python-gitlab
conda install python-gitlab
描述

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 7.0.0, python-gitlab is compatible with Python 3.10+.

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 ...

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 ...

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>`_.
版本列表
8.4.0 2026-05-28
8.3.0 2026-04-28
8.2.0 2026-03-28
8.1.0 2026-02-28
8.0.0 2026-01-28
7.1.0 2025-12-28
7.0.0 2025-10-29
6.5.0 2025-10-17
6.4.0 2025-09-28
6.3.0 2025-08-28
6.2.0 2025-07-28
6.1.0 2025-06-28
6.0.0 2025-06-04
5.6.0 2025-01-28
5.5.0 2025-01-28
5.4.0 2025-01-28
5.3.1 2025-01-07
5.3.0 2024-12-28
5.2.0 2024-12-17
5.1.0 2024-11-28
5.0.0 2024-10-28
4.13.0 2024-10-08
4.12.2 2024-10-01
4.12.1 2024-09-30
4.12.0 2024-09-28
4.11.1 2024-09-13
4.11.0 2024-09-13
4.10.0 2024-08-28
4.9.0 2024-08-06
4.8.0 2024-07-16
4.7.0 2024-06-28
4.6.0 2024-05-28
4.5.0 2024-05-13
4.4.0 2024-01-15
4.3.0 2023-12-28
4.2.0 2023-11-28
4.1.1 2023-11-03
4.1.0 2023-11-03
4.0.0 2023-11-03
3.15.0 2023-06-09
3.14.0 2023-04-11
3.13.0 2023-01-30
3.12.0 2022-11-28
3.11.0 2022-10-28
3.10.0 2022-09-28
3.9.0 2022-08-28
3.8.1 2022-08-10
3.8.0 2022-08-04
3.7.0 2022-07-28
3.6.0 2022-06-28
3.5.0 2022-05-28
3.4.0 2022-04-28
3.3.0 2022-03-28
3.2.0 2022-02-28
3.1.1 2022-01-28
3.1.0 2022-01-14
3.0.0 2022-01-05
2.10.1 2021-08-28
2.10.0 2021-07-28
2.9.0 2021-06-28
2.8.0 2021-06-10
2.7.1 2021-04-26
2.7.0 2021-04-26
2.6.0 2021-01-29
2.5.0 2020-09-01
2.4.0 2020-07-09
2.3.1 2020-06-09
2.3.0 2020-06-08
2.2.0 2020-04-07
2.1.2 2020-03-09
2.1.1 2020-03-09
2.1.0 2020-03-08
2.0.1 2020-02-05
2.0.0 2020-01-26
1.15.0 2019-12-16
1.14.0 2019-12-07
1.13.0 2019-11-02
1.12.1 2019-10-07
1.12.0 2019-10-06
1.11.0 2019-08-31
1.10.0 2019-07-22
1.9.0 2019-06-19
1.8.0 2019-02-22
1.7.0 2018-12-09
1.6.0 2018-08-25
1.5.1 2018-06-23
1.5.0 2018-06-22
1.4.0 2018-05-19
1.3.0 2018-02-18
1.2.0 2018-01-01
1.1.0 2017-11-03
1.0.2 2017-09-29
1.0.1 2017-09-21
1.0.0 2017-09-08
0.21.2 2017-06-11
0.21.1 2017-05-25
0.21 2017-05-24
0.20 2017-03-25
0.19 2017-02-21
0.18 2016-12-27
0.17 2016-12-02
0.16 2016-10-16
0.15.1 2016-09-03
0.15 2016-08-28
0.14 2016-08-07
0.13 2016-05-16
0.12.2 2016-03-19
0.12.1 2016-02-03
0.11.1 2016-01-17
0.11 2016-01-09
0.10 2015-12-29
0.9.2 2015-07-11
0.9.1 2015-05-15
0.9 2015-05-15
0.8 2014-10-26
0.7 2014-08-21
0.6 2014-01-17
0.5 2013-12-26
0.4 2013-09-26
0.3 2013-08-27
0.2 2013-08-08
0.1 2013-07-08