Suppress four zizmor findings that cannot be fixed - #6262
Merged
Conversation
Two dangerous-triggers findings flag the workflow_run trigger itself, which neither workflow can drop: applying a label needs write access the calculating workflow deliberately lacks, and claude-code-action rejects the release event. What made the first dangerous was trusting the artifact for the target pull request and the label, and neither is read from it any more. The second checks out the default branch rather than an event-supplied ref. Two artipacked findings are on checkouts that keep their credentials on purpose. claude.yml has contents: write so Claude can push commits, and that push uses the credential. api-compat.yml cannot push, but it runs a git fetch and is the only required status check, so dropping it risks blocking every pull request to clear one low-severity finding. Each suppression carries the reasoning inline, so the decision sits next to the code rather than only in an issue. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #6262 +/- ##
==========================================
- Coverage 72.71% 72.69% -0.02%
==========================================
Files 742 742
Lines 77299 77299
==========================================
- Hits 56209 56194 -15
- Misses 17126 17142 +16
+ Partials 3964 3963 -1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
jerm-dro
approved these changes
Aug 10, 2026
This was referenced Aug 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This changes no behaviour whatsoever — the diff is comments only.
pr-size-label-apply.ymldangerous-triggersworkflow_runis required. What made it dangerous — reading the target pull request number and the label out of an artifact a pull request author controls — was fixed in #6259; neither is read from the artifact now.release-notes.ymldangerous-triggersclaude-code-actionrejects thereleaseevent outright, soworkflow_runis the only option. The risk this audit describes is a privileged workflow checking out an event-supplied ref; this one deliberately checks out the default branch, with the reasoning already documented on the step.claude.ymlartipackedcontents: writespecifically so Claude can push commits to a pull request, and that push uses the credentialactions/checkoutleaves behind.persist-credentials: falsewould break the action.api-compat.ymlartipackedcontents: read), so exposure is limited, and it runsgit fetch origin refs/tags/...— which succeeds unauthenticated only because this repository is public. It is also the repository's only required status check, so breaking it blocks every pull request. Not worth it for one low-severity finding.Effect
More useful than the count: all 8 remaining High findings are now in the four release workflows —
releaser.yml(4),helm-publish.yml(2),create-release-pr.yml(1),create-release-tag.yml(1). Nothing High is left anywhere else, so what stands between here and a--min-severity=highgate is now a single, clearly bounded decision.Part of #6253
Type of change
Test plan
Unit tests (
task test)E2E tests (
task test-e2e)Linting (
task lint-fix)Manual testing (describe below)
Verified the suppression syntax on throwaway copies before writing it into the workflows: each file went from reporting its finding to reporting none.
Confirmed the comment placement, which is not where the finding is reported.
dangerous-triggersis reported againston:but is only suppressed by a comment on theworkflow_run:line beneath it.All workflows parse as YAML;
actionlintreports 12 findings before and after, all pre-existing.Confirmed the counts above and that the 8 survivors are the release-workflow findings.
Does this introduce a user-facing change?
No.
Special notes for reviewers
artipackedsuppressions are not strictly required for a--min-severity=highgate, since they are Low. They are here because the reasoning is worth recording where it will actually be read — particularlyclaude.yml, where the obvious "fix" breaks the action.dangerous-triggersjustifications specifically. A suppression is only as good as its argument, and if either reads as hand-waving it should be challenged rather than merged.Generated with Claude Code