Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Sourcecode on GitHub Sourcecode License Documentation Documentation License
PyPI PyPI - Status PyPI - Python Version
GitHub Workflow - Build and Test Status Libraries.io status for latest release Codacy - Quality Codacy - Coverage Codecov - Branch Coverage

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:secret and ghactions:autoinputs, taken straight from the workflow file; roles to reference them.
  • Summaries - ghactions:parameter-table, ghactions:interface, ghactions:dependencies and ghactions:yaml.

Visualization

  • Pipeline graph - ghactions:pipeline-graph draws the jobs of a workflow and their needs as 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 pipeline reads 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 ghactions domain.

Contributors

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)

Source distribution for pyTooling.GitHub 0.1.0rc1
File Size Uploaded
pytooling_github-0.1.0rc1.tar.gz 98.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyTooling.GitHub 0.1.0rc1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.0rc1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page