zizmor 0.10.0__tar.gz → 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of zizmor might be problematic. Click here for more details.

Files changed (156) hide show
  1. {zizmor-0.10.0 → zizmor-1.0.0}/.github/workflows/ci.yml +2 -2
  2. {zizmor-0.10.0 → zizmor-1.0.0}/.github/workflows/pypi.yml +5 -5
  3. {zizmor-0.10.0 → zizmor-1.0.0}/.github/workflows/site.yml +1 -1
  4. {zizmor-0.10.0 → zizmor-1.0.0}/.github/workflows/zizmor.yml +2 -2
  5. {zizmor-0.10.0 → zizmor-1.0.0}/Cargo.lock +128 -30
  6. {zizmor-0.10.0 → zizmor-1.0.0}/Cargo.toml +13 -9
  7. {zizmor-0.10.0 → zizmor-1.0.0}/PKG-INFO +1 -1
  8. {zizmor-0.10.0 → zizmor-1.0.0}/docs/audits.md +14 -13
  9. {zizmor-0.10.0 → zizmor-1.0.0}/docs/configuration.md +5 -1
  10. {zizmor-0.10.0 → zizmor-1.0.0}/docs/installation.md +13 -1
  11. zizmor-1.0.0/docs/quickstart.md +88 -0
  12. zizmor-1.0.0/docs/release-notes.md +378 -0
  13. {zizmor-0.10.0 → zizmor-1.0.0}/docs/snippets/help.txt +4 -0
  14. {zizmor-0.10.0 → zizmor-1.0.0}/docs/snippets/trophies.md +222 -0
  15. {zizmor-0.10.0 → zizmor-1.0.0}/docs/snippets/trophies.txt +37 -0
  16. {zizmor-0.10.0 → zizmor-1.0.0}/docs/usage.md +174 -6
  17. {zizmor-0.10.0 → zizmor-1.0.0}/mkdocs.yml +1 -0
  18. {zizmor-0.10.0 → zizmor-1.0.0}/src/audit/artipacked.rs +2 -2
  19. zizmor-1.0.0/src/audit/cache_poisoning.rs +545 -0
  20. {zizmor-0.10.0 → zizmor-1.0.0}/src/audit/dangerous_triggers.rs +2 -2
  21. {zizmor-0.10.0 → zizmor-1.0.0}/src/audit/excessive_permissions.rs +15 -3
  22. zizmor-1.0.0/src/audit/github_env.rs +533 -0
  23. {zizmor-0.10.0 → zizmor-1.0.0}/src/audit/hardcoded_container_credentials.rs +2 -2
  24. {zizmor-0.10.0 → zizmor-1.0.0}/src/audit/impostor_commit.rs +24 -2
  25. {zizmor-0.10.0 → zizmor-1.0.0}/src/audit/insecure_commands.rs +31 -6
  26. {zizmor-0.10.0 → zizmor-1.0.0}/src/audit/known_vulnerable_actions.rs +30 -3
  27. {zizmor-0.10.0 → zizmor-1.0.0}/src/audit/mod.rs +86 -16
  28. {zizmor-0.10.0 → zizmor-1.0.0}/src/audit/ref_confusion.rs +29 -2
  29. {zizmor-0.10.0 → zizmor-1.0.0}/src/audit/self_hosted_runner.rs +2 -2
  30. {zizmor-0.10.0 → zizmor-1.0.0}/src/audit/template_injection.rs +58 -21
  31. zizmor-1.0.0/src/audit/unpinned_uses.rs +95 -0
  32. {zizmor-0.10.0 → zizmor-1.0.0}/src/audit/use_trusted_publishing.rs +2 -2
  33. {zizmor-0.10.0 → zizmor-1.0.0}/src/expr/expr.pest +3 -7
  34. {zizmor-0.10.0 → zizmor-1.0.0}/src/expr/mod.rs +137 -59
  35. {zizmor-0.10.0 → zizmor-1.0.0}/src/finding/locate.rs +10 -16
  36. {zizmor-0.10.0 → zizmor-1.0.0}/src/finding/mod.rs +14 -7
  37. {zizmor-0.10.0 → zizmor-1.0.0}/src/github_api.rs +129 -8
  38. {zizmor-0.10.0 → zizmor-1.0.0}/src/main.rs +187 -89
  39. {zizmor-0.10.0 → zizmor-1.0.0}/src/models.rs +260 -58
  40. {zizmor-0.10.0 → zizmor-1.0.0}/src/registry.rs +58 -53
  41. {zizmor-0.10.0 → zizmor-1.0.0}/src/render.rs +9 -9
  42. {zizmor-0.10.0 → zizmor-1.0.0}/src/sarif.rs +6 -6
  43. {zizmor-0.10.0 → zizmor-1.0.0}/src/state.rs +8 -2
  44. {zizmor-0.10.0 → zizmor-1.0.0}/src/utils.rs +30 -1
  45. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshot.rs +63 -0
  46. zizmor-1.0.0/tests/snapshots/snapshot__cache_poisoning-10.snap +19 -0
  47. zizmor-1.0.0/tests/snapshots/snapshot__cache_poisoning-11.snap +60 -0
  48. zizmor-1.0.0/tests/snapshots/snapshot__cache_poisoning-12.snap +22 -0
  49. zizmor-1.0.0/tests/snapshots/snapshot__cache_poisoning-13.snap +22 -0
  50. zizmor-1.0.0/tests/snapshots/snapshot__excessive_permissions-2.snap +15 -0
  51. zizmor-1.0.0/tests/snapshots/snapshot__excessive_permissions.snap +6 -0
  52. zizmor-1.0.0/tests/snapshots/snapshot__github_env.snap +33 -0
  53. zizmor-1.0.0/tests/snapshots/snapshot__insecure_commands-3.snap +32 -0
  54. zizmor-1.0.0/tests/snapshots/snapshot__template_injection-6.snap +18 -0
  55. zizmor-1.0.0/tests/snapshots/snapshot__unpinned_uses-3.snap +22 -0
  56. zizmor-1.0.0/tests/test-data/cache-poisoning/caching-not-configurable.yml +19 -0
  57. zizmor-1.0.0/tests/test-data/cache-poisoning/issue-343-repro.yml +41 -0
  58. zizmor-1.0.0/tests/test-data/cache-poisoning/publisher-step.yml +32 -0
  59. zizmor-1.0.0/tests/test-data/cache-poisoning/workflow-release-branch-trigger.yml +19 -0
  60. zizmor-1.0.0/tests/test-data/excessive-permissions/issue-336-repro.yml +12 -0
  61. zizmor-1.0.0/tests/test-data/github-env/action.yml +28 -0
  62. zizmor-1.0.0/tests/test-data/insecure-commands/action.yml +32 -0
  63. zizmor-1.0.0/tests/test-data/template-injection/issue-339-repro.yml +30 -0
  64. zizmor-1.0.0/tests/test-data/unpinned-uses/action.yml +11 -0
  65. zizmor-0.10.0/.github/release.yml +0 -29
  66. zizmor-0.10.0/docs/quickstart.md +0 -73
  67. zizmor-0.10.0/src/audit/cache_poisoning.rs +0 -275
  68. zizmor-0.10.0/src/audit/github_env.rs +0 -311
  69. zizmor-0.10.0/src/audit/unpinned_uses.rs +0 -56
  70. {zizmor-0.10.0 → zizmor-1.0.0}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  71. {zizmor-0.10.0 → zizmor-1.0.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  72. {zizmor-0.10.0 → zizmor-1.0.0}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  73. {zizmor-0.10.0 → zizmor-1.0.0}/.github/dependabot.yml +0 -0
  74. {zizmor-0.10.0 → zizmor-1.0.0}/.github/workflows/release.yml +0 -0
  75. {zizmor-0.10.0 → zizmor-1.0.0}/.gitignore +0 -0
  76. {zizmor-0.10.0 → zizmor-1.0.0}/CONTRIBUTING.md +0 -0
  77. {zizmor-0.10.0 → zizmor-1.0.0}/LICENSE +0 -0
  78. {zizmor-0.10.0 → zizmor-1.0.0}/Makefile +0 -0
  79. {zizmor-0.10.0 → zizmor-1.0.0}/README.md +0 -0
  80. {zizmor-0.10.0 → zizmor-1.0.0}/docs/assets/favicon48x48.png +0 -0
  81. {zizmor-0.10.0 → zizmor-1.0.0}/docs/assets/rainbow.svg +0 -0
  82. {zizmor-0.10.0 → zizmor-1.0.0}/docs/assets/zizmor-demo.gif +0 -0
  83. {zizmor-0.10.0 → zizmor-1.0.0}/docs/development.md +0 -0
  84. {zizmor-0.10.0 → zizmor-1.0.0}/docs/index.md +0 -0
  85. {zizmor-0.10.0 → zizmor-1.0.0}/docs/magiclink.css +0 -0
  86. {zizmor-0.10.0 → zizmor-1.0.0}/docs/snippets/render-trophies.py +0 -0
  87. {zizmor-0.10.0 → zizmor-1.0.0}/docs/trophy-case.md +0 -0
  88. {zizmor-0.10.0 → zizmor-1.0.0}/pyproject.toml +0 -0
  89. {zizmor-0.10.0 → zizmor-1.0.0}/site-requirements.txt +0 -0
  90. {zizmor-0.10.0 → zizmor-1.0.0}/src/config.rs +0 -0
  91. {zizmor-0.10.0 → zizmor-1.0.0}/tests/acceptance.rs +0 -0
  92. {zizmor-0.10.0 → zizmor-1.0.0}/tests/common.rs +0 -0
  93. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__artipacked-2.snap +0 -0
  94. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__artipacked-3.snap +0 -0
  95. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__artipacked.snap +0 -0
  96. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__cache_poisoning-2.snap +0 -0
  97. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__cache_poisoning-3.snap +0 -0
  98. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__cache_poisoning-4.snap +0 -0
  99. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__cache_poisoning-5.snap +0 -0
  100. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__cache_poisoning-6.snap +0 -0
  101. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__cache_poisoning-7.snap +0 -0
  102. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__cache_poisoning-8.snap +0 -0
  103. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__cache_poisoning-9.snap +0 -0
  104. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__cache_poisoning.snap +0 -0
  105. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__cant_retrieve.snap +0 -0
  106. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__conflicting_online_options-2.snap +0 -0
  107. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__conflicting_online_options-3.snap +0 -0
  108. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__conflicting_online_options.snap +0 -0
  109. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__insecure_commands-2.snap +0 -0
  110. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__insecure_commands.snap +0 -0
  111. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__self_hosted-2.snap +0 -0
  112. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__self_hosted-3.snap +0 -0
  113. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__self_hosted-4.snap +0 -0
  114. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__self_hosted-5.snap +0 -0
  115. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__self_hosted-6.snap +0 -0
  116. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__self_hosted-7.snap +0 -0
  117. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__self_hosted-8.snap +0 -0
  118. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__self_hosted.snap +0 -0
  119. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__template_injection-2.snap +0 -0
  120. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__template_injection-3.snap +0 -0
  121. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__template_injection-4.snap +0 -0
  122. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__template_injection-5.snap +0 -0
  123. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__template_injection.snap +0 -0
  124. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__unpinned_uses-2.snap +0 -0
  125. {zizmor-0.10.0 → zizmor-1.0.0}/tests/snapshots/snapshot__unpinned_uses.snap +0 -0
  126. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/artipacked.yml +0 -0
  127. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/cache-poisoning/caching-disabled-by-default.yml +0 -0
  128. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/cache-poisoning/caching-enabled-by-default.yml +0 -0
  129. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/cache-poisoning/caching-opt-in-boolean-toggle.yml +0 -0
  130. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/cache-poisoning/caching-opt-in-boolish-toggle.yml +0 -0
  131. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/cache-poisoning/caching-opt-in-expression.yml +0 -0
  132. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/cache-poisoning/caching-opt-in-multi-value-toggle.yml +0 -0
  133. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/cache-poisoning/caching-opt-out.yml +0 -0
  134. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/cache-poisoning/no-cache-aware-steps.yml +0 -0
  135. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/cache-poisoning/workflow-tag-trigger.yml +0 -0
  136. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/cache-poisoning.yml +0 -0
  137. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/excessive-permissions.yml +0 -0
  138. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/github_env.yml +0 -0
  139. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/hardcoded-credentials.yml +0 -0
  140. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/inlined-ignores.yml +0 -0
  141. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/insecure-commands.yml +0 -0
  142. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/self-hosted/issue-283-repro.yml +0 -0
  143. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/self-hosted/self-hosted-matrix-dimension.yml +0 -0
  144. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/self-hosted/self-hosted-matrix-exclusion.yml +0 -0
  145. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/self-hosted/self-hosted-matrix-inclusion.yml +0 -0
  146. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/self-hosted/self-hosted-runner-group.yml +0 -0
  147. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/self-hosted/self-hosted-runner-label.yml +0 -0
  148. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/self-hosted.yml +0 -0
  149. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/template-injection/issue-22-repro.yml +0 -0
  150. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/template-injection/pr-317-repro.yml +0 -0
  151. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/template-injection/static-env.yml +0 -0
  152. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/template-injection/template-injection-dynamic-matrix.yml +0 -0
  153. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/template-injection/template-injection-static-matrix.yml +0 -0
  154. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/template-injection.yml +0 -0
  155. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/unpinned-uses.yml +0 -0
  156. {zizmor-0.10.0 → zizmor-1.0.0}/tests/test-data/use-trusted-publishing.yml +0 -0
@@ -17,7 +17,7 @@ jobs:
17
17
  - name: Format
18
18
  run: cargo fmt && git diff --exit-code
19
19
 
20
- - uses: Swatinem/rust-cache@82a92a6e8fbeee089604da2575dc567ae9ddeaab # v2
20
+ - uses: Swatinem/rust-cache@f0deed1e0edfc6a9be95417288c0e1099b1eeec3 # v2
21
21
 
22
22
  - name: Lint
23
23
  run: cargo clippy -- -D warnings
@@ -29,7 +29,7 @@ jobs:
29
29
  with:
30
30
  persist-credentials: false
31
31
 
32
- - uses: Swatinem/rust-cache@82a92a6e8fbeee089604da2575dc567ae9ddeaab # v2
32
+ - uses: Swatinem/rust-cache@f0deed1e0edfc6a9be95417288c0e1099b1eeec3 # v2
33
33
 
34
34
  - name: Test
35
35
  run: cargo test
@@ -42,7 +42,7 @@ jobs:
42
42
  sccache: 'true'
43
43
  manylinux: auto
44
44
  - name: Upload wheels
45
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4
45
+ uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4
46
46
  with:
47
47
  name: wheels-linux-${{ matrix.platform.target }}
48
48
  path: dist
@@ -72,7 +72,7 @@ jobs:
72
72
  sccache: 'true'
73
73
  manylinux: musllinux_1_2
74
74
  - name: Upload wheels
75
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4
75
+ uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4
76
76
  with:
77
77
  name: wheels-musllinux-${{ matrix.platform.target }}
78
78
  path: dist
@@ -97,7 +97,7 @@ jobs:
97
97
  args: --release --out dist
98
98
  sccache: 'true'
99
99
  - name: Upload wheels
100
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4
100
+ uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4
101
101
  with:
102
102
  name: wheels-windows-${{ matrix.platform.target }}
103
103
  path: dist
@@ -122,7 +122,7 @@ jobs:
122
122
  args: --release --out dist
123
123
  sccache: 'true'
124
124
  - name: Upload wheels
125
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4
125
+ uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4
126
126
  with:
127
127
  name: wheels-macos-${{ matrix.platform.target }}
128
128
  path: dist
@@ -139,7 +139,7 @@ jobs:
139
139
  command: sdist
140
140
  args: --out dist
141
141
  - name: Upload sdist
142
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4
142
+ uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4
143
143
  with:
144
144
  name: wheels-sdist
145
145
  path: dist
@@ -30,7 +30,7 @@ jobs:
30
30
  persist-credentials: false
31
31
 
32
32
  - name: Install the latest version of uv
33
- uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a # v3
33
+ uses: astral-sh/setup-uv@887a942a15af3a7626099df99e897a18d9e5ab3a # v3
34
34
 
35
35
  - name: build site
36
36
  run: make site
@@ -19,13 +19,13 @@ jobs:
19
19
  with:
20
20
  persist-credentials: false
21
21
  - name: Install the latest version of uv
22
- uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a # v4
22
+ uses: astral-sh/setup-uv@887a942a15af3a7626099df99e897a18d9e5ab3a # v4
23
23
  - name: Run zizmor 🌈
24
24
  run: uvx zizmor --format sarif . > results.sarif
25
25
  env:
26
26
  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
27
27
  - name: Upload SARIF file
28
- uses: github/codeql-action/upload-sarif@df409f7d9260372bd5f19e5b04e83cb3c43714ae # v3.27.9
28
+ uses: github/codeql-action/upload-sarif@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # v3.28.0
29
29
  with:
30
30
  sarif_file: results.sarif
31
31
  category: zizmor
@@ -97,9 +97,9 @@ dependencies = [
97
97
 
98
98
  [[package]]
99
99
  name = "anyhow"
100
- version = "1.0.94"
100
+ version = "1.0.95"
101
101
  source = "registry+https://github.com/rust-lang/crates.io-index"
102
- checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7"
102
+ checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04"
103
103
 
104
104
  [[package]]
105
105
  name = "arrayvec"
@@ -283,9 +283,9 @@ dependencies = [
283
283
 
284
284
  [[package]]
285
285
  name = "clap-verbosity-flag"
286
- version = "3.0.1"
286
+ version = "3.0.2"
287
287
  source = "registry+https://github.com/rust-lang/crates.io-index"
288
- checksum = "54381ae56ad222eea3f529c692879e9c65e07945ae48d3dc4d1cb18dbec8cf44"
288
+ checksum = "2678fade3b77aa3a8ff3aae87e9c008d3fb00473a41c71fbf74e91c8c7b37e84"
289
289
  dependencies = [
290
290
  "clap",
291
291
  "tracing-core",
@@ -349,6 +349,15 @@ dependencies = [
349
349
  "libc",
350
350
  ]
351
351
 
352
+ [[package]]
353
+ name = "crc32fast"
354
+ version = "1.4.2"
355
+ source = "registry+https://github.com/rust-lang/crates.io-index"
356
+ checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
357
+ dependencies = [
358
+ "cfg-if",
359
+ ]
360
+
352
361
  [[package]]
353
362
  name = "crypto-common"
354
363
  version = "0.1.6"
@@ -452,6 +461,28 @@ version = "2.3.0"
452
461
  source = "registry+https://github.com/rust-lang/crates.io-index"
453
462
  checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
454
463
 
464
+ [[package]]
465
+ name = "filetime"
466
+ version = "0.2.25"
467
+ source = "registry+https://github.com/rust-lang/crates.io-index"
468
+ checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586"
469
+ dependencies = [
470
+ "cfg-if",
471
+ "libc",
472
+ "libredox",
473
+ "windows-sys 0.59.0",
474
+ ]
475
+
476
+ [[package]]
477
+ name = "flate2"
478
+ version = "1.0.35"
479
+ source = "registry+https://github.com/rust-lang/crates.io-index"
480
+ checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c"
481
+ dependencies = [
482
+ "crc32fast",
483
+ "miniz_oxide",
484
+ ]
485
+
455
486
  [[package]]
456
487
  name = "fnv"
457
488
  version = "1.0.7"
@@ -585,9 +616,9 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f"
585
616
 
586
617
  [[package]]
587
618
  name = "github-actions-models"
588
- version = "0.15.0"
619
+ version = "0.17.0"
589
620
  source = "registry+https://github.com/rust-lang/crates.io-index"
590
- checksum = "d1b2a17936ffbdd2c25b57f76efee924ddb0bd8ae402834616117dbc772d2f8a"
621
+ checksum = "9ac510798ef644c8dc4d1cedf58ccda3721096b209d52ee255e4e59c92e8e51d"
591
622
  dependencies = [
592
623
  "indexmap",
593
624
  "serde",
@@ -1030,6 +1061,17 @@ version = "0.2.166"
1030
1061
  source = "registry+https://github.com/rust-lang/crates.io-index"
1031
1062
  checksum = "c2ccc108bbc0b1331bd061864e7cd823c0cab660bbe6970e66e2c0614decde36"
1032
1063
 
1064
+ [[package]]
1065
+ name = "libredox"
1066
+ version = "0.1.3"
1067
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1068
+ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
1069
+ dependencies = [
1070
+ "bitflags",
1071
+ "libc",
1072
+ "redox_syscall",
1073
+ ]
1074
+
1033
1075
  [[package]]
1034
1076
  name = "linked-hash-map"
1035
1077
  version = "0.5.6"
@@ -1217,7 +1259,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1217
1259
  checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc"
1218
1260
  dependencies = [
1219
1261
  "memchr",
1220
- "thiserror 2.0.8",
1262
+ "thiserror 2.0.9",
1221
1263
  "ucd-trie",
1222
1264
  ]
1223
1265
 
@@ -1431,6 +1473,15 @@ dependencies = [
1431
1473
  "getrandom",
1432
1474
  ]
1433
1475
 
1476
+ [[package]]
1477
+ name = "redox_syscall"
1478
+ version = "0.5.8"
1479
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1480
+ checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834"
1481
+ dependencies = [
1482
+ "bitflags",
1483
+ ]
1484
+
1434
1485
  [[package]]
1435
1486
  name = "reflink-copy"
1436
1487
  version = "0.1.20"
@@ -1488,9 +1539,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
1488
1539
 
1489
1540
  [[package]]
1490
1541
  name = "reqwest"
1491
- version = "0.12.9"
1542
+ version = "0.12.11"
1492
1543
  source = "registry+https://github.com/rust-lang/crates.io-index"
1493
- checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f"
1544
+ checksum = "7fe060fe50f524be480214aba758c71f99f90ee8c83c5a36b5e9e1d568eb4eb3"
1494
1545
  dependencies = [
1495
1546
  "base64 0.22.1",
1496
1547
  "bytes",
@@ -1520,6 +1571,7 @@ dependencies = [
1520
1571
  "sync_wrapper",
1521
1572
  "tokio",
1522
1573
  "tokio-rustls",
1574
+ "tower",
1523
1575
  "tower-service",
1524
1576
  "url",
1525
1577
  "wasm-bindgen",
@@ -1674,9 +1726,9 @@ dependencies = [
1674
1726
 
1675
1727
  [[package]]
1676
1728
  name = "serde"
1677
- version = "1.0.216"
1729
+ version = "1.0.217"
1678
1730
  source = "registry+https://github.com/rust-lang/crates.io-index"
1679
- checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e"
1731
+ checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70"
1680
1732
  dependencies = [
1681
1733
  "serde_derive",
1682
1734
  ]
@@ -1697,15 +1749,15 @@ dependencies = [
1697
1749
  "strum",
1698
1750
  "strum_macros",
1699
1751
  "syn 2.0.90",
1700
- "thiserror 2.0.8",
1752
+ "thiserror 2.0.9",
1701
1753
  "typed-builder",
1702
1754
  ]
1703
1755
 
1704
1756
  [[package]]
1705
1757
  name = "serde_derive"
1706
- version = "1.0.216"
1758
+ version = "1.0.217"
1707
1759
  source = "registry+https://github.com/rust-lang/crates.io-index"
1708
- checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e"
1760
+ checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0"
1709
1761
  dependencies = [
1710
1762
  "proc-macro2",
1711
1763
  "quote",
@@ -1714,9 +1766,9 @@ dependencies = [
1714
1766
 
1715
1767
  [[package]]
1716
1768
  name = "serde_json"
1717
- version = "1.0.133"
1769
+ version = "1.0.134"
1718
1770
  source = "registry+https://github.com/rust-lang/crates.io-index"
1719
- checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377"
1771
+ checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d"
1720
1772
  dependencies = [
1721
1773
  "itoa",
1722
1774
  "memchr",
@@ -1995,6 +2047,17 @@ dependencies = [
1995
2047
  "syn 2.0.90",
1996
2048
  ]
1997
2049
 
2050
+ [[package]]
2051
+ name = "tar"
2052
+ version = "0.4.43"
2053
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2054
+ checksum = "c65998313f8e17d0d553d28f91a0df93e4dbbbf770279c7bc21ca0f09ea1a1f6"
2055
+ dependencies = [
2056
+ "filetime",
2057
+ "libc",
2058
+ "xattr",
2059
+ ]
2060
+
1998
2061
  [[package]]
1999
2062
  name = "tempfile"
2000
2063
  version = "3.14.0"
@@ -2031,11 +2094,11 @@ dependencies = [
2031
2094
 
2032
2095
  [[package]]
2033
2096
  name = "thiserror"
2034
- version = "2.0.8"
2097
+ version = "2.0.9"
2035
2098
  source = "registry+https://github.com/rust-lang/crates.io-index"
2036
- checksum = "08f5383f3e0071702bf93ab5ee99b52d26936be9dedd9413067cbdcddcb6141a"
2099
+ checksum = "f072643fd0190df67a8bab670c20ef5d8737177d6ac6b2e9a236cb096206b2cc"
2037
2100
  dependencies = [
2038
- "thiserror-impl 2.0.8",
2101
+ "thiserror-impl 2.0.9",
2039
2102
  ]
2040
2103
 
2041
2104
  [[package]]
@@ -2051,9 +2114,9 @@ dependencies = [
2051
2114
 
2052
2115
  [[package]]
2053
2116
  name = "thiserror-impl"
2054
- version = "2.0.8"
2117
+ version = "2.0.9"
2055
2118
  source = "registry+https://github.com/rust-lang/crates.io-index"
2056
- checksum = "f2f357fcec90b3caef6623a099691be676d033b40a058ac95d2a6ade6fa0c943"
2119
+ checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4"
2057
2120
  dependencies = [
2058
2121
  "proc-macro2",
2059
2122
  "quote",
@@ -2208,6 +2271,27 @@ dependencies = [
2208
2271
  "toml_datetime",
2209
2272
  ]
2210
2273
 
2274
+ [[package]]
2275
+ name = "tower"
2276
+ version = "0.5.2"
2277
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2278
+ checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9"
2279
+ dependencies = [
2280
+ "futures-core",
2281
+ "futures-util",
2282
+ "pin-project-lite",
2283
+ "sync_wrapper",
2284
+ "tokio",
2285
+ "tower-layer",
2286
+ "tower-service",
2287
+ ]
2288
+
2289
+ [[package]]
2290
+ name = "tower-layer"
2291
+ version = "0.3.3"
2292
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2293
+ checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e"
2294
+
2211
2295
  [[package]]
2212
2296
  name = "tower-service"
2213
2297
  version = "0.3.3"
@@ -2289,9 +2373,9 @@ dependencies = [
2289
2373
 
2290
2374
  [[package]]
2291
2375
  name = "tree-sitter"
2292
- version = "0.24.4"
2376
+ version = "0.24.6"
2293
2377
  source = "registry+https://github.com/rust-lang/crates.io-index"
2294
- checksum = "b67baf55e7e1b6806063b1e51041069c90afff16afcbbccd278d899f9d84bca4"
2378
+ checksum = "5f2434c86ba59ed15af56039cc5bf1acf8ba76ce301e32ef08827388ef285ec5"
2295
2379
  dependencies = [
2296
2380
  "cc",
2297
2381
  "regex",
@@ -2328,12 +2412,12 @@ dependencies = [
2328
2412
 
2329
2413
  [[package]]
2330
2414
  name = "tree-sitter-yaml"
2331
- version = "0.6.1"
2415
+ version = "0.7.0"
2332
2416
  source = "registry+https://github.com/rust-lang/crates.io-index"
2333
- checksum = "aad27ec46ad343d8b514f64dd3fdffb478c592ece561b6c935d90ef55589c6b6"
2417
+ checksum = "d0c99f2b92b677f1a18b6b232fa9329afb5758118238a7d0b29cae324ef50d5e"
2334
2418
  dependencies = [
2335
2419
  "cc",
2336
- "tree-sitter",
2420
+ "tree-sitter-language",
2337
2421
  ]
2338
2422
 
2339
2423
  [[package]]
@@ -2894,6 +2978,17 @@ version = "0.5.5"
2894
2978
  source = "registry+https://github.com/rust-lang/crates.io-index"
2895
2979
  checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51"
2896
2980
 
2981
+ [[package]]
2982
+ name = "xattr"
2983
+ version = "1.3.1"
2984
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2985
+ checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
2986
+ dependencies = [
2987
+ "libc",
2988
+ "linux-raw-sys",
2989
+ "rustix",
2990
+ ]
2991
+
2897
2992
  [[package]]
2898
2993
  name = "xxhash-rust"
2899
2994
  version = "0.8.12"
@@ -2902,11 +2997,11 @@ checksum = "6a5cbf750400958819fb6178eaa83bee5cd9c29a26a40cc241df8c70fdd46984"
2902
2997
 
2903
2998
  [[package]]
2904
2999
  name = "yamlpath"
2905
- version = "0.13.0"
3000
+ version = "0.14.0"
2906
3001
  source = "registry+https://github.com/rust-lang/crates.io-index"
2907
- checksum = "98b19abff49f569d353d8fbf024f83a440a28e2e024e1e57f379417ed0cd1216"
3002
+ checksum = "e41a4009f1260c7a08b722f096be598c00e3e0aa13f9bed662282acb5d2dbfa5"
2908
3003
  dependencies = [
2909
- "thiserror 1.0.69",
3004
+ "thiserror 2.0.9",
2910
3005
  "tree-sitter",
2911
3006
  "tree-sitter-yaml",
2912
3007
  ]
@@ -3013,7 +3108,7 @@ dependencies = [
3013
3108
 
3014
3109
  [[package]]
3015
3110
  name = "zizmor"
3016
- version = "0.10.0"
3111
+ version = "1.0.0"
3017
3112
  dependencies = [
3018
3113
  "annotate-snippets",
3019
3114
  "anstream",
@@ -3023,6 +3118,7 @@ dependencies = [
3023
3118
  "clap",
3024
3119
  "clap-verbosity-flag",
3025
3120
  "etcetera",
3121
+ "flate2",
3026
3122
  "github-actions-models",
3027
3123
  "http-cache-reqwest",
3028
3124
  "human-panic",
@@ -3042,6 +3138,8 @@ dependencies = [
3042
3138
  "serde_json",
3043
3139
  "serde_json_path",
3044
3140
  "serde_yaml",
3141
+ "streaming-iterator",
3142
+ "tar",
3045
3143
  "terminal-link",
3046
3144
  "tokio",
3047
3145
  "tracing",
@@ -1,7 +1,7 @@
1
1
  [package]
2
2
  name = "zizmor"
3
3
  description = "Static analysis for GitHub Actions"
4
- version = "0.10.0"
4
+ version = "1.0.0"
5
5
  edition = "2021"
6
6
  repository = "https://github.com/woodruffw/zizmor"
7
7
  homepage = "https://github.com/woodruffw/zizmor"
@@ -15,14 +15,15 @@ rust-version = "1.80.1"
15
15
  [dependencies]
16
16
  annotate-snippets = "0.11.5"
17
17
  anstream = "0.6.18"
18
- anyhow = "1.0.94"
18
+ anyhow = "1.0.95"
19
19
  camino = { version = "1.1.9", features = ["serde1"] }
20
20
  clap = { version = "4.5.23", features = ["derive", "env"] }
21
- clap-verbosity-flag = { version = "3.0.0", features = [
21
+ clap-verbosity-flag = { version = "3.0.2", features = [
22
22
  "tracing",
23
23
  ], default-features = false }
24
24
  etcetera = "0.8.0"
25
- github-actions-models = "0.15.0"
25
+ flate2 = "1.0.35"
26
+ github-actions-models = "0.17.0"
26
27
  http-cache-reqwest = "0.15.0"
27
28
  human-panic = "2.0.1"
28
29
  indexmap = "2.7.0"
@@ -32,25 +33,28 @@ owo-colors = "4.1.0"
32
33
  pest = "2.7.15"
33
34
  pest_derive = "2.7.15"
34
35
  regex = "1.11.1"
35
- reqwest = { version = "0.12.9", features = [
36
+ reqwest = { version = "0.12.11", features = [
36
37
  "blocking",
37
38
  "json",
38
39
  "rustls-tls",
39
40
  ], default-features = false }
40
41
  reqwest-middleware = "0.4.0"
41
- serde = { version = "1.0.216", features = ["derive"] }
42
+ serde = { version = "1.0.217", features = ["derive"] }
42
43
  serde-sarif = "0.7.0"
43
- serde_json = "1.0.133"
44
+ serde_json = "1.0.134"
44
45
  serde_yaml = "0.9.34"
46
+ # TODO remove pending https://github.com/tree-sitter/tree-sitter/pull/4034
47
+ streaming-iterator = "0.1.9"
48
+ tar = "0.4.43"
45
49
  terminal-link = "0.1.0"
46
50
  tokio = { version = "1.42.0", features = ["rt-multi-thread"] }
47
51
  tracing = "0.1.41"
48
52
  tracing-indicatif = "0.3.8"
49
53
  tracing-subscriber = { version = "0.3.19", features = ["env-filter"] }
50
- tree-sitter = "0.24.4"
54
+ tree-sitter = "0.24.6"
51
55
  tree-sitter-bash = "0.23.3"
52
56
  tree-sitter-powershell = "0.24.4"
53
- yamlpath = "0.13.0"
57
+ yamlpath = "0.14.0"
54
58
 
55
59
  [profile.dev.package]
56
60
  insta.opt-level = 3
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zizmor
3
- Version: 0.10.0
3
+ Version: 1.0.0
4
4
  Summary: Static analysis for GitHub Actions
5
5
  Keywords: cli,github-actions,static-analysis,security
6
6
  Home-Page: https://github.com/woodruffw/zizmor
@@ -295,7 +295,7 @@ Use [encrypted secrets] instead of hardcoded credentials.
295
295
 
296
296
  | Type | Examples | Introduced in | Works offline | Enabled by default |
297
297
  |----------|-----------------------|---------------|----------------|--------------------|
298
- | Workflow | [impostor-commit.yml] | v0.1.0 | ❌ | ✅ |
298
+ | Workflow, Action | [impostor-commit.yml] | v0.1.0 | ❌ | ✅ |
299
299
 
300
300
  [impostor-commit.yml]: https://github.com/woodruffw/gha-hazmat/blob/main/.github/workflows/impostor-commit.yml
301
301
 
@@ -333,9 +333,9 @@ within an authentic commit (or an authentic tag/branch reference).
333
333
 
334
334
  ## `known-vulnerable-actions`
335
335
 
336
- | Type | Examples | Introduced in | Works offline | Enabled by default |
337
- |----------|--------------------------------|---------------|----------------|--------------------|
338
- | Workflow | [known-vulnerable-actions.yml] | v0.1.0 | ❌ | ✅ |
336
+ | Type | Examples | Introduced in | Works offline | Enabled by default |
337
+ |------------------|--------------------------------|---------------|----------------|--------------------|
338
+ | Workflow, Action | [known-vulnerable-actions.yml] | v0.1.0 | ❌ | ✅ |
339
339
 
340
340
  [known-vulnerable-actions.yml]: https://github.com/woodruffw/gha-hazmat/blob/main/.github/workflows/known-vulnerable-actions.yml
341
341
 
@@ -357,9 +357,10 @@ the action if one is available, or remove the action's usage entirely.
357
357
 
358
358
  ## `ref-confusion`
359
359
 
360
- | Type | Examples | Introduced in | Works offline | Enabled by default |
361
- |----------|---------------------|---------------|----------------|--------------------|
362
- | Workflow | [ref-confusion.yml] | v0.1.0 | ❌ | ✅ |
360
+ | Type | Examples | Introduced in | Works offline | Enabled by default |
361
+ |------------------|---------------------|---------------|----------------|--------------------|
362
+ | Workflow, Action | [ref-confusion.yml] | v0.1.0 | ❌ | ✅ |
363
+
363
364
 
364
365
  [ref-confusion.yml]: https://github.com/woodruffw/gha-hazmat/blob/main/.github/workflows/ref-confusion.yml
365
366
 
@@ -431,7 +432,7 @@ there are steps you can take to minimize their risk:
431
432
 
432
433
  | Type | Examples | Introduced in | Works offline | Enabled by default |
433
434
  |----------|--------------------------|---------------|----------------|--------------------|
434
- | Workflow | [template-injection.yml] | v0.1.0 | ✅ | ✅ |
435
+ | Workflow, Action | [template-injection.yml] | v0.1.0 | ✅ | ✅ |
435
436
 
436
437
  [template-injection.yml]: https://github.com/woodruffw/gha-hazmat/blob/main/.github/workflows/template-injection.yml
437
438
 
@@ -546,9 +547,9 @@ or @rubygems/release-gem for canonical examples of using it.
546
547
 
547
548
  ## `unpinned-uses`
548
549
 
549
- | Type | Examples | Introduced in | Works offline | Enabled by default |
550
- |----------|------------------------------|---------------|----------------|--------------------|
551
- | Workflow | [unpinned.yml] | v0.4.0 | ✅ | ✅ |
550
+ | Type | Examples | Introduced in | Works offline | Enabled by default |
551
+ |------------------|------------------------------|---------------|----------------|--------------------|
552
+ | Workflow, Action | [unpinned.yml] | v0.4.0 | ✅ | ✅ |
552
553
 
553
554
  [unpinned.yml]: https://github.com/woodruffw/gha-hazmat/blob/main/.github/workflows/unpinned.yml
554
555
 
@@ -622,7 +623,7 @@ A before/after example is shown below.
622
623
 
623
624
  | Type | Examples | Introduced in | Works offline | Enabled by default |
624
625
  |----------|-------------------------|---------------|----------------|--------------------|
625
- | Workflow | [insecure-commands.yml] | v0.5.0 | ✅ | ✅ |
626
+ | Workflow, Action | [insecure-commands.yml] | v0.5.0 | ✅ | ✅ |
626
627
 
627
628
  [insecure-commands.yml]: https://github.com/woodruffw/gha-hazmat/blob/main/.github/workflows/insecure-commands.yml
628
629
 
@@ -668,7 +669,7 @@ In general, users should use for [GitHub Actions environment files]
668
669
 
669
670
  | Type | Examples | Introduced in | Works offline | Enabled by default |
670
671
  |----------|--------------------|---------------|----------------|--------------------|
671
- | Workflow | [github-env.yml] | v0.6.0 | ✅ | ✅ |
672
+ | Workflow, Action | [github-env.yml] | v0.6.0 | ✅ | ✅ |
672
673
 
673
674
  [github-env.yml]: https://github.com/woodruffw/gha-hazmat/blob/main/.github/workflows/github-env.yml
674
675
 
@@ -59,7 +59,11 @@ where `filename.yml` is the base filename of the workflow, and `line` and
59
59
  location to ignore. If one or both are absent, then the rule applies to the
60
60
  entire file or entire line.
61
61
 
62
- By example, here is a configuration file with two different audit ignore
62
+ !!! important
63
+
64
+ Composite action findings cannot be ignored via `zizmor.yml` currently.
65
+
66
+ For example, here is a configuration file with two different audit ignore
63
67
  rule groups:
64
68
 
65
69
  ```yaml title="zizmor.yml"
@@ -10,14 +10,18 @@ description: Installation instructions for zizmor.
10
10
 
11
11
  === ":simple-rust: crates.io"
12
12
 
13
+ ![Crates.io Version](https://img.shields.io/crates/v/zizmor)
14
+
13
15
  You can install `zizmor` from <https://crates.io> with `cargo`:
14
16
 
15
17
  ```bash
16
- cargo install zizmor
18
+ cargo install --locked zizmor
17
19
  ```
18
20
 
19
21
  === ":simple-homebrew: Homebrew"
20
22
 
23
+ ![Homebrew Formula Version](https://img.shields.io/homebrew/v/zizmor)
24
+
21
25
  `zizmor` is provided by [Homebrew](https://brew.sh/):
22
26
 
23
27
  ```bash
@@ -26,6 +30,8 @@ description: Installation instructions for zizmor.
26
30
 
27
31
  === ":simple-pypi: PyPI"
28
32
 
33
+ ![PyPI - Version](https://img.shields.io/pypi/v/zizmor)
34
+
29
35
  !!! tip
30
36
 
31
37
  Despite being available on PyPI, `zizmor` is a compiled binary
@@ -51,6 +57,10 @@ description: Installation instructions for zizmor.
51
57
 
52
58
  === ":simple-anaconda: Conda"
53
59
 
60
+ [![Anaconda-Server Badge](https://anaconda.org/conda-forge/zizmor/badges/version.svg)](https://anaconda.org/conda-forge/zizmor)
61
+ [![Anaconda-Server Badge](https://anaconda.org/conda-forge/zizmor/badges/latest_release_date.svg)](https://anaconda.org/conda-forge/zizmor)
62
+ [![Anaconda-Server Badge](https://anaconda.org/conda-forge/zizmor/badges/platforms.svg)](https://anaconda.org/conda-forge/zizmor)
63
+
54
64
  !!! note
55
65
 
56
66
  This is a community-maintained package.
@@ -67,6 +77,8 @@ description: Installation instructions for zizmor.
67
77
 
68
78
  === ":material-nix: Nix"
69
79
 
80
+ [![nixpkgs unstable package](https://repology.org/badge/version-for-repo/nix_unstable/zizmor.svg)](https://repology.org/project/zizmor/versions)
81
+
70
82
  !!! note
71
83
 
72
84
  This is a community-maintained package.