Skip to content
Python wrapper for the GitLab API
Python Shell Dockerfile
Branch: master
Clone or download
Latest commit e8a3585 Aug 14, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Provide a basic issue template Mar 20, 2018
docs docs(snippets): fix project-snippets layout Jul 21, 2019
gitlab fix: remove empty list default arguments Aug 14, 2019
tools test: add group label cli tests Jul 26, 2019
.dockerignore fix(docker): use docker image with current sources Oct 9, 2018
.gitignore Add .tox to ignore to respect default tox settings Oct 20, 2016
.gitlab-ci.yml chore: move checks back to travis Jul 20, 2019
.travis.yml test: minor test fixes Jul 21, 2019
AUTHORS Prepare the 1.7.0 release Dec 9, 2018
COPYING initial import Feb 7, 2013
ChangeLog.rst feat: bump version to 1.9.0 Jun 19, 2019
Dockerfile fix: enable use of YAML in the CLI Dec 4, 2018 Fix changelog and release notes inclusion in sdist Jun 18, 2017
README.rst docs(readme): fix six url Jul 21, 2019
RELEASE_NOTES.rst fix(api): Make *MemberManager.all() return a list of objects Mar 3, 2019 fix: docker entry point argument passing Dec 4, 2018
requirements.txt Require requests>=2.4.2 Feb 27, 2018
rtd-requirements.txt Fix the RTD requirements Jan 31, 2016 chore(setup): add 3.7 to supported python versions Jul 21, 2019
test-requirements.txt Rework the API documentation Nov 5, 2016
tox.ini test: minor test fixes Jul 21, 2019


Python GitLab

python-gitlab is a Python package providing access to the GitLab server API.

It supports the v4 API of GitLab, and provides a CLI tool (gitlab).



python-gitlab depends on:

Install with pip

pip install python-gitlab

Using the python-gitlab docker image

How to build

docker build -t python-gitlab:TAG .

How to use

docker run -it --rm -e GITLAB_PRIVATE_TOKEN=<your token> -v /path/to/python-gitlab.cfg:/python-gitlab.cfg python-gitlab <command> ...

or run it directly from the upstream image:

docker run -it --rm -e GITLAB_PRIVATE_TOKEN=<your token> -v /path/to/python-gitlab.cfg:/python-gitlab.cfg <command> ...

To change the GitLab URL, use -e GITLAB_URL=<your url>

Bring your own config file: docker run -it --rm -v /path/to/python-gitlab.cfg:/python-gitlab.cfg -e GITLAB_CFG=/python-gitlab.cfg python-gitlab <command> ...

Bug reports

Please report bugs and feature requests at


The full documentation for CLI and API is available on readthedocs.

Build the docs

You can build the documentation using sphinx:

pip install sphinx
python build_sphinx


You can contribute to the project in multiple ways:

  • Write documentation
  • Implement features
  • Fix bugs
  • Add unit and functional tests
  • Everything else you can think of

We enforce commit messages to be formatted using the conventional-changelog. This leads to more readable messages that are easy to follow when looking through the project history.

Please provide your patches as github pull requests. Thanks!


We use black as code formatter, so you'll need to format your changes using the black code formatter.

Just run

cd python-gitlab/
pip3 install --user black
black .

to format your code according to our guidelines.

Running unit tests

Before submitting a pull request make sure that the tests still succeed with your change. Unit tests and functional tests run using the travis service and passing tests are mandatory to get merge requests accepted.

You need to install tox to run unit tests and documentation builds locally:

# run the unit tests for python 2/3, and the pep8 tests:

# run tests in one environment only:
tox -epy35

# build the documentation, the result will be generated in
# build/sphinx/html/
tox -edocs

Running integration tests

Two scripts run tests against a running gitlab instance, using a docker container. You need to have docker installed on the test machine, and your user must have the correct permissions to talk to the docker daemon.

To run these tests:

# run the CLI tests:

# run the python API tests:

You can also build a test environment using the following command:


A freshly configured gitlab container will be available at http://localhost:8080 (login root / password 5iveL!fe). A configuration for python-gitlab will be written in /tmp/python-gitlab.cfg.

To cleanup the environment delete the container:

docker rm -f gitlab-test
You can’t perform that action at this time.