Skip to content

ci: [SC-66825] run zizmor and fix GitHub Actions findings - #10

Merged
mbabic merged 4 commits into
mainfrom
chore/sc-66825/zizmor-ci-and-actions-hardening
Aug 18, 2026
Merged

ci: [SC-66825] run zizmor and fix GitHub Actions findings#10
mbabic merged 4 commits into
mainfrom
chore/sc-66825/zizmor-ci-and-actions-hardening

Conversation

@mbabic

@mbabic mbabic commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Runs zizmor in CI and fixes the three findings it reports. First repo in sc-66825common-github goes first because its reusable workflows are consumed org-wide.

Modeled on narrative-skills-marketplace PR #108, which is the reference implementation for this ticket.

Findings fixed

Finding Severity Fix
artipacked Low persist-credentials: false on actions/checkout in backup.yml
secrets-inherit Medium dropped secrets: inherit from backup-daily.yml
excessive-permissions Medium permissions: contents: read on backup-daily.yml

Plus two excessive-permissions findings that only surface at --persona=pedantic, fixed in release-please.yml by moving its write scopes from the workflow level onto the job.

No suppressions were added. All findings are genuinely fixed.

mbabic added 3 commits August 17, 2026 16:26
…flow

backup.yml checks out the repo and then mirrors the whole workspace,
including .git/, to narrative-backups-prod. Without persist-credentials:
false, actions/checkout leaves the job token in .git/config as an
extraheader, so every daily backup wrote a GitHub credential into S3.

Also switches the GITHUB_TOKEN env var from secrets.GITHUB_TOKEN to the
github.token context. The context form always resolves in a called
workflow, so callers no longer need 'secrets: inherit' to make it work
— which lets backup-daily.yml drop 'secrets: inherit' (zizmor
secrets-inherit) and scope itself to permissions: contents: read
(zizmor excessive-permissions).

Callers are unaffected: backup.yml declares no inputs and no secrets,
so its call signature is unchanged. All 84 live callers remain valid
whether or not they pass 'secrets: inherit'.

sc-66825
Modeled on narrative-skills-marketplace/.github/workflows/zizmor.yml
(PR #108): permissions: {} at the top level, per-job permissions scoped
to what upload-sarif needs, and SARIF published to code scanning.

common-github hosts reusable workflows consumed by 82 repos, so a
regression here has org-wide blast radius — this catches it at PR time.

sc-66825
contents: write and pull-requests: write were granted at the workflow
level, so they would apply to any job added later. Moves them onto the
release-please job with a comment per scope, leaving permissions: {} at
the top level (zizmor excessive-permissions, pedantic persona).

No behavior change: the workflow has a single job.

sc-66825
@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

@mbabic
mbabic merged commit 056549c into main Aug 18, 2026
2 checks passed
@mbabic
mbabic deleted the chore/sc-66825/zizmor-ci-and-actions-hardening branch August 18, 2026 20:51
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