ci: pin actions to commit SHAs and lint workflows - #11
Merged
Merged
Conversation
Every third-party `uses:` in the workflows and in action.yml itself now carries a full commit SHA with a version comment, the form Dependabot reads to keep the pins fresh. The shared ci-workflows actions on `main` are a branch ref with no tag to pin to; `.github/pinact.yaml` exempts them and `.github/zizmor.yml` gives them a ref-pin policy. add-and-commit moves from v10 to v11 (supersedes #7). The major version hardens the action's git argument handling and stops logging the git config; this action passes only `default_author`, which v11 keeps, and the runtime stays node24. A `lints` job in the Lean Action CI workflow calls ci-workflows' lint-workflows action (actionlint, shellcheck over composite action scripts, pinact check and verify, zizmor). zizmor audits the whole tree, so action.yml is covered too. Getting it clean: every checkout sets `persist-credentials: false` (the test jobs never write back, and the self-update PR goes through create-pull-request's token input), step outputs and outcomes interpolated into scripts in the test workflows and in action.yml move into step `env:` so the shell reads variables instead of expanded text, the elan PATH append carries an inline ignore since the value is the runner's own home directory, and Dependabot gets the 7-day cooldown zizmor requires plus a single grouped PR. The test workflows keep upstream's `uses: ./` for the action under test, so the self-repository audit is ignored for them. The HasDep and TwoDeps fixtures carried the workflow `lake new` scaffolds into every package. Nothing runs them and zizmor flagged them, so they are removed.
arthurpaulino
approved these changes
Oct 1, 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.
Every third-party
uses:in the workflows and in action.yml itself now carries a full commit SHA with a version comment, the form Dependabot reads to keep the pins fresh. The shared ci-workflows actions onmainare a branch ref with no tag to pin to;.github/pinact.yamlexempts them and.github/zizmor.ymlgives them a ref-pin policy.A new Lint workflow calls ci-workflows' lint-workflows action (actionlint, shellcheck over composite action scripts, pinact check and verify, zizmor). Getting zizmor clean: every checkout sets
persist-credentials: false(the test jobs never write back, and the self-update PR goes through create-pull-request's token input), step outputs interpolated into test scripts move into stepenv:so the shell reads variables instead of expanded text, and Dependabot gets the 7-day cooldown zizmor requires plus a single grouped PR. The test workflows keep upstream'suses: ./for the action under test, so the self-repository audit is ignored for them.