8000 GitHub - Gino627/python-gitlab: Python wrapper for the GitLab API
[go: up one dir, main page]

Skip to content
  • Insights
  • Gino627/python-gitlab

     
     

    Repository files navigation

    https://travis-ci.org/python-gitlab/python-gitlab.svg?branch=master https://readthedocs.org/projects/python-gitlab/badge/?version=latest https://codecov.io/github/python-gitlab/python-gitlab/coverage.svg?branch=master

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

    Installation

    Requirements

    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 registry.gitlab.com/python-gitlab/python-gitlab:latest <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 https://github.com/python-gitlab/python-gitlab/issues.

    Documentation

    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 setup.py build_sphinx
    

    Contributing

    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!

    Code-Style

    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.

    < 71AD /a>

    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.

    We're currently in a restructing phase for the unit tests. If you're changing existing tests, feel free to keep the current format. Otherwise please write new tests with pytest and using responses. An example for new tests can be found in tests/objects/test_runner.py

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

    # run the unit tests for all supported python3 versions, and the pep8 tests:
    tox
    
    # run tests in one environment only:
    tox -epy38
    
    # 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:
    tox -e cli_func_v4
    
    # run the python API tests:
    tox -e py_func_v4

    By default, the tests run against the gitlab/gitlab-ce:latest image. You can override both the image and tag with the -i and -t options, or by providing either the GITLAB_IMAGE or GITLAB_TAG environment variables.

    This way you can run tests against different versions, such as nightly for features in an upcoming release, or an older release (e.g. 12.8.0-ce.0). The tag must match an exact tag on Docker Hub:

    # run tests against `nightly` or specific tag
    ./tools/py_functional_tests.sh -t nightly
    ./tools/py_functional_tests.sh -t 12.8.0-ce.0
    
    # run tests against the latest gitlab EE image
    ./tools/py_functional_tests.sh -i gitlab/gitlab-ee
    
    # override tags with environment variables
    GITLAB_TAG=nightly ./tools/py_functional_tests.sh

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

    ./tools/build_test_env.sh

    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

    About

    Python wrapper for the GitLab API

    Resources

    License

    Stars

    Watchers

    Forks

    Packages

    No packages published

    Languages

    • Python 98.4%
    • Shell 1.5%
    • Dockerfile 0.1%
    0