Table of Contents
gitlab
package)gitlab
command)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 APIclients, as well as a CLI tool (gitlab
) wrapping REST API endpoints.
python-gitlab
enables you to:
write Pythonic code to manage your GitLab resources.
pass arbitrary parameters to the GitLab API. Simply follow GitLab’s docson 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 usinglower-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.
As of 5.0.0,python-gitlab
is compatible with Python 3.9+.
Usepip
to install the latest stable version ofpython-gitlab
:
$pipinstall--upgradepython-gitlab
The current development version is available on bothGitHub.com andGitLab.com, and can beinstalled directly from the git repository:
$pipinstallgit+https://github.com/python-gitlab/python-gitlab.git
From GitLab:
$pipinstallgit+https://gitlab.com/python-gitlab/python-gitlab.git
python-gitlab
provides Docker images in two flavors, based on the Alpine and Debian slimpythonbase images. The default tag isalpine
,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 (currentlybased on-slim-bullseye
) if you are running into issues or need a more complete environmentwith 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:
$dockerrun-it--rmregistry.gitlab.com/python-gitlab/python-gitlab:latest<command>...
For example, to get a project on GitLab.com (without authentication):
$dockerrun-it--rmregistry.gitlab.com/python-gitlab/python-gitlab:latestprojectget--idgitlab-org/gitlab
You can also mount your own config file:
$dockerrun-it--rm-v/path/to/python-gitlab.cfg:/etc/python-gitlab.cfgregistry.gitlab.com/python-gitlab/python-gitlab:latest<command>...
If you want to use the Docker image directly inside your GitLab CI as animage
, you will need to overridetheentrypoint
,as noted in the official GitLab documentation:
Job Name:image:name:registry.gitlab.com/python-gitlab/python-gitlab:latestentrypoint:[""]before_script:gitlab --versionscript:gitlab <command>
To build your own image from this repository, run:
$dockerbuild-tpython-gitlab:latest.
Run your own image:
$dockerrun-it--rmpython-gitlab:latest<command>...
Build a Debian slim-based image:
$dockerbuild-tpython-gitlab:latest--build-argPYTHON_FLAVOR=slim-bullseye.
Please report bugs and feature requests athttps://github.com/python-gitlab/python-gitlab/issues.
We have agitter community chatavailable athttps://gitter.im/python-gitlab/Lobby, which you can alsodirectly 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 alsoencourage you to join and participate. You might discover new ideas anduse cases yourself!
The full documentation for CLI and API is available onreadthedocs.
We usetox
to manage our environment and build the documentation:
pipinstalltoxtox-edocs
For guidelines for contributing topython-gitlab
, refer toCONTRIBUTING.rst.