Skip to content

Add zizmor security analysis + harden workflows#427

Merged
alcohol merged 2 commits into
mainfrom
add-zizmor-dependabot
May 29, 2026
Merged

Add zizmor security analysis + harden workflows#427
alcohol merged 2 commits into
mainfrom
add-zizmor-dependabot

Conversation

@Seldaek
Copy link
Copy Markdown
Member

@Seldaek Seldaek commented May 28, 2026

Adds a zizmor GitHub Actions security-analysis workflow (pedantic, matching composer/packagist) and a dependabot.yml (github-actions, monthly + 7-day cooldown), and hardens the existing build/shellcheck workflows so zizmor passes:

  • Pinned every action (docker/*, actions/*) to a commit SHA at its latest release.
  • Permissions: workflow-level contents: read; packages: write added to the build and merge jobs (they push to ghcr.io via GITHUB_TOKEN).
  • Concurrency limits + persist-credentials: false on checkouts.
  • Template-injection: moved matrix.platform, build digests and registry slugs into step env, and used jq --arg for the slugs in the manifest-merge steps (behaviour-preserving — those slugs are already workflow env).
  • determine-composer-version composite action now emits step outputs instead of writing to $GITHUB_ENV (removes the github-env code-exec vector); consumers updated to steps.composer-version.outputs.major-minor-patch.
  • Gave all jobs explicit names.

Verified locally with zizmor (pedantic, incl. online audits): no findings.

Seldaek added 2 commits May 29, 2026 00:26
- Pin all actions (docker/*, actions/*) to commit SHAs at their latest releases
- Add explicit permissions: workflow-level contents: read; packages: write on the
  build and merge jobs (ghcr push via GITHUB_TOKEN)
- Add concurrency limits and persist-credentials: false on checkouts
- Pass matrix/env/step values via step env to avoid template injection, and use
  jq --arg for the registry slugs in the manifest-merge steps
- determine-composer-version action: emit step outputs instead of writing to
  $GITHUB_ENV (avoids the github-env code-execution vector)
- Give all jobs explicit names
@alcohol
Copy link
Copy Markdown
Member

alcohol commented May 29, 2026

Aside from whitespace nitpicking (most files use 2 spaces indent, new file uses 4); everything looks OK. Using --arg for jq is also a safer approach, nice catch.

@alcohol alcohol merged commit ceff423 into main May 29, 2026
33 checks passed
@alcohol alcohol deleted the add-zizmor-dependabot branch May 29, 2026 06:21
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.

2 participants