Skip to content

ci: scope the existing zizmor annotation to workflow_run - #87

Merged
netopsengineer merged 1 commit into
mainfrom
ci/zizmor-trigger-annotation
Oct 22, 2026
Merged

netopsengineer merged 1 commit into
mainfrom
ci/zizmor-trigger-annotation

Conversation

@netopsengineer

@netopsengineer netopsengineer commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

Summary

Move the existing dangerous-triggers annotation onto the workflow_run key. This is a two-line, comment-only compatibility repair for zizmor 1.31.0's more precise diagnostic location (zizmorcore/zizmor#2402). It unblocks the scanner update in #85 after this PR merges and that branch is refreshed.

No workflow behavior, token permission, required check, approval rule, artifact handling, or exception policy changes. This preserves the existing exception rather than adding a new one, and the effective scope with 1.31.0 is narrower.

Verification

  • uv sync --locked: passed with Python 3.14.8.
  • Full uv run prek run --all-files --show-diff-on-failure: all hooks passed.
  • uv run pytest: 680 passed, 100% line and branch coverage.
  • Existing auto-fix scope-guard suite: 31 passed.
  • Direct pyright, ruff, pydoclint and bandit commands passed.
  • Actual zizmor 1.30.1 and 1.31.0: original annotation passes 1.30.1 but fails 1.31.0 at workflow_run; relocated annotation passes both.
  • Added-trigger canary: inserting issue_comment alongside workflow_run is still a high finding under 1.31.0. Only workflow_run is suppressed. Under 1.30.1, the prior map-wide span suppressed both.
  • Direct 1.31.0 scan of all repository workflows/configurations: no findings.
  • The extra Sourcery command in AGENTS.md could not be completed because the execution reviewer blocked its external PostHog contact. It was not retried or bypassed; the canonical prek gate does not contain Sourcery.

Security review and retained limitation

The privileged consumer continues to use the base workflow, exact triggering run ID, head SHA for tree/base/parent, canonical tracked-file/mode checks, and a non-force ref update. It does not check out or execute PR code. The producer's JSON is still untrusted data, and allowed-file contents are not proven to be mechanically derived. Existing source/test/doc files and some control files, including .pre-commit-config.yaml, remain eligible for app-authored commits and subsequent automated approval. CONTRIBUTING.md already documents the arbitrary-content limitation. A successful scanner run is not a new safety certification of that architecture.

Independent read-only review confirmed the compatibility/scope result and identified additional provenance/control-file hardening as separate work. This PR deliberately does not change that design or broaden its authorization.

Release impact

CI annotation only: no dependency, runtime, packaged source, build requirement, or distribution content is changed by this PR. No distribution is needed for this repair. All accumulated commit messages since v0.2.6 were inspected, including bodies and breaking-change markers; no release-requesting change was found. Pinned python-semantic-release 10.7.0, run read-only against exact candidate commit 9104f8ab98191347b435e2c4964ec5df262b72c5, reports 0.2.6 and No release will be made, 0.2.6 has already been released!.

Retain the existing one-approval requirement and all required checks. Do not bypass review to merge this repair.

@netopsengineer
netopsengineer marked this pull request as ready for review October 22, 2026 13:50
@netopsengineer
netopsengineer merged commit a21f11d into main Oct 22, 2026
8 checks passed
@netopsengineer
netopsengineer deleted the ci/zizmor-trigger-annotation branch October 22, 2026 13:51
netopsengineer pushed a commit that referenced this pull request Oct 22, 2026
…0.1 to 1.31.0 in the pre-commit group (#85)

Update the immutable zizmor pre-commit hook pin to 1.31.0. Reviewed required checks pass after the trigger annotation compatibility repair in #87. This development-tooling-only change does not require a runtime release.
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.

1 participant