Skip to content

ci: add zizmor workflow audit - #41935

Merged
oc-tmueller merged 3 commits into
masterfrom
ci/zizmor
Oct 26, 2026
Merged

oc-tmueller merged 3 commits into
masterfrom
ci/zizmor

Conversation

@oc-tmueller

Copy link
Copy Markdown
Contributor

Adds a zizmor audit of this repository's GitHub Actions workflows and Dependabot config, through the new reusable owncloud/reusable-workflows/.github/workflows/zizmor.yml (owncloud/reusable-workflows#104). It's part of an org-wide rollout. Once the repo PRs have landed, Zizmor / Zizmor becomes a required check through owncloud/admin.

  • Behaviour: any finding, at any severity, fails the check, with an annotation on the offending line. The check runs on every PR, on pushes to master and weekly, because online audits such as known-vulnerable actions can start failing without a code change.
  • Permissions: contents: read only, so it also works on fork PRs.
  • Config: owncloud/* references may stay on @main. Everything else must be SHA-pinned.

Existing findings fixed (separate commits)

  • dependabot-cooldown: every composer and npm entry waits 7 days, including the 10.16 ones, as github-actions already does.
  • artipacked: checkouts do not persist credentials. No job runs a git operation after checkout.
  • self-repository: local reusable workflows are called as $/... instead of ./.... This is GitHub's self-repository syntax, which files written to the workspace at runtime cannot redirect. It is proven in reusable-workflows#104's CI. nightly.yml uses it too, and will only show it on its next run.
  • ref-version-mismatch: setup-php's tag is 2.40.0, without a v.
  • unpinned-images: suppressed inline, with the reason on the line. The database tags come from the caller's databases input or the fixed mariadb:10.6 fallback. The Oracle image is tag-pinned, and a digest would also freeze its security patches.

zizmor 1.31.1 reports no findings on this branch.

🤖 Generated with Claude Code

oc-tmueller and others added 3 commits October 26, 2026 12:51
Runs zizmor over this repository's workflows and Dependabot config on
every pull request, on pushes to the default branch and weekly, through
owncloud/reusable-workflows' zizmor.yml. Any finding fails the check.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Thomas Müller <323649642+oc-tmueller@users.noreply.github.com>
- dependabot-cooldown: composer and npm updates wait 7 days too, as
  github-actions already does.
- artipacked: checkouts do not persist credentials. No job runs a git
  operation after checkout.
- self-repository: the local reusable workflows are called as $/...
  instead of ./..., which files written to the workspace at runtime
  cannot redirect.
- ref-version-mismatch: setup-php's tag is 2.40.0, without the v.
- unpinned-images: suppressed inline. The database image tags come from
  the caller's databases input; the Oracle image is tag-pinned, and a
  digest would also freeze its security patches.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Thomas Müller <323649642+oc-tmueller@users.noreply.github.com>
Only pull request runs of the zizmor audit cancel each other now; a push
to master and the weekly run share a ref and used to cancel one another.
The acceptance mysql image is either the caller's databases input or the
fixed mariadb:10.6 federated fallback; the ignore reason now says so.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Thomas Müller <323649642+oc-tmueller@users.noreply.github.com>
@oc-tmueller
oc-tmueller requested a review from a team as a code owner October 26, 2026 12:03
@oc-tmueller
oc-tmueller merged commit 8fed47f into master Oct 26, 2026
37 checks passed
@oc-tmueller
oc-tmueller deleted the ci/zizmor branch October 26, 2026 15:19
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