Skip to content

ci: add zizmor workflow audit - #609

Merged
LukasHirt merged 3 commits into
owncloud:mainfrom
oc-tmueller:ci/zizmor
Oct 26, 2026
Merged

LukasHirt merged 3 commits into
owncloud:mainfrom
oc-tmueller: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 reusable owncloud/reusable-workflows/.github/workflows/zizmor.yml. It's part of an org-wide rollout (pilot: owncloud/notes#577, merged). 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 the default branch and weekly.
  • 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)

  • excessive-permissions: this repository's default token is read/write. release.yml and test.yml now default to contents: read. github-release keeps its contents: write, and no other job uses the token (Docker Hub login uses its own secret).
  • cache-poisoning: the release build no longer uses setup-node's pnpm cache, so a tag build cannot restore a cache that a branch build wrote.
  • template-injection: step outputs used in release.yml run: scripts are passed through env: instead of being expanded into the script.
  • artipacked: checkouts do not persist credentials.
  • dependabot-cooldown: every update entry waits 7 days, as github-actions already does.
  • superfluous-actions: suppressed inline for the softprops release step, which CI cannot exercise.

Not exercised by this PR's CI: release.yml (tags only).

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>
- excessive-permissions: release.yml and test.yml ran with the
  repository's read/write default token; both default to contents:
  read now. github-release keeps its contents: write; no other job
  uses the token (Docker Hub login uses its own secret).
- cache-poisoning: the release build no longer uses setup-node's pnpm
  cache, so a tag build cannot restore a cache a branch build wrote.
- template-injection: step outputs used in release.yml run: scripts
  are passed through env: instead of being expanded into the script.
- artipacked: checkouts do not persist credentials.
- dependabot-cooldown: every update entry waits 7 days.
- superfluous-actions: suppressed inline for the softprops release
  step, which CI cannot exercise.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Thomas Müller <323649642+oc-tmueller@users.noreply.github.com>
The caller comment claimed only pull request runs cancel superseded
ones. GitHub keeps one pending run per group, so for other events a
queued run is still replaced by a newer one; the per-event grouping
only keeps a push from cancelling or displacing the weekly run.

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:51
@kw-security

kw-security commented Oct 26, 2026 •

Copy link
Copy Markdown

✅ Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
✅ Open Source Security 0 0 0 0 0 issues
✅ Licenses 0 0 0 0 0 issues
✅ Code Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@LukasHirt
LukasHirt merged commit e5c6d0e into owncloud:main Oct 26, 2026
36 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.

3 participants