Releases: zizmorcore/zizmor
v1.19.0
New Features ππ
- New audit: archived-uses detects usages of archived repositories in uses: clauses (#1411)
Enhancements π±π
-
The use-trusted-publishing audit now detects additional publishing command patterns, including common "wrapped" patterns like bundle exec gem publish (#1394)
-
zizmor now produces better error messages on a handful of error cases involving invalid input files. Specifically, a subset of syntax and schema errors now produce more detailed and actionable error messages (#1396)
-
The use-trusted-publishing audit now detects additional publishing command patterns, including uv run ..., uvx ..., and poetry publish (#1402)
-
zizmor now produces more useful and less ambiguous spans for many findings, particularly those from the anonymous-definition audit (#1416)
-
zizmor now discovers configuration files named zizmor.yaml, in addition to zizmor.yml (#1431)
-
zizmor now produces a more useful error message when input collection yields no inputs (#1439)
-
The --render-links flag now allows users to control zizmor's OSC 8 terminal link rendering behavior. This is particularly useful in environments that advertise themselves as terminals but fail to correctly render or ignore OSC 8 links (#1454)
Performance Improvements ππ
- The [impostor-commit] audit is now significantly faster on true positives, making true positive detection virtually as fast as true negative detection. In practice, true positive runs are over 100 times faster than before (#1429)
Bug Fixes ππ
-
Fixed a bug where the obfuscation audit would crash if it encountered a CMD shell that was defined outside of the current step block (i.e. as a job or workflow default) (#1418)
-
Fixed a bug where the opentofu ecosystem was not recognized in Dependabot configuration files (#1452)
-
--color=alwaysno longer implies--render-links=always, as some environments (like GitHub Actions) support ANSI color codes but fail to handle OSC escapes gracefully (#1454)
v1.18.0
Enhancements π±π
-
The use-trusted-publishing audit now detects NuGet publishing commands (#1369)
-
The dependabot-cooldown audit now flags cooldown periods of less than 7 days by default (#1375)
-
The dependabot-cooldown audit can now be configured with a custom minimum cooldown period via rules.dependabot-cooldown.config.days (#1377)
-
zizmor now produces slightly more useful error messages when the user supplies an invalid configuration for the forbidden-uses audit (#1381)
Bug Fixes ππ
- Fixed additional edge cases where auto-fixed would fail to preserve a document's final newline (#1372)
v1.18.0-rc3
chore: attempt to fix sdist metadata, prep another RC (#1388) Signed-off-by: William Woodruff <[email protected]>
v1.18.0-rc2
chore: prep 1.18.0-rc2 release (#1387) Signed-off-by: William Woodruff <[email protected]>
v1.18.0-rc1
chore: prep 1.18.0-rc1 release (#1386)
v1.17.0
Enhancements π±π
-
zizmor now produces a more useful error message when asked to collect only workflows from a remote input that contains no workflows (#1324)
-
zizmor now produces more precise severities on actions/checkout versions that have more misuse-resistant credentials persistence behavior (#1353)
Many thanks to @ManuelLerchnerQC for proposing and implementing this improvement!
-
The use-trusted-publishing audit now correctly detecting more "dry-run" patterns, making it significantly more accurate (#1357)
-
The obfuscation audit now detects usages of shell: cmd and similar, as the Windows CMD shell lacks a formal grammar and limits analysis of run: blocks in other audits (#1361)
Performance Improvements ππ
- zizmor's core has been refactored to be asynchronous, making online and I/O-heavy audits significantly faster. Typical user workloads should see speedups of 40% to 70% (#1314)
Bug Fixes ππ
-
Fixed a bug where auto-fixes would fail to preserve a document's final newline (#1323)
-
zizmor now uses the native (OS) TLS roots when performing HTTPS requests, improving compatibility with user environments that perform TLS interception (#1328)
-
The github-env audit now falls back to assuming bash-like shell syntax in run: blocks if it can't infer the shell being used (#1336)
-
The concurrency-limits audit now correctly detects job-level concurrency settings, in addition to workflow-level settings (#1338)
-
Fixed a bug where zizmor would fail to collect workflows with names that overlapped with other input types (e.g. action.yml and dependabot.yml) when passed explicitly by path (#1345)
v1.16.3
v1.16.2
Enhancements π±π
- The concurrency-limits audit no longer flags explicit user concurrency overrides, e.g. cancel-in-progress: false (#1302)
- zizmor now detects CI environments and specializes its panic handling accordingly, improving the quality of panic reports when running in CI (#1307)
Bug Fixes ππ
- Fixed a bug where zizmor would reject some Dependabot configuration files with logically unsound schedules (but that are accepted by GitHub regardless) (#1308)
v1.16.1
v1.16.0
New Features ππ
-
New audit: concurrency-limits detects insufficient concurrency limits in workflows (#1227)
Many thanks to @jwallwork23 for proposing and implementing this audit!
Performance Improvements ππ
-
zizmor's online mode is now significantly (40% to over 95%) faster on common workloads, thanks to a combination of caching improvements and conversion of GitHub API requests into Git remote lookups (#1257)
Many thanks to @Bo98 for implementing these improvements!
Enhancements π±π
-
When running in --fix mode and all fixes are successfully applied, zizmor now has similar exit code behavior as the --no-exit-codes and --format=sarif flags (#1242)
Many thanks to @cnaples79 for implementing this improvement!
-
The dependabot-cooldown audit now supports auto-fixes for many findings (#1229)
Many thanks to @mostafa for implementing this improvement!
-
The dependabot-execution audit now supports auto-fixes for many findings (#1229)
Many thanks to @mostafa for implementing this improvement!
-
zizmor now has limited, experimental support for handling inputs that contain YAML anchors (#1266)