Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,15 @@ red PR job against.
scanning" needs a `github/codeql-action/upload-sarif` step. Every committed workflow
must be introduced that way in this README, so new automation cannot land undocumented.
Each rule has a fixture self-test. Zero dependencies.
- `node --test scripts/workflow-hardening.test.mjs` — static gate over the supply-chain
hardening of every workflow under `.github/workflows/`: every `uses:` is pinned to a
40-hex commit SHA with a trailing `# <version>` comment (`./` local actions exempt,
`docker://` images by `@sha256:` digest), including the reusable-workflow `uses:`; the
workflow declares a top-level `permissions:` block and nothing grants `write-all`; every
`actions/checkout` step sets `persist-credentials: false`; and every job with `runs-on`
sets `timeout-minutes`. OpenSSF Scorecard reads the same files but runs only on `main`
and a lower score fails nothing, so a tag re-pin or a dropped `persist-credentials: false`
would otherwise merge green. Each rule has a fixture self-test. Zero dependencies.

## Local preview and running the checks

Expand Down
Loading
Loading