Skip to content

CI hardening: dependabot coverage for pinned actions + zizmor config - #7258

Merged
stevebeattie merged 3 commits into
chainguard-dev:mainfrom
stevebeattie:security/psec-923-test-remediation-packages
Jun 26, 2026
Merged

CI hardening: dependabot coverage for pinned actions + zizmor config#7258
stevebeattie merged 3 commits into
chainguard-dev:mainfrom
stevebeattie:security/psec-923-test-remediation-packages

Conversation

@stevebeattie

Copy link
Copy Markdown
Member

Summary

GitHub Actions supply-chain hardening surfaced by a zizmor audit of .github/.
The repo SHA-pins its external actions but had no dependency-update configuration,
so those pins were never monitored for new releases. This adds that coverage and
tidies the zizmor configuration.

Changes

  • .github/dependabot.yml (new) — add a github-actions ecosystem (weekly,
    minor/patch updates grouped, open-pull-requests-limit: 10) with a 3-day
    cooldown. The repo's pinned actions now get monitored update PRs, and the
    cooldown matches the existing dependabot-cooldown threshold already declared
    in .github/zizmor.yml (previously a threshold with no dependabot config to
    apply it to). The short cooldown leaves a window for a freshly-published
    release to be caught before it is applied. The zizmor workflow's paths:
    triggers are extended to include .github/dependabot.yml so edits to the
    dependabot config re-run the check.

  • .github/workflows/delete-old-branches.yamlinstall-wolfictl is
    intentionally referenced at @main (per the inline comment, to always get the
    latest action), and wolfi-dev/actions publishes no release tags to pin
    against. Rather than freeze it to a branch SHA, add a documented
    zizmor: ignore[unpinned-uses] on that line so the deliberate exception is
    explicit and the audit stays clean.

  • .github/zizmor.yml — disable the cosmetic pedantic-persona rules
    anonymous-definition, undocumented-permissions, and concurrency-limits.

Testing

  • zizmor (whole repo): clean of actionable findings after the change.
  • actionlint: clean.
  • Patches apply cleanly on top of main; all workflows still parse.
  • Independently reviewed by a second pass: no blocking issues.

Refs: PSEC-923

@stevebeattie
stevebeattie requested review from egibs and eslerm June 26, 2026 19:08
Comment thread .github/workflows/delete-old-branches.yaml Outdated
Refs: PSEC-923
Generated-By: claude-guard chain d2d47b92264e83c43634f08012f1073d
Skills-Applied: zizmor-config
Skills-Sha: e807467ba50afb365a042ab4ad88b49c0ad4a4644ff06e0396a2116307be8ac3
Image-Sha: sha256:7263f9b592131d79316129974effb2efc6a19a2cfea7c2c4dd445664550901bb
Pin wolfi-dev/actions/install-wolfictl from the floating @main ref to a
40-character commit SHA, closing the unpinned-uses supply-chain exposure
(a push to wolfi-dev/actions main would otherwise run immediately in this
job with id-token: write and the minted octo-sts token).

The # main version comment is retained intentionally: dependabot
github-actions (added in .github/dependabot.yml) tracks branch-pinned SHAs
and opens PRs to advance the SHA as new commits land on main, preserving
the maintainer's intent to follow the latest action while gating each bump
through review. zizmor's residual stale-action-refs (Low) is accepted —
the SHA does not resolve to a release tag because wolfi-dev/actions
publishes none.

Refs: PSEC-923
The repo SHA-pins external actions but has no dependabot or renovate
configuration, so those pins are never monitored for updates and will go
stale. Add a dependabot github-actions ecosystem (weekly, grouped minor/patch)
with a 3-day cooldown matching the existing .github/zizmor.yml
dependabot-cooldown threshold, so the pinned actions are tracked for updates
while still leaving a short window for a freshly-published release to be
caught before it is applied.

Also add .github/dependabot.yml to the zizmor workflow's paths: triggers so
edits to the dependabot config re-run the zizmor check.

Refs: PSEC-923
@stevebeattie
stevebeattie force-pushed the security/psec-923-test-remediation-packages branch from d1e078b to bf3a2f6 Compare June 26, 2026 19:39
@stevebeattie
stevebeattie merged commit ada63a6 into chainguard-dev:main Jun 26, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant