Skip to main content

A simple Azure Pipeline documentation generator

Project description

AZDocGen: Azure Pipelines Documentation Generator 📜🚀

Python publish workflow PyPI version License: MIT

AZDocGen is a Python-based tool to automatically generate detailed documentation for Azure Pipelines YAML files. It extracts key details, such as triggers, variables, resources, stages, jobs, steps, and conditions, and outputs structured Markdown documentation, including Mermaid diagrams for visual representation.

Installation

You can install AZDocGen via pip or poetry.

Using pip

pip install azdocgen

Using Poetry

poetry add azdocgen

Usage

CLI Usage

You can use AZDocGen directly from the command line to generate documentation for an Azure Pipelines YAML file.

azdocgen <pipeline_yaml_path> <output_md_path>

Example

azdocgen azure-pipelines.yml docs/azure-pipelines-docs.md

This will parse the azure-pipelines.yml file and generate the documentation in the docs/azure-pipelines-docs.md file.

Programmatic Usage

You can also use AZDocGen as a Python library to generate documentation programmatically.

Example

import yaml
from azdocgen.generate_doc import generate_markdown
from azdocgen.triggers import parse_triggers
from azdocgen.variables import parse_variables
from azdocgen.resources import parse_resources
from azdocgen.stages import parse_stages

# Load the Azure Pipelines YAML file
pipeline_file = "azure-pipelines.yml"
output_file = "docs/azure-pipelines-docs.md"

with open(pipeline_file, "r") as f:
    yaml_content = yaml.safe_load(f)

# Parse the sections
triggers = parse_triggers(yaml_content)
variables = parse_variables(yaml_content)
resources = parse_resources(yaml_content)
stages = parse_stages(yaml_content)

# Generate Markdown documentation
generate_markdown(
    triggers=triggers,
    variables=variables,
    stages=stages,
    resources=resources,
    output_file=output_file,
    pipeline_file=pipeline_file,
)

print(f"Documentation written to {output_file}")

Features

  • Triggers: Extracts branch and tag triggers.
  • Variables: Documents variables defined in the pipeline.
  • Resources: Lists repositories, containers, and pipeline dependencies.
  • Stages, Jobs, and Steps: Provides a hierarchical breakdown of the pipeline.
  • Conditions: Includes all conditions at stage, job, and step levels.
  • Mermaid Diagrams: Generates visual workflows.

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork this repository.
  2. Create a feature branch: git checkout -b feature/my-feature.
  3. Commit your changes: git commit -m 'Add my feature'.
  4. Push to the branch: git push origin feature/my-feature.
  5. Submit a pull request.

License

AZDocGen is licensed under the MIT License. See LICENSE for more details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

azdocgen-0.1.0.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

azdocgen-0.1.0-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

Details for the file azdocgen-0.1.0.tar.gz.

File metadata

  • Download URL: azdocgen-0.1.0.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.9.14 Darwin/24.1.0

File hashes

Hashes for azdocgen-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9bd92b6e27891b9a6a8f02058288ad623354e7a5e93ff7bb157120810a0ef5ce
MD5 a34d35655bab4b9a1c8fd2620c035e1f
BLAKE2b-256 8d36a66f9f6cf5ce0badb50f7e9be730e6cc9d0eb803c019ef6930f22a671eab

See more details on using hashes here.

File details

Details for the file azdocgen-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: azdocgen-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.9.14 Darwin/24.1.0

File hashes

Hashes for azdocgen-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0d310dcac36e99d47cb79821c731ace88e4c10c28693c278b45b8e7a1cc179f5
MD5 bd6d0f39e2fa8eb2650c7bc817be8380
BLAKE2b-256 0847d15a8f9a277fb77dcd5d56168e0985103c7fb792d90802086c0b750c4e59

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page