Skip to content

ci: add zizmor workflow audit - #162

Open
oc-tmueller wants to merge 3 commits into
mainfrom
ci/zizmor
Open

oc-tmueller wants to merge 3 commits into
mainfrom
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 (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. It runs on every PR, on pushes to main 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)

  • excessive-permissions: pages: write and id-token: write were granted workflow-wide, so the build job, which runs on every PR, had them too. They now sit only on the deploy job (main only), which keeps the contents: read it had before. The deploy job only runs on main, so this PR's CI cannot exercise it. The first push to main will.
  • artipacked: checkouts do not persist credentials. config-docs-in-sync runs git ls-remote / git clone only against public repositories.
  • dependabot-cooldown: npm updates wait 7 days, as github-actions already does.

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:32
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: pages: write and id-token: write were granted
  workflow-wide, so the build job, which runs on every pull request, got
  them too. They now sit on the deploy job only, which runs on main and
  is the only job that publishes.
- artipacked: checkouts do not persist credentials. No job runs a git
  operation after checkout.
- dependabot-cooldown: npm updates wait 7 days too, as github-actions
  already does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Thomas Müller <323649642+oc-tmueller@users.noreply.github.com>
Only the zizmor caller's concurrency comment changes: GitHub keeps one queued
run per group, so for non-pull-request events a newer run still replaces a
queued one; the comment now says so instead of claiming only pull request
runs are superseded.

The deploy job keeps contents: read alongside pages/id-token write, the
token it had before, since a narrower one would only surface after
merge. Correction to the previous commit message: config-docs-in-sync
does run git ls-remote and git clone after checkout, but only against
public repositories, which need no credentials.

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:49
@LukasHirt

Copy link
Copy Markdown
Contributor

CI failure is unrelated to these changes. There's a missing branch and version mismatch on master branch… @oc-tmueller should core include the 11.0 branch or should the version be updated here in content?

This branch has not been deployed

No deployments
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