Tool ยท in the project
CI workflow checker
Checks the CI workflows themselves: actions not pinned to a commit, permissions wider than needed, untrusted input in commands.
- Builds
- Structure check, Security scanner
No illustration yet
catalog/tools/workflow-checker.svg This tool checks the CI workflows themselves: actions not pinned to a commit, permissions wider than needed, untrusted input pasted into commands. It reads the workflows as code that runs with the project's secrets.
Finding it
Look in the CI directory (.github/workflows/ for GitHub Actions), and in CI or the pre-commit config for a step that
already checks it. The checker's config (.github/actionlint.yaml, zizmor.yml) lists what it ignores.
Using it
- Run it:
actionlintchecks the syntax, the expressions and the shell in each step;zizmor .github/workflows/reports security findings such as template injection and excessive permissions. - Pin actions to a full commit SHA, with the version in a comment, so a moved tag cannot change what runs.
- The strictest rules for workflows that run an agent: the narrowest permissions, only the secrets they need, and no untrusted text in their prompt or commands.
- Before merge: every change to a workflow is checked in its own pull request.
Examples: actionlint and zizmor (GitHub Actions).
Built from catalog/tools/workflow-checker.md.