docs: generate action and workflow input/output tables - #2276
Merged
Conversation
ricky-undeadcoders
marked this pull request as draft
August 27, 2026 04:21
ricky-undeadcoders
force-pushed
the
rwhitaker/generated-action-docs
branch
from
August 27, 2026 04:27
b3c3c17 to
a3ef5c1
Compare
This was referenced Aug 27, 2026
zerok
reviewed
Sep 8, 2026
zerok
previously approved these changes
Sep 8, 2026
ricky-undeadcoders
force-pushed
the
rwhitaker/generated-action-docs
branch
4 times, most recently
from
September 8, 2026 21:40
1767b89 to
eab1493
Compare
Base automatically changed from
rwhitaker/generate-input-output-docs
to
main
September 9, 2026 18:46
ricky-undeadcoders
dismissed
zerok’s stale review
September 9, 2026 18:46
The base branch was changed.
Regenerates the Inputs/Outputs tables in every action README and reusable workflow doc from the YAML that declares them, and adds a CI job that fails when they drift. Required and Default now come from the YAML rather than prose, which caught several stale values: cleanup-branches documented dry-run as defaulting to true when it is false, validate-policy-bot-config pointed at a dead endpoint, and go-flaky-tests listed three outputs it never declares. A few descriptions were corrected or enriched where the old tables carried detail the YAML lacked, including image-digests, which was described as CSV but is emitted one per line.
ricky-undeadcoders
force-pushed
the
rwhitaker/generated-action-docs
branch
from
September 9, 2026 19:02
eab1493 to
5cec460
Compare
ricky-undeadcoders
marked this pull request as ready for review
September 9, 2026 19:04
dblinkhorn
approved these changes
Sep 9, 2026
This was referenced Sep 9, 2026
This was referenced Sep 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Regenerates the Inputs/Outputs tables in every action README and reusable workflow doc from the YAML that declares them, and adds a CI job that fails when they drift.
#1454 added the generator and is now merged; this PR is its output plus the enforcement job. Rebased onto main, so it stands alone.
Titled
docs:deliberately: this touches 37 action READMEs, and every action is its own release-please package. Afeat:here would minor-bump all 38 for a documentation change.What this catches
The tables now carry
RequiredandDefaultgenerated from the YAML rather than from prose. That immediately surfaced docs that had drifted from their actions:cleanup-branchesdry-rundefaults totruefalse— the docs implied a no-op by default, for an action that deletes branchesvalidate-policy-bot-configpolicy-bot.grafana.net/api/v1/validategithub-policy-bot.grafana-ops.net/api/validatereusable-zizmormin-severityismediumlowdocker-build-push-multiarchrunner_archesrunner-archesgo-flaky-teststrigger-argo-workflowworkflow_template"defaults tografana-ci"21 of 38 actions had drifted. Around 20 previously undocumented inputs/outputs are now covered, and
check-drone-signaturegained a doc it never had.How it works
Generated tables live between
<!-- BEGIN_INPUTS -->/<!-- END_INPUTS -->markers. Only the text between markers is replaced, so hand-written prose, footnotes and markdownlint pragmas survive regeneration.To update after changing an action's YAML:
CI runs the same thing and fails on any diff.
Source YAML changes
A handful of descriptions were corrected or enriched, because the YAML is now the source of truth and the old hand-written tables carried detail it lacked:
docker-import-digests-push-manifest:image-digestswas described as a CSV list. It is emitted one per line — thejqataction.yaml:231produces"\(.tag)@\(.indexDigest)"per entry as a multiline output. Corrected, and the gating onpush/generate-summarydocumented.trigger-argo-workflow: removed the false "defaults tografana-ci" claim, and fixed an unbalanced quote inextra_args.socket-export-sbom: recorded thefull-scans:createandreport:readscopes the token needs.run-capslock,generate-openapi-clients,find-pr-for-commit,push-to-gcs,wait-for-docker-publish,get-latest-workflow-artifact,aws-auth,dependabot-auto-triage,reusable-zizmor: restored enum values, conditional-required nuance and other detail that existed only in the old README prose.Caught during the rebase
While this sat in review,
create-github-app-tokenwas rewritten on main(#2028, node24 + post-job revocation). That changed its inputs, so its generated
table went stale and the drift check flagged it — regenerated here.
Worth noting the rewrite also set
github_apptorequired: true, which fixesone of the inaccuracies this work turned up.
Notes for review
git add -A && git diff --staged --exit-code. Plaingit diffwould miss a doc the generator had to create from scratch, since new files are untracked — and a brand-new action with no README is exactly the case worth catching. (check-catalog-info.yamlhas this bug today; separate issue to follow.)ubuntu-x64-small, matchingsign-and-attest.yml.<placeholder>text in descriptions is escaped, otherwise the renderer eats it as an HTML tag and<image>:<tag>@<digest>displays as:@.Part of #1466. Closes #137.