Conversation
Pin all actions to commit SHAs with version comments via actions-up, and address zizmor pedantic findings: scope job permissions with explanatory comments, disable credential persistence on checkouts that do not need to push, add a concurrency group and job name to update-versions.yml, avoid template-injection by piping template expansions through env vars, and split the build provenance attestation into its own job so id-token/attestations permissions are not granted to the build-and-push job. Assisted-by: Claude (Anthropic)
Add monthly grouped github-actions dependabot updates with a 7-day cooldown, set the pre-commit.ci autoupdate_schedule to monthly, freeze existing pre-commit hooks to SHAs via prek, and add the zizmor pre-commit hook to catch workflow security issues locally. Assisted-by: Claude (Anthropic)
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
CI security hardening, no behavior changes to the runner image build/publish logic.
docker.ymlandupdate-versions.ymlto commit SHAs (viaactions-up), with a version comment on eachdocker.yml:packages: write,id-token: write,attestations: write)persist-credentials: falseon the checkout step (job doesn't need git push)env:varattestjob (needs: docker) soid-token/attestationspermissions aren't granted to the build-and-push job; the digest is passed via joboutputsupdate-versions.yml:permissions: {}at the workflow level and scope the job tocontents: write/pull-requests: write(needed for itsgit push+gh pr create)concurrencygroup and a jobnamepersist-credentials: trueexplicitly on checkout, with a comment, since this job pushes a branch and opens a PR with the default tokenCOMPONENTS='${{ env.COMPONENTS }}'re-assignments (three template-injection findings) —COMPONENTSis already a workflow-levelenv:var and is already exposed torun:steps as$COMPONENTS.github/dependabot.yml: monthly groupedgithub-actionsupdates with a 7-day cooldown.pre-commit-config.yaml:zizmorpre-commit hook (pedantic persona, scoped to.github)autoupdate_schedule: monthlyunder the existingci:blockblacken-docs,pre-commit-hooks,pygrep-hooks,prettier,ruff-pre-commit,shellcheck-py,check-jsonschema) to SHAs viaprek auto-update --freeze --cooldown-days 7Major version changes
None. All actions and pre-commit hooks landed on the same major version (some minor/patch bumps:
prettierv3.6.2 → v3.9.6,ruff-pre-commitv0.14.4 → v0.16.1,check-jsonschema0.34.1 → 0.37.4, various GitHub Actions minor/major-tag-following bumps likeactions/checkoutv5 → v7.0.1,docker/build-push-actionv6 → v7.3.0).pre-commit run --all-filespasses clean after these updates, so nothing is held back.Held-back items
None.
actions/attest-build-provenancehad a release inside the 7-day cooldown window, soactions-upskipped it; it was pinned by hand to the SHA of thev3tag it was already using (no version bump) to avoid leaving an unpinned ref.zizmor ignores
None added. All pedantic-persona findings (
artipacked,template-injection,undocumented-permissions,excessive-permissions,anonymous-definition,concurrency-limits) were fixed rather than ignored;uvx zizmor --persona=pedantic .githubreports no findings.Verification
uvx zizmor --persona=pedantic .github→ no findingsuvx prek run --all-files→ all hooks pass (includingcheck-github-workflows,check-dependabot, and the newzizmorhook)uses:ref is a tag or branch; all are SHAs with a version comment