This release is a pre-release and may not be stable for production use.
pyTooling.GitHub
pyTooling.GitHub works with GitHub Actions pipelines: it reads workflow and action files into a data model,
reads the runs of a pipeline from GitHub's REST API, and converts them into traces - e.g. OpenTelemetry's OTLP/JSON
or a Gantt chart of the jobs and steps. A Sphinx domain ghactions documents workflows and their inputs, outputs and
secrets taken straight from the workflow files.
It builds on pyTooling's generic CI pipeline model and tracing, and on pyTooling.Sphinx for its documentation extensions.
The package is installed from PyPI:
pip install pyTooling.GitHub
Features
Data models
- Pipeline runs - A GitHub Actions workflow run - pipeline, workflows, matrices, jobs and steps with their times and outcomes - read from the GitHub REST API's payloads.
- Workflow files - A workflow file: triggers, inputs, outputs, secrets, permissions and jobs with their dependencies, read with line numbers, and converted into a pipeline graph.
- Action files - An action's file: how it runs, and the steps of a composite action with the actions they run in turn.
Sphinx domain ghactions
The domain needs the extra sphinx, which installs pyTooling.Sphinx:
pip install pyTooling.GitHub[sphinx]
It is enabled in conf.py, and sets up pyTooling.Sphinx itself:
# doc/conf.py
extensions = [
...,
"pyTooling.GitHub.Sphinx",
]
- Workflows and their parameters -
ghactions:workflow,ghactions:input,ghactions:output,ghactions:secretandghactions:autoinputs, taken straight from the workflow file; roles to reference them. - Summaries -
ghactions:parameter-table,ghactions:interface,ghactions:dependenciesandghactions:yaml.
Visualization
- Pipeline graph -
ghactions:pipeline-graphdraws the jobs of a workflow and theirneedsas a Graphviz graph, with the reusable workflows it calls expanded. - Pipeline trace diagram - Reads a workflow run through the GitHub 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.GitHub[diagram]
- pytooling-github - The command
pipelinereads a pipeline run into a trace, writes it, and draws it as a Gantt chart.
Consumers
This layer is used by:
- 🚧 pyTooling/Actions - its documentation of the job templates will use the
ghactionsdomain.
Contributors
- Patrick Lehmann (Maintainer)
- and more...
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).
SPDX-License-Identifier: Apache-2.0
Metadata
Release files for pyTooling.GitHub 0.1.0rc1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pytooling_github-0.1.0rc1.tar.gz | 98.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pytooling_github-0.1.0rc1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 202.2 kB
Release files / pytooling_github-0.1.0rc1.tar.gz
| Download URL | pytooling_github-0.1.0rc1.tar.gz |
|---|---|
| Size | 98.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e6ab792e85e9d7d332a73a7769a1cd143f7de21660e28c7050a9e806ad9b8a57
|
|
BLAKE2b-256 checksum How to use checksums |
d86460d7544d0c36a50a62d0ac9baa8702645da9800876cf88281cadc952f6e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.15.0
|
Release files / pytooling_github-0.1.0rc1-py3-none-any.whl
| Download URL | pytooling_github-0.1.0rc1-py3-none-any.whl |
|---|---|
| Size | 103.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cf4e656b3ac91c79a8643efe2266ad6e92856b2603f225bf24718fcf02c3f3ce
|
|
BLAKE2b-256 checksum How to use checksums |
f0494bff80c07e2a527ad0d19222e6552d16db6ac8f734ebc931153f85e45672
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.15.0
|