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"
}