The pyTooling.GitLab Documentation
pyTooling.GitLab works with GitLab CI/CD pipelines: it reads pipeline files (.gitlab-ci.yml) into a data
model, reads the runs of a pipeline from GitLab’s REST API, and converts them into traces - e.g. OpenTelemetry’s
OTLP/JSON or a Gantt chart of the jobs. A Sphinx domain glci documents a pipeline file’s inputs and variables
taken straight from the file.
It builds on pyTooling’s generic CI pipeline model and tracing, and on pyTooling.Sphinx for its documentation extensions. Its sibling pyTooling.GitHub does the same for GitHub Actions.
Attention
The Sphinx domain glci requires pyTooling.Sphinx, and thus Python 3.12 or
newer, because Sphinx 9.1 requires Python 3.12.
The package is installed from PyPI:
pip install pyTooling.GitLab
Features
Data models
- Pipeline runs
→ A GitLab pipeline - its jobs, matrices and child pipelines with their times and outcomes - read from the GitLab REST API’s payloads.
- Pipeline files
→ A
.gitlab-ci.ymland the files it includes: stages, jobs with their needs and rules, variables and inputs, read with line numbers, and converted into a pipeline graph.
Sphinx domain glci
The domain needs the extra sphinx, which installs pyTooling.Sphinx:
pip install pyTooling.GitLab[sphinx]
- Pipelines and their parameters
→ A pipeline file’s
spec:inputsand its described variables, taken straight from the file; roles to reference them.- Summaries
→ Parameter tables, the interface, the dependencies and YAML excerpts of a pipeline file.
Visualization
- Pipeline graph
→ The jobs of a pipeline file, their stages and
needsas a Graphviz graph.- Pipeline trace diagram
→ Reads a pipeline through the GitLab REST API into a trace, written as OpenTelemetry’s OTLP/JSON or drawn as a Gantt chart.
Program
Gantt charts need the extra diagram, which installs matplotlib:
pip install pyTooling.GitLab[diagram]
- pytooling-gitlab
→ The command
pipelinereads a pipeline into a trace, writes it, and draws it as a Gantt chart.
Consumers
This layer is used by:
🚧 No consumer yet.
Contributors
Patrick Lehmann (Maintainer)
License
This Python package (source code) is licensed under Apache License 2.0.
The accompanying documentation is licensed under
Creative Commons - Attribution 4.0 (CC-BY 4.0).