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.0rc2

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.0rc2
File Size Uploaded Provenance
pytooling_github-0.1.0rc2.tar.gz 98.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for pyTooling.GitHub 0.1.0rc2
File Interpreter ABI Platform
pytooling_github-0.1.0rc2-py3-none-any.whl Python 3 none any Details

Total release size: 202.4 kB

Release files / pytooling_github-0.1.0rc2.tar.gz

Download URL pytooling_github-0.1.0rc2.tar.gz
Size 98.8 kB
Tags Source
SHA-256 checksum
How to use checksums
131c8e1af32d4cf1520fa3f8b848967fd2877ab6abc8b7ff9c71f6b8e9c6cf06
BLAKE2b-256 checksum
How to use checksums
dfe5d89e6979947dfa698d1f5c83eed52f557656826a91f0f34a3762f95eef61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / pytooling_github-0.1.0rc2-py3-none-any.whl

Download URL pytooling_github-0.1.0rc2-py3-none-any.whl
Size 103.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e0f15950f97731452f6058746bafcfd9b959407713e6bbd811375b571bcc78bb
BLAKE2b-256 checksum
How to use checksums
619543119ecba7dfd66845ed9323eaf7ab63913ea75f1c81b4a40be46c954fd5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.1

Security for pyTooling.GitHub 0.1.0rc2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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