{"id":24317165,"url":"https://github.com/3lvia/gh-actions-docs","last_synced_at":"2026-05-03T07:45:13.874Z","repository":{"id":244834690,"uuid":"816408065","full_name":"3lvia/gh-actions-docs","owner":"3lvia","description":"Automatically generate pretty documentation for your GitHub Actions!","archived":false,"fork":false,"pushed_at":"2026-03-03T11:30:13.000Z","size":80,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"trunk","last_synced_at":"2026-03-03T14:33:24.812Z","etag":null,"topics":["automation","documentation","github-actions"],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/3lvia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-06-17T17:29:31.000Z","updated_at":"2026-03-03T11:30:17.000Z","dependencies_parsed_at":"2024-06-17T19:48:03.039Z","dependency_job_id":"3a5f766a-3964-456b-8458-87b0dfa502b8","html_url":"https://github.com/3lvia/gh-actions-docs","commit_stats":null,"previous_names":["3lvia/gh-actions-docs"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/3lvia/gh-actions-docs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3lvia%2Fgh-actions-docs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3lvia%2Fgh-actions-docs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3lvia%2Fgh-actions-docs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3lvia%2Fgh-actions-docs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/3lvia","download_url":"https://codeload.github.com/3lvia/gh-actions-docs/tar.gz/refs/heads/trunk","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3lvia%2Fgh-actions-docs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32562118,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","documentation","github-actions"],"created_at":"2025-01-17T13:32:27.889Z","updated_at":"2026-05-03T07:45:13.868Z","avatar_url":"https://github.com/3lvia.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gh-actions-docs\n\nAutomatically generate pretty documentation for your GitHub Actions!\n\n# 🚀 Features\n\n- **Generates pretty documentation** including the action name, description, inputs, [required permissions](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/assigning-permissions-to-jobs) and a usage example.\n- Supports **as many `action.yml` files as you want**, generating documentation for each.\n- **Extremely fast**; in testing, parses eight `action.yml` files and generates their documentation in **~40 milliseconds**.\n- Supports the **full GitHub Actions schema**, including multiline strings.\n- Will optionally **generate a table of contents** for your markdown file.\n- Runs [Prettier](https://prettier.io) after generating the documentation to ensure **a consistent style** (can be disabled).\n- **Very customizable**; see [inputs section](#inputs) for all available options.\n\n# ⚡ Quickstart\n\n**1.** Add the following to your `README.md` file:\n\n```markdown\n\u003c!-- gh-actions-docs-start path=your/cool/action.yml owner=yourgithubaccount project=cool-action version=v1 --\u003e\n\u003c!-- gh-actions-docs-end --\u003e\n```\n\n**Edit the `path` input to point to your action's `action.yml` file.**\n\nOptionally, you can add the `owner`, `project` and `version` inputs to generate the \"Usage\" section.\nYou can also add the `permissions` input to generate the \"Permissions\" section.\n\n**2.** Use the `gh-actions-docs` action in your workflow:\n\n```yaml\ngenerate-docs:\n  name: Generate documentation\n  runs-on: ubuntu-latest\n  permissions:\n    contents: write\n  steps:\n    - name: Checkout repository\n      uses: actions/checkout@v4\n\n    - name: Generate documentation\n      uses: 3lvia/gh-actions-docs@v1\n\n    - name: Commit changes\n      run: |\n        if [[ -z \"$(git status --porcelain)\" ]]; then\n          echo \"No changes to commit\"\n          exit 0\n        fi\n\n        git config user.name github-actions\n        git config user.email github-actions@github.com\n\n        git add README.md\n        git commit -m \"Update action documentation\"\n        git push\n```\n\n# 📝 Examples of Generated Documentation\n\n- https://github.com/3lvia/core-github-actions-templates/blob/trunk/README.md\n- [This section of the `README.md`](#inputs) and onwards.\n\n# ✍️ Getting Started\n\n`gh-actions-docs` can be used as an executable or as a GitHub Action.\nThe generated documentation will be added to the file `README.md` by default.\nTo specify where in the file the documentation should be added, add the following two comments to your README file:\n\n```markdown\n\u003c!-- gh-actions-docs-start path=your/cool/action.yml owner=3lvia project=cool-action version=v3 permissions=contents:read,issues:write --\u003e\n\u003c!-- gh-actions-docs-end --\u003e\n```\n\nDocumentation will then be generated between these two comments. You can add multiple comments to generate documentation for multiple actions.\n\nOnly the `path` parameter is required, and the `owner`, `project`, `version` and `permissions` parameters are optional.\n\nThe parameters `owner`, `project` and `version` are used to generate the \"Usage\" section.\nIf any of these parameters are missing, the \"Usage\" section will not be generated.\n\nThe `permissions` parameter is used to generate the \"Permissions\" section.\nIf this parameter is missing, the \"Permissions\" section will not be generated.\n\n## Generate a table of contents\n\n`gh-actions-docs` can also generate a table of contents for your README file.\nAdd the following two comments to your README file to generate a table of contents:\n\n```markdown\n\u003c!-- gh-actions-docs-toc-start --\u003e\n\u003c!-- gh-actions-docs-toc-end --\u003e\n```\n\n## GitHub Action\n\n`gh-actions-docs` is primarily intended to be used as a GitHub Action.\nThe below documentation is actually generated from the `action.yml` file in this repository\n(with name, description and table of contents disabled).\n\n\u003c!-- gh-actions-docs-start path=action.yml owner=3lvia project=gh-actions-docs version=v1 --\u003e\n\n### Inputs\n\n| Name             | Description                                                                                                                                                                                  | Required | Default     |\n| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ----------- |\n| `debug`          | Set to `true` to enable debug output.                                                                                                                                                        | no       | `false`     |\n| `ignore-files`   | Comma-separated list of `actions.yml`-files to ignore when generating action documentation.                                                                                                  | no       |             |\n| `ignore-headers` | Comma-separated list of headers to ignore when generating a table of contents. Should include the `#`-prefixes, e.g. `## My Header` or `### My Other Header`.                                | no       |             |\n| `no-actions`     | Set to `true` to disable generation of any actions documentation. Useful when you only want to generate a table of contents. This cannot be set to `true` if `no-toc` is also set to `true`. | no       | `false`     |\n| `no-description` | Set to `true` to disable generation of action descriptions.                                                                                                                                  | no       | `false`     |\n| `no-inputs`      | Set to `true` to disable generation of action inputs.                                                                                                                                        | no       | `false`     |\n| `no-name`        | Set to `true` to disable generation of action names.                                                                                                                                         | no       | `false`     |\n| `no-outputs`     | Set to `true` to disable generation of action outputs.                                                                                                                                       | no       | `false`     |\n| `no-permissions` | Set to `true` to disable generation of action permissions.                                                                                                                                   | no       | `false`     |\n| `no-toc`         | Set to `true` to disable generation of a table of contents. Useful when you only want to generate actions documentation. This cannot be set to `true` if `no-actions` is also set to `true`. | no       | `false`     |\n| `no-usage`       | Set to `true` to disable generation of usage examples.                                                                                                                                       | no       | `false`     |\n| `readme-file`    | The file to read the action tags from and write the documentation to.                                                                                                                        | no       | `README.md` |\n| `run-prettier`   | Set to `true` to run Prettier on the generated documentation.                                                                                                                                | no       | `false`     |\n\n### Usage\n\n```yaml\n- name: gh-actions-docs\n  uses: 3lvia/gh-actions-docs@v1\n  with:\n    debug:\n    # Set to `true` to enable debug output.\n    #\n    # Required: no\n    # Default: 'false'\n\n    ignore-files:\n    # Comma-separated list of `actions.yml`-files to ignore when generating action documentation.\n    #\n    # Required: no\n\n    ignore-headers:\n    # Comma-separated list of headers to ignore when generating a table of contents. Should include the `#`-prefixes, e.g. `## My Header` or `### My Other Header`.\n    #\n    # Required: no\n\n    no-actions:\n    # Set to `true` to disable generation of any actions documentation. Useful when you only want to generate a table of contents. This cannot be set to `true` if `no-toc` is also set to `true`.\n    #\n    # Required: no\n    # Default: 'false'\n\n    no-description:\n    # Set to `true` to disable generation of action descriptions.\n    #\n    # Required: no\n    # Default: 'false'\n\n    no-inputs:\n    # Set to `true` to disable generation of action inputs.\n    #\n    # Required: no\n    # Default: 'false'\n\n    no-name:\n    # Set to `true` to disable generation of action names.\n    #\n    # Required: no\n    # Default: 'false'\n\n    no-outputs:\n    # Set to `true` to disable generation of action outputs.\n    #\n    # Required: no\n    # Default: 'false'\n\n    no-permissions:\n    # Set to `true` to disable generation of action permissions.\n    #\n    # Required: no\n    # Default: 'false'\n\n    no-toc:\n    # Set to `true` to disable generation of a table of contents. Useful when you only want to generate actions documentation. This cannot be set to `true` if `no-actions` is also set to `true`.\n    #\n    # Required: no\n    # Default: 'false'\n\n    no-usage:\n    # Set to `true` to disable generation of usage examples.\n    #\n    # Required: no\n    # Default: 'false'\n\n    readme-file:\n    # The file to read the action tags from and write the documentation to.\n    #\n    # Required: no\n    # Default: 'README.md'\n\n    run-prettier:\n    # Set to `true` to run Prettier on the generated documentation.\n    #\n    # Required: no\n    # Default: 'false'\n```\n\n\u003c!-- gh-actions-docs-end --\u003e\n\n## Docker\n\nYou can run `gh-actions-docs` using locally using Docker:\n\n```bash\ndocker run -v \"$(pwd):/app\" ghcr.io/3lvia/gh-actions-docs:latest\n```\n\n## Local\n\nYou can also run `gh-actions-docs` locally using Cabal.\nInstall [GHCUp](https://www.haskell.org/ghcup), which should include Cabal, and then run:\n\n```bash\ncabal update\ncabal install --overwrite-policy=always\ngh-actions-docs\n```\n\n### Environment variables (Docker or local)\n\nSee inputs above or [action.yml](action.yml) for all available environment variables when running using Docker or locally with Cabal.\nThe environment variables use all-caps snake-case, e.g. `IGNORE_FILES` instead of `ignore-files`.\n\n# 🧑‍💻 Development\n\n## Releasing a new version\n\nTo release a new version, update the version tag in both [action.yml](action.yml) and [gh-actions-docs.cabal](gh-actions-docs.cabal).\nA new git tag and GitHub release should then be generated when pushing the changes to `trunk`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3lvia%2Fgh-actions-docs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F3lvia%2Fgh-actions-docs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3lvia%2Fgh-actions-docs/lists"}