Skip to content

Warning

You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?

auto-doc

Actions
Document your github action or reusable workflow with ease
v3.2.1
Star (47)

Ubuntu Mac OS Windows Public workflows that use this action.

Coverage codecov Go Reference Go Report Card CI Update release version. Codacy Badge

All Contributors

auto-doc

GitHub Action that generates beautiful, easy-to-read markdown tables with just a few lines of code. Say goodbye to manual table creation and hello to streamlined documentation that is always up-to-date.

Features

  • Document your custom Github action using the action.yml file.
  • Document reusable workflows by specifying the filename.
  • Easy to understand markdown table of all inputs, outputs, secrets.
  • Show deprecated inputs.
  • Fast and always up-to-date documentation.

Table of Contents

Usage

Add the Inputs and/or Outputs and/or Secrets (only supported by reusable workflows) and/or Description (only supported by actions) H2 header to any markdown file.

...
    steps:
      - uses: actions/checkout@v4
      - name: Run auto-doc
        uses: tj-actions/auto-doc@v3

Inputs

- uses: tj-actions/auto-doc@v3
  id: auto-doc
  with:
    # Optionally pass a path to the auto-doc binary
    bin_path: ''

    # Max width of a column
    # Default: `"1000"`
    col_max_width: ''

    # Max number of words per line in a column
    # Default: `"5"`
    col_max_words: ''

    # Path to the yaml file
    # Default: `"action.yml"`
    filename: ''

    # List of action.yml **input** columns names to display, default 
    # (display all columns) 
    input_columns: ''

    # Boolean indicating whether to output input, output and secret 
    # names as markdown links 
    # Default: `"true"`
    markdown_links: ''

    # Path to the output file
    # Default: `"README.md"`
    output: ''

    # List of action.yml **output** column names to display, default 
    # (display all columns) 
    output_columns: ''

    # Repository name with owner. For example, tj-actions/auto-doc
    # Default: `"${{ github.repository }}"`
    repository: ''

    # Boolean Indicating whether the file is a reusable workflow
    reusable: ''

    # List of reusable workflow **input** column names to display, 
    # default (display all columns) 
    reusable_input_columns: ''

    # List of reusable workflow **output** column names to display, 
    # default (display all columns) 
    reusable_output_columns: ''

    # List of reusable workflow **secret** column names to display, 
    # default (display all columns) 
    reusable_secret_columns: ''

    # GitHub token or Personal Access Token used to fetch 
    # the repository latest tag. 
    # Default: `"${{ github.token }}"`
    token: ''

    # Enable code block documentation
    # Default: `"false"`
    use_code_blocks: ''

    # Use the major version of the repository tag e.g 
    # v1.0.0 -> v1 
    # Default: `"false"`
    use_major_version: ''

    # The version number to run
    version: ''

👆 This is generated 👆 using 👉 action.yml

Examples

Create a pull request each time the action.yml inputs/outputs change

name: Update README.md with the latest actions.yml

on:
  push:
    branches:
      - main

jobs:
  update-doc:
     runs-on: ubuntu-latest
     steps:
       - name: Checkout
         uses: actions/checkout@v4
         with:
           fetch-depth: 0  # otherwise, you will failed to push refs to dest repo

       - name: Run auto-doc
         uses: tj-actions/auto-doc@v3

       - name: Verify Changed files
         uses: tj-actions/[email protected]
         id: verify-changed-files
         with:
           files: |
             README.md

       - name: Create Pull Request
         if: steps.verify-changed-files.outputs.files_changed == 'true'
         uses: peter-evans/create-pull-request@v3
         with:
           base: "main"
           title: "auto-doc: Updated README.md"
           branch: "chore/auto-doc-update-readme"
           commit-message: "auto-doc: Updated README.md"
           body: "auto-doc: Updated README.md"

CLI

Installation

Install using Go:

go get -u github.com/tj-actions/auto-doc/v3

Install using Homebrew:

brew install tj-actions/tap/auto-doc

Install using Chocolatey (Windows):

choco install auto-doc

Synopsis

Automatically generate documentation for your custom github action or reusable workflow.

auto-doc [flags]

Flags

    --colMaxWidth string                  Max width of a column. (default "1000")
    --colMaxWords string                  Max number of words per line in a column. (default "6")
-f, --filename string                 config file.
-h, --help                            help for auto-doc
    --inputColumns stringArray            list of input column names. (default [Input,Type,Required,Default,Description])
-m, --markdownLinks                   Names of inputs, outputs and secrets as markdown links.
-o, --output string                   Output file. (default "README.md")
    --outputColumns stringArray           list of output column names. (default [Output,Type,Description])
    --repository string                   Repository name with owner. Example: tj-actions/auto-doc
-r, --reusable                        A reusable workflow.
    --reusableInputColumns stringArray    list of reusable input column names. (default [Input,Type,Required,Default,Description])
    --reusableOutputColumns stringArray   list of reusable output column names. (default [Output,Value,Description])
    --reusableSecretColumns stringArray   list of reusable secrets column names. (default [Secret,Required,Description])
    --token string                        GitHub token or Personal Access Token used to fetch the repository latest tag.
    --useCodeBlocks                       Enable code block documentation.
    --useMajorVersion                     Use the major version of the repository tag. Example: v1.0.0 -> v                 Use the major version of the repository tag. e.g v1.0.0 -> v1

If you feel generous and want to show some extra appreciation:

Buy me a coffee

Credits

This package was created with Cookiecutter using cookiecutter-action

Report Bugs

Report bugs at https://github.com/tj-actions/auto-doc/issues.

If you are reporting a bug, please include:

  • Your operating system name and version.
  • Any details about your workflow that might be helpful in troubleshooting.
  • Detailed steps to reproduce the bug.

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Andreas Åman
Andreas Åman

💻 📖
Viacheslav Kudinov
Viacheslav Kudinov

💻 ⚠️
Christophe Furmaniak
Christophe Furmaniak

💻 ⚠️
Mike W
Mike W

💻 📖

This project follows the all-contributors specification. Contributions of any kind welcome!

auto-doc is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.

About

Document your github action or reusable workflow with ease
v3.2.1

auto-doc is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.