Skip to content

ci: add zizmor workflow audit - #136

Merged
phil-davis merged 3 commits into
masterfrom
ci/zizmor
Oct 27, 2026
Merged

phil-davis merged 3 commits into
masterfrom
ci/zizmor

Conversation

@oc-tmueller

@oc-tmueller oc-tmueller commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Adds a zizmor audit of this repository's GitHub Actions workflows and Dependabot config, through the 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

  • dependabot-cooldown: every Dependabot entry waits 7 days before
    proposing an update.
  • artipacked: checkouts do not persist credentials.
  • self-repository: the local reusable workflow is called as $/...
    instead of ./... .
  • ref-version-mismatch: setup-php's tag is 2.40.0, without the v.
  • unpinned-images: suppressed inline; the service images are tag-pinned
    entries of this workflow's own matrix (a digest would also freeze
    their 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 14:33
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: every Dependabot entry waits 7 days before
  proposing an update.
- artipacked: checkouts do not persist credentials.
- self-repository: the local reusable workflow is called as $/...
  instead of ./... .
- 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.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Thomas Müller <323649642+oc-tmueller@users.noreply.github.com>
GitHub still replaces a queued push, schedule or dispatch run with a
newer one in the same group; only cancel-in-progress is limited to pull
requests. Say so instead of claiming only pull request runs cancel.

The unpinned-images ignore reason now says what is true: the service
images come from this workflow's own matrix and are tag-pinned.

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 13:53
@phil-davis
phil-davis merged commit e9b2721 into master Oct 27, 2026
16 checks passed
@phil-davis
phil-davis deleted the ci/zizmor branch October 27, 2026 03:09
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