fix: quote colon-containing description in publish-single-page-docs action manifest - #40
Merged
Merged
Conversation
…ction manifest
The github-token input description contained an unquoted "contents: write",
which GitHub's action manifest parser rejects ("Mapping values are not
allowed in this context"), causing every consuming workflow to fail at job
setup.
Fixes #39
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CRZk4ZQsApxLANJtzQpVXb
Action manifests under actions/ are only parsed by downstream consumers' runners, so a syntax error ships silently and breaks every consuming workflow. Parse them in CI so the break surfaces here first. Refs #39 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CRZk4ZQsApxLANJtzQpVXb
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.
Summary
The
github-tokeninput description inactions/publish-single-page-docs/action.ymlwas written as an unquoted plain scalar containingcontents: write. In YAML, a:inside a plain scalar starts a nested mapping, so GitHub's action-manifest parser rejected the file with "Mapping values are not allowed in this context" at Set up job time — before any step ran. That broke every workflow consuming the action.Failing run: https://github.com/AbsaOSS/organizational-workflows/actions/runs/30910992670
Fix
Moved the description into a
>-folded block, matching the style already used by the other input descriptions in the same file:Nothing else in the manifest changed.
Validation
actions/**/*.ymland.github/workflows/*.ymlwith PyYAML 6.0.3 — all five files parse cleanly.mapping values are not allowed hereon the original scalar.:(the identical bug pattern); the detector was sanity-checked against the known-bad line and found no further instances.Also: CI now validates action manifests
Nothing in CI would have caught this. The repository's own workflows are valid YAML, but
action.ymlis a consumer-facing manifest that is only parsed when a downstream repository runs the action — which is why the break surfaced inorganizational-workflowsrather than here.This PR therefore also adds a
Validate action manifestsstep to the existingpublish-single-page-docsCI job, which YAML-parses everyactions/**/*.ymlandactions/**/*.yamlfile and fails the build on a parse error, printing each file it checked so a passing run is auditable.It parses with the
yaml@2.7.1package the action already pins and the job already installs, so there is no new dependency, no new config file and no extra runner — and it is the same parser the action uses at runtime.node_modulesis excluded from the walk, and an empty match set is treated as a failure so the check cannot silently pass if the layout changes.Verified by extracting the
runscript straight out ofci.ymland executing it verbatim:ok actions/publish-single-page-docs/action.ymlNested mappings are not allowed in compact mappings at line 26, column 18— confirming the gate actually catches the bug this PR fixes, rather than passing vacuously.Fixes #39
🤖 Generated with Claude Code
https://claude.ai/code/session_01CRZk4ZQsApxLANJtzQpVXb