Repository navigation
GitHub Actions guidance states rules and lint coverage clearly - #264
Open
Marius Storhaug (MariusStorhaug) wants to merge 6 commits into
Open
Marius Storhaug (MariusStorhaug) wants to merge 6 commits into
Marius Storhaug (MariusStorhaug) wants to merge 6 commits into
Conversation
12 tasks done
There was a problem hiding this comment.
🟢 Approved
No active review issues are recorded for this documentation-only clarification of the GitHub Actions authoring guidance.
No open issues 🎉
What changed in this PR
This documentation-only PR rewrites the GitHub Actions authoring standard in direct language, making workflow requirements easier to follow without changing policy, commands, examples, or workflow behavior.
Changes:
- Replaces idioms and dense prose with shorter statements and direct instructions throughout the page.
- Separates manual pin-audit use cases, prerequisites, exclusions, and failure behavior.
- Preserves existing headings, links, examples, and the acknowledged policy contradiction about colocated actions.
| File | Description |
|---|---|
src/docs/Coding-Standards/GitHub-Actions.md |
Clarifies workflow-authoring guidance and manual pin-audit instructions. |
Review effort: Balanced
Marius Storhaug (MariusStorhaug)
dismissed
Copilot’s stale review
via
November 4, 2026 13:02
28947e5
Marius Storhaug (MariusStorhaug)
marked this pull request as ready for review
November 4, 2026 14:43
3 tasks
This branch has not been deployed
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.
GitHub Actions guidance uses direct en-US instructions and present-tense explanations. It states the authoring rules separately from the checks that can detect violations.
This guidance-only change preserves the extraction requirement, required CI, blocking criteria, security boundaries, compatibility, commands, and examples. No workflow behavior or consumer action changes.
Fixed: Workflow authoring guidance states rules and lint coverage clearly
The standard separates long explanations into direct statements and ordered instructions. The manual pin-audit section lists its use cases, prerequisites, exclusions, and explicit failure result. Job structure, action reuse, and diagnostics retain their existing contracts.
The lint descriptions correct two factual coverage errors, not policy questions. actionlint can pass inline Bash/sh scripts to ShellCheck when the integration is enabled and the executable is available. That integration does not check PowerShell or Python; Python can have a separate optional Pyflakes integration. Standalone files provide native-language context for broader linting, formatting, type checks, security scanning, and editor features. Non-trivial scripts still require extraction into an action.
Lint results do not prove compliance with every authoring rule. The page requires review alongside the existing CI checks and points to its skipped-dependency guidance. Required CI execution and blocking/severity rules are unchanged. Only the separate-versus-colocated workflow/action-library choice remains an unresolved policy question.
Technical details
Scope and immutable sources
Only
src/docs/Coding-Standards/GitHub-Actions.mdchanges. The complete baseline page was read (1,265 lines), followed by the complete first writing result (1,364 lines). The narrow factual correction and surrounding sections were then read against the verified upstream sources. The resulting page has 1,372 lines.1b0d4893c8fefabe604d04393068a8ff6f848082.0ba76283ef113db4eef91dda970f96486ee5a61d.28947e5248f162cd358a0b1fc45c7587fe60aa20.6fa38a06c69261d31b314cac60976e4fb2f559a5.The closing Task pins the Documentation Model, Natural Language, Technical Writing Guide, Markdown, Documentation, and standard/guide templates at the fixed source. Official STEMG overview/FAQ and relevant local ASD-STE100 Issue 9 rules/dictionary were consulted. The PDF MD5 is
9c720341c350ed77943b2c73d01c716f. Reference copies stay local. Automated observations and counts do not establish full STE conformance.Verified lint coverage and experiment limits
Official actionlint evidence is fixed at
rhysd/actionlint@011a6d15e749bb3f2d771eed9c7aa0e7e3e10ee7:Eight source/fixture consistency observations pass. No local actionlint/ShellCheck execution is claimed: neither native executable is available, the Docker Linux engine is unavailable, and its WSL distribution is stopped. No tool was installed and no runtime was started. The official sources and independent expected diagnostics establish the correction.
Concrete before and after cases
held to the same bar as application codeWorkflow authors apply the application-code standards and the supply-chain and least-privilege controls below.cannot process that script as code.actionlint can send inline Bash and sh scripts to shellcheckwhen enabled and available. ShellCheck does not lint PowerShell/Python.only when it is in a file of its own language.the shell of every run: step through shellcheckA workflow that breaks this standard fails the build.The linters do not detect every violation of this standard.Review authoring rules and skipped dependencies as well as lint results.An action is a black box until it fails.An action reports what it reads, decides, and produces on every run.Exact preservation and accepted differences
All 31 fenced examples retain identical content and order after Git newline normalization. Their combined SHA-256 remains
f7d2fe9b4c16bd22690553fe56a833ab0c9b4ccc19d0e86077fb434531a59214. All 38 headings/anchors, 270 inline-code spans, front matter, and uppercase normative terms (MUST,MAY,MUST NOT) remain unchanged from the fixed campaign baseline.All 42 original link destinations remain. Only two references are added: official ShellCheck integration documentation and the existing skipped-job section anchor, for 44 total destinations. No existing heading or anchor changes.
The complete non-trivial-script extraction bullet, required push/PR CI execution statement, blocking/severity rules, and both repository-layout policy sections are exactly unchanged from
0ba76283ef113db4eef91dda970f96486ee5a61d. Manual review preserves lower-case obligations, owned-major exceptions, external SHA requirements, compatibility, permissions/token scope, OIDC, untrusted-input controls, GHES exclusions, cancellation/result checks, and explicit failure behavior.Direct imperatives, technical terms, native YAML/PowerShell, placeholders, comments, historical example evidence, and stable headings remain accepted differences. This includes
behaviourin a heading/anchor and the time-dependent concurrent-step title. Other standards, navigation, generated indexes, workflows, scripts/tests, configuration, dependencies, and #240 surfaces are untouched.Final-head validation
The initial writing observations had seven expected failures. For this factual revision, six observations fail at the previous head before editing; all 24 final temporary assertions pass. No repository prose-policy tests or new tooling are added.
No issues found13325290117passes ten render observations: all 31 examples match source, corrected claims and extraction requirement render, both new references render, false descriptions are absent, and checked stable anchors remainEarlier local site checks at
0ba7628remain historical evidence, not proof for this head. The existing final-head CI build and its downloaded artifact provide the new pinned-site evidence without local tooling or runtime changes. The temporary downloaded site artifact was removed after inspection. Source/fixture, comparison, render, build-log, and review evidence remain local and are summarized here and in the Task.The two false coverage descriptions are corrected in this PR. They are no longer deferred as policy. The remaining layout question contrasts the separate-repositories/self-checkout-last-resort guidance with the colocated-action/self-checkout-required guidance. Those sections remain unchanged for an owner decision.
All assigned writing, source verification, preservation comparisons, final-head validation, and automated review are complete. No writing or validation blocker remains. The live local ShellCheck experiment was unavailable and is not claimed. The prior scoped convergence search found this Task and #242, which excludes this page; no extra closing reference applies.
Delivery boundary: Leave the PR DRAFT. No ready, merge, auto-merge, or Agent merge action was taken. The Task stays open for later review and merge.
Related references