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.
Featurespython-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.
As of 5.0.0, python-gitlab is compatible with Python 3.9+.
Use pip to install the latest stable version of python-gitlab:
$ pip install --upgrade python-gitlab
The current development version is available on both GitHub.com and GitLab.com, and can be installed directly from the git repository:
$ pip install git+https://github.com/python-gitlab/python-gitlab.git
From GitLab:
$ 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. 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:
$ docker run -it --rm registry.gitlab.com/python-gitlab/python-gitlab:latest <command> ...
For example, to get a project on GitLab.com (without authentication):
$ 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:
$ 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:
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:
$ docker build -t python-gitlab:latest .
Run your own image:
$ docker run -it --rm python-gitlab:latest <command> ...
Build a Debian slim-based image:
$ 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.
DocumentationThe full documentation for CLI and API is available on readthedocs.
Build the docsWe use tox to manage our environment and build the documentation:
pip install tox tox -e docsContributing
For guidelines for contributing to python-gitlab, refer to CONTRIBUTING.rst.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4