# zizmor configuration — https://docs.zizmor.sh/configuration/
#
# cache-poisoning (release.yml):
#   The release pipeline restores build caches (Swatinem/rust-cache for the Rust
#   compilation, actions/setup-node) as a deliberate, accepted optimisation.
#   zizmor flags these under cache-poisoning because release.yml publishes
#   artifacts to crates.io / PyPI / npm, so a poisoned cache could in theory
#   reach a released build. Our caches are maintainer-controlled and the
#   restore speedup is kept on purpose; we accept this risk rather than running
#   cache-free release builds. (Six of the eight hits are actions/setup-node,
#   which zizmor reports at "Low" confidence.)
#
# artipacked (sync-about.yml):
#   The sync-about job checks out with persisted credentials on purpose: it
#   pushes the indicator-count fix-up back to the PR head branch (git commit +
#   git push), which needs the token in the runner's git config. It uploads no
#   artifacts, so the persisted token is never packaged or leaked; accept it.
#
# template-injection (sync-about.yml):
#   False positive. Every flagged expansion is steps.count.outputs.count, the
#   indicator count produced by an internal `grep -c` over lib.rs. It is not
#   attacker-controllable, so there is nothing to inject.
#
# use-trusted-publishing (release.yml):
#   Informational suggestion to use OIDC trusted publishing for PyPI / npm
#   instead of long-lived tokens. A worthwhile migration, but it reconfigures
#   the live publish pipeline on the registry side; tracked separately rather
#   than blocking on it here.
#
# superfluous-actions (release.yml):
#   The GitHub release step uses softprops/action-gh-release. The runner ships
#   `gh`, so this is replaceable by a script step, but the action is stable and
#   battle-tested; we keep it deliberately.
rules:
  cache-poisoning:
    ignore:
      - release.yml
  artipacked:
    ignore:
      - sync-about.yml
  template-injection:
    ignore:
      - sync-about.yml
  use-trusted-publishing:
    ignore:
      - release.yml
  superfluous-actions:
    ignore:
      - release.yml
