zizmor 1.3.0__tar.gz → 1.4.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 (209) hide show
  1. {zizmor-1.3.0 → zizmor-1.4.0}/.github/dependabot.yml +9 -0
  2. {zizmor-1.3.0 → zizmor-1.4.0}/.github/workflows/ci.yml +5 -3
  3. zizmor-1.4.0/.github/workflows/docker.yml +156 -0
  4. {zizmor-1.3.0 → zizmor-1.4.0}/.github/workflows/pypi.yml +11 -11
  5. {zizmor-1.3.0 → zizmor-1.4.0}/.github/workflows/site.yml +1 -1
  6. {zizmor-1.3.0 → zizmor-1.4.0}/.github/workflows/zizmor.yml +2 -2
  7. {zizmor-1.3.0 → zizmor-1.4.0}/Cargo.lock +35 -35
  8. {zizmor-1.3.0 → zizmor-1.4.0}/Cargo.toml +17 -11
  9. zizmor-1.4.0/Dockerfile +30 -0
  10. {zizmor-1.3.0 → zizmor-1.4.0}/PKG-INFO +13 -3
  11. {zizmor-1.3.0 → zizmor-1.4.0}/README.md +12 -2
  12. {zizmor-1.3.0 → zizmor-1.4.0}/docs/audits.md +70 -1
  13. {zizmor-1.3.0 → zizmor-1.4.0}/docs/development.md +22 -7
  14. {zizmor-1.3.0 → zizmor-1.4.0}/docs/installation.md +8 -1
  15. {zizmor-1.3.0 → zizmor-1.4.0}/docs/release-notes.md +57 -1
  16. {zizmor-1.3.0 → zizmor-1.4.0}/docs/snippets/trophies.md +137 -0
  17. {zizmor-1.3.0 → zizmor-1.4.0}/docs/snippets/trophies.txt +25 -0
  18. {zizmor-1.3.0 → zizmor-1.4.0}/docs/usage.md +7 -1
  19. {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/artipacked.rs +2 -2
  20. {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/bot_conditions.rs +12 -2
  21. {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/insecure_commands.rs +1 -1
  22. {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/mod.rs +2 -1
  23. {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/overprovisioned_secrets.rs +1 -1
  24. zizmor-1.4.0/src/audit/unredacted_secrets.rs +121 -0
  25. {zizmor-1.3.0 → zizmor-1.4.0}/src/expr/expr.pest +1 -1
  26. {zizmor-1.3.0 → zizmor-1.4.0}/src/expr/mod.rs +4 -0
  27. {zizmor-1.3.0 → zizmor-1.4.0}/src/finding/mod.rs +21 -1
  28. {zizmor-1.3.0 → zizmor-1.4.0}/src/github_api.rs +3 -3
  29. {zizmor-1.3.0 → zizmor-1.4.0}/src/main.rs +11 -2
  30. {zizmor-1.3.0 → zizmor-1.4.0}/src/sarif.rs +25 -6
  31. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshot.rs +31 -25
  32. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__bot_conditions.snap +4 -4
  33. zizmor-1.4.0/tests/snapshots/snapshot__ref_confusion-2.snap +5 -0
  34. zizmor-1.4.0/tests/snapshots/snapshot__ref_confusion.snap +13 -0
  35. zizmor-1.4.0/tests/snapshots/snapshot__unredacted_secrets.snap +22 -0
  36. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/artipacked/issue-447-repro.yml +1 -1
  37. zizmor-1.4.0/tests/test-data/ref-confusion/issue-518-repro.yml +12 -0
  38. zizmor-1.4.0/tests/test-data/ref-confusion.yml +11 -0
  39. zizmor-1.4.0/tests/test-data/unredacted-secrets.yml +18 -0
  40. zizmor-1.3.0/tests/snapshots/snapshot__conflicting_online_options-2.snap +0 -10
  41. zizmor-1.3.0/tests/snapshots/snapshot__conflicting_online_options-3.snap +0 -10
  42. zizmor-1.3.0/tests/snapshots/snapshot__conflicting_online_options.snap +0 -10
  43. {zizmor-1.3.0 → zizmor-1.4.0}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  44. {zizmor-1.3.0 → zizmor-1.4.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  45. {zizmor-1.3.0 → zizmor-1.4.0}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  46. {zizmor-1.3.0 → zizmor-1.4.0}/.github/workflows/release.yml +0 -0
  47. {zizmor-1.3.0 → zizmor-1.4.0}/.gitignore +0 -0
  48. {zizmor-1.3.0 → zizmor-1.4.0}/CONTRIBUTING.md +0 -0
  49. {zizmor-1.3.0 → zizmor-1.4.0}/LICENSE +0 -0
  50. {zizmor-1.3.0 → zizmor-1.4.0}/Makefile +0 -0
  51. {zizmor-1.3.0 → zizmor-1.4.0}/docs/assets/favicon48x48.png +0 -0
  52. {zizmor-1.3.0 → zizmor-1.4.0}/docs/assets/rainbow.svg +0 -0
  53. {zizmor-1.3.0 → zizmor-1.4.0}/docs/assets/zizmor-demo.gif +0 -0
  54. {zizmor-1.3.0 → zizmor-1.4.0}/docs/configuration.md +0 -0
  55. {zizmor-1.3.0 → zizmor-1.4.0}/docs/index.md +0 -0
  56. {zizmor-1.3.0 → zizmor-1.4.0}/docs/magiclink.css +0 -0
  57. {zizmor-1.3.0 → zizmor-1.4.0}/docs/quickstart.md +0 -0
  58. {zizmor-1.3.0 → zizmor-1.4.0}/docs/snippets/help.txt +0 -0
  59. {zizmor-1.3.0 → zizmor-1.4.0}/docs/snippets/render-sponsors.py +0 -0
  60. {zizmor-1.3.0 → zizmor-1.4.0}/docs/snippets/render-trophies.py +0 -0
  61. {zizmor-1.3.0 → zizmor-1.4.0}/docs/snippets/sponsors.html +0 -0
  62. {zizmor-1.3.0 → zizmor-1.4.0}/docs/snippets/sponsors.json +0 -0
  63. {zizmor-1.3.0 → zizmor-1.4.0}/docs/trophy-case.md +0 -0
  64. {zizmor-1.3.0 → zizmor-1.4.0}/mkdocs.yml +0 -0
  65. {zizmor-1.3.0 → zizmor-1.4.0}/pyproject.toml +0 -0
  66. {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/cache_poisoning.rs +0 -0
  67. {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/dangerous_triggers.rs +0 -0
  68. {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/excessive_permissions.rs +0 -0
  69. {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/github_env.rs +0 -0
  70. {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/hardcoded_container_credentials.rs +0 -0
  71. {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/impostor_commit.rs +0 -0
  72. {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/known_vulnerable_actions.rs +0 -0
  73. {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/ref_confusion.rs +0 -0
  74. {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/secrets_inherit.rs +0 -0
  75. {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/self_hosted_runner.rs +0 -0
  76. {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/template_injection.rs +0 -0
  77. {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/unpinned_uses.rs +0 -0
  78. {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/use_trusted_publishing.rs +0 -0
  79. {zizmor-1.3.0 → zizmor-1.4.0}/src/config.rs +0 -0
  80. {zizmor-1.3.0 → zizmor-1.4.0}/src/models/coordinate.rs +0 -0
  81. {zizmor-1.3.0 → zizmor-1.4.0}/src/models/uses.rs +0 -0
  82. {zizmor-1.3.0 → zizmor-1.4.0}/src/models.rs +0 -0
  83. {zizmor-1.3.0 → zizmor-1.4.0}/src/registry.rs +0 -0
  84. {zizmor-1.3.0 → zizmor-1.4.0}/src/render.rs +0 -0
  85. {zizmor-1.3.0 → zizmor-1.4.0}/src/state.rs +0 -0
  86. {zizmor-1.3.0 → zizmor-1.4.0}/src/utils.rs +0 -0
  87. {zizmor-1.3.0 → zizmor-1.4.0}/tests/acceptance.rs +0 -0
  88. {zizmor-1.3.0 → zizmor-1.4.0}/tests/common.rs +0 -0
  89. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__artipacked-2.snap +0 -0
  90. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__artipacked-3.snap +0 -0
  91. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__artipacked-4.snap +0 -0
  92. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__artipacked.snap +0 -0
  93. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-10.snap +0 -0
  94. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-11.snap +0 -0
  95. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-12.snap +0 -0
  96. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-13.snap +0 -0
  97. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-14.snap +0 -0
  98. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-2.snap +0 -0
  99. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-3.snap +0 -0
  100. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-4.snap +0 -0
  101. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-5.snap +0 -0
  102. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-6.snap +0 -0
  103. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-7.snap +0 -0
  104. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-8.snap +0 -0
  105. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-9.snap +0 -0
  106. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning.snap +0 -0
  107. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cant_retrieve.snap +0 -0
  108. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-10.snap +0 -0
  109. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-11.snap +0 -0
  110. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-12.snap +0 -0
  111. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-2.snap +0 -0
  112. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-3.snap +0 -0
  113. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-4.snap +0 -0
  114. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-5.snap +0 -0
  115. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-6.snap +0 -0
  116. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-7.snap +0 -0
  117. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-8.snap +0 -0
  118. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-9.snap +0 -0
  119. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions.snap +0 -0
  120. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__github_env-2.snap +0 -0
  121. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__github_env-3.snap +0 -0
  122. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__github_env.snap +0 -0
  123. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__insecure_commands-2.snap +0 -0
  124. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__insecure_commands-3.snap +0 -0
  125. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__insecure_commands.snap +0 -0
  126. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__invalid_inputs.snap +0 -0
  127. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__overprovisioned_secrets.snap +0 -0
  128. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__secrets_inherit.snap +0 -0
  129. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__self_hosted-2.snap +0 -0
  130. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__self_hosted-3.snap +0 -0
  131. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__self_hosted-4.snap +0 -0
  132. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__self_hosted-5.snap +0 -0
  133. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__self_hosted-6.snap +0 -0
  134. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__self_hosted-7.snap +0 -0
  135. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__self_hosted-8.snap +0 -0
  136. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__self_hosted.snap +0 -0
  137. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__template_injection-2.snap +0 -0
  138. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__template_injection-3.snap +0 -0
  139. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__template_injection-4.snap +0 -0
  140. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__template_injection-5.snap +0 -0
  141. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__template_injection-6.snap +0 -0
  142. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__template_injection-7.snap +0 -0
  143. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__template_injection-8.snap +0 -0
  144. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__template_injection.snap +0 -0
  145. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__unpinned_uses-2.snap +0 -0
  146. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__unpinned_uses-3.snap +0 -0
  147. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__unpinned_uses-4.snap +0 -0
  148. {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__unpinned_uses.snap +0 -0
  149. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/artipacked.yml +0 -0
  150. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/bot-conditions.yml +0 -0
  151. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/caching-disabled-by-default.yml +0 -0
  152. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/caching-enabled-by-default.yml +0 -0
  153. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/caching-not-configurable.yml +0 -0
  154. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/caching-opt-in-boolean-toggle.yml +0 -0
  155. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/caching-opt-in-boolish-toggle.yml +0 -0
  156. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/caching-opt-in-expression.yml +0 -0
  157. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/caching-opt-in-multi-value-toggle.yml +0 -0
  158. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/caching-opt-out.yml +0 -0
  159. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/issue-343-repro.yml +0 -0
  160. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/issue-378-repro.yml +0 -0
  161. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/no-cache-aware-steps.yml +0 -0
  162. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/publisher-step.yml +0 -0
  163. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/workflow-release-branch-trigger.yml +0 -0
  164. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/workflow-tag-trigger.yml +0 -0
  165. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning.yml +0 -0
  166. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/issue-336-repro.yml +0 -0
  167. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/issue-472-repro.yml +0 -0
  168. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/jobs-broaden-permissions.yml +0 -0
  169. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/reusable-workflow-call.yml +0 -0
  170. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/reusable-workflow-other-triggers.yml +0 -0
  171. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/workflow-default-perms-all-jobs-explicit.yml +0 -0
  172. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/workflow-default-perms.yml +0 -0
  173. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/workflow-empty-perms.yml +0 -0
  174. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/workflow-read-all.yml +0 -0
  175. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/workflow-write-all.yml +0 -0
  176. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/workflow-write-explicit.yml +0 -0
  177. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions.yml +0 -0
  178. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/github-env/action.yml +0 -0
  179. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/github-env/github-path.yml +0 -0
  180. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/github-env/issue-397-repro.yml +0 -0
  181. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/github_env.yml +0 -0
  182. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/hardcoded-credentials.yml +0 -0
  183. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/inlined-ignores.yml +0 -0
  184. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/insecure-commands/action.yml +0 -0
  185. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/insecure-commands.yml +0 -0
  186. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/invalid/invalid-workflow.yml +0 -0
  187. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/overprovisioned-secrets.yml +0 -0
  188. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/secrets-inherit.yml +0 -0
  189. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/self-hosted/issue-283-repro.yml +0 -0
  190. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/self-hosted/self-hosted-matrix-dimension.yml +0 -0
  191. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/self-hosted/self-hosted-matrix-exclusion.yml +0 -0
  192. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/self-hosted/self-hosted-matrix-inclusion.yml +0 -0
  193. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/self-hosted/self-hosted-runner-group.yml +0 -0
  194. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/self-hosted/self-hosted-runner-label.yml +0 -0
  195. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/self-hosted.yml +0 -0
  196. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/template-injection/issue-22-repro.yml +0 -0
  197. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/template-injection/issue-339-repro.yml +0 -0
  198. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/template-injection/issue-418-repro.yml +0 -0
  199. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/template-injection/pr-317-repro.yml +0 -0
  200. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/template-injection/pr-425-backstop/action.yml +0 -0
  201. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/template-injection/static-env.yml +0 -0
  202. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/template-injection/template-injection-dynamic-matrix.yml +0 -0
  203. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/template-injection/template-injection-static-matrix.yml +0 -0
  204. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/template-injection.yml +0 -0
  205. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/unpinned-uses/action.yml +0 -0
  206. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/unpinned-uses/issue-433-repro.yml +0 -0
  207. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/unpinned-uses.yml +0 -0
  208. {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/use-trusted-publishing.yml +0 -0
  209. {zizmor-1.3.0 → zizmor-1.4.0}/uv.lock +0 -0
@@ -17,3 +17,12 @@ updates:
17
17
  github-actions:
18
18
  patterns:
19
19
  - "*"
20
+
21
+ - package-ecosystem: docker
22
+ directory: "/"
23
+ schedule:
24
+ interval: "weekly"
25
+ groups:
26
+ docker:
27
+ patterns:
28
+ - "*"
@@ -33,10 +33,12 @@ jobs:
33
33
 
34
34
  - uses: Swatinem/rust-cache@f0deed1e0edfc6a9be95417288c0e1099b1eeec3 # v2
35
35
 
36
- - uses: astral-sh/setup-uv@b5f58b2abc5763ade55e4e9d0fe52cd1ff7979ca # v5.2.1
36
+ - uses: astral-sh/setup-uv@1edb52594c857e2b5b13128931090f0640537287 # v5.3.0
37
37
 
38
38
  - name: Test
39
- run: cargo test
39
+ run: cargo test --features online-tests
40
+ env:
41
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
40
42
 
41
43
  - name: Test snippets
42
44
  run: |
@@ -50,7 +52,7 @@ jobs:
50
52
  with:
51
53
  persist-credentials: false
52
54
 
53
- - uses: astral-sh/setup-uv@b5f58b2abc5763ade55e4e9d0fe52cd1ff7979ca # v5.2.1
55
+ - uses: astral-sh/setup-uv@1edb52594c857e2b5b13128931090f0640537287 # v5.3.0
54
56
 
55
57
  - name: Test site
56
58
  run: make site
@@ -0,0 +1,156 @@
1
+ name: Build and publish Docker images
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ version:
7
+ description: 'The version of zizmor to build against'
8
+ required: true
9
+
10
+ latest:
11
+ description: 'Whether to tag the image as latest'
12
+ required: false
13
+ default: true
14
+ type: boolean
15
+
16
+ permissions: {}
17
+
18
+ env:
19
+ ZIZMOR_IMAGE: ghcr.io/woodruffw/zizmor
20
+
21
+ jobs:
22
+ build:
23
+ strategy:
24
+ fail-fast: false
25
+ matrix:
26
+ image:
27
+ - runner: ubuntu-latest
28
+ platform: linux/amd64
29
+ platform-pair: linux-amd64
30
+ - runner: ubuntu-24.04-arm
31
+ platform: linux/arm64
32
+ platform-pair: linux-arm64
33
+
34
+ name: Build and publish Docker image (${{ matrix.image.runner }})
35
+
36
+ runs-on: ${{ matrix.image.runner }}
37
+
38
+ environment:
39
+ name: docker
40
+
41
+ permissions:
42
+ contents: read
43
+ packages: write
44
+
45
+ steps:
46
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
47
+ with:
48
+ persist-credentials: false
49
+
50
+ - name: Set up Docker Buildx
51
+ uses: docker/setup-buildx-action@f7ce87c1d6bead3e36075b2ce75da1f6cc28aaca # v3
52
+ with:
53
+ cache-binary: false
54
+
55
+ - name: Extract Docker metadata
56
+ id: docker-metadata
57
+ uses: docker/metadata-action@369eb591f429131d6889c46b94e711f089e6ca96 # v5
58
+ with:
59
+ images: "${{ env.ZIZMOR_IMAGE }}"
60
+
61
+ - name: Login to GHCR
62
+ uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v6
63
+ if: github.repository_owner == 'woodruffw'
64
+ with:
65
+ registry: ghcr.io
66
+ username: "${{ github.repository_owner }}"
67
+ password: "${{ secrets.GITHUB_TOKEN }}"
68
+
69
+ - name: Build and push by digest
70
+ id: build
71
+ uses: docker/build-push-action@0adf9959216b96bec444f325f1e493d4aa344497 # v6
72
+ with:
73
+ platforms: ${{ matrix.image.platform }}
74
+ labels: ${{ steps.docker-metadata.outputs.labels }}
75
+ outputs: type=image,"name=${{ env.ZIZMOR_IMAGE }}",push-by-digest=true,name-canonical=true,push=true
76
+
77
+ - name: Export digest
78
+ run: |
79
+ mkdir -p ${{ runner.temp }}/digests
80
+ digest="${DIGEST}"
81
+ touch "${{ runner.temp }}/digests/${digest#sha256:}"
82
+ env:
83
+ DIGEST: ${{ steps.build.outputs.digest }}
84
+
85
+ - name: Upload digest
86
+ uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4
87
+ with:
88
+ name: digests-${{ matrix.image.platform-pair }}
89
+ path: ${{ runner.temp }}/digests/*
90
+ if-no-files-found: error
91
+ retention-days: 1
92
+
93
+ merge:
94
+ needs: build
95
+ runs-on: ubuntu-latest
96
+
97
+ environment:
98
+ name: docker
99
+
100
+ permissions:
101
+ contents: read
102
+ packages: write
103
+
104
+ steps:
105
+ - name: Download digests
106
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4
107
+ with:
108
+ path: ${{ runner.temp }}/digests
109
+ pattern: digests-*
110
+ merge-multiple: true
111
+
112
+ - name: Login to GHCR
113
+ uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v6
114
+ if: github.repository_owner == 'woodruffw'
115
+ with:
116
+ registry: ghcr.io
117
+ username: ${{ github.repository_owner }}
118
+ password: ${{ secrets.GITHUB_TOKEN }}
119
+
120
+ - name: Set up Docker Buildx
121
+ uses: docker/setup-buildx-action@f7ce87c1d6bead3e36075b2ce75da1f6cc28aaca # v3
122
+ with:
123
+ cache-binary: false
124
+
125
+ - name: Extract Docker metadata
126
+ id: docker-metadata
127
+ uses: docker/metadata-action@369eb591f429131d6889c46b94e711f089e6ca96 # v5
128
+ env:
129
+ DOCKER_METADATA_ANNOTATIONS_LEVELS: index
130
+ with:
131
+ images: "${{ env.ZIZMOR_IMAGE }}"
132
+ tags: |
133
+ type=raw,value=${{ github.event.inputs.version }}
134
+ typw=raw,value=latest,enable=${{ github.event.inputs.latest }}
135
+
136
+ - name: Create manifest list and push
137
+ working-directory: ${{ runner.temp }}/digests
138
+ # NOTE: annotation technique adapted from Ruff's build-docker.yml,
139
+ # see: https://github.com/astral-sh/ruff/blob/6e34f74c16/.github/workflows/build-docker.yml
140
+ run: |
141
+ readarray -t lines <<< "$DOCKER_METADATA_OUTPUT_ANNOTATIONS"
142
+ annotations=()
143
+ for line in "${lines[@]}"; do
144
+ annotations+=(--annotation "$line")
145
+ done
146
+
147
+ docker buildx imagetools create \
148
+ "${annotations[@]}" \
149
+ $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
150
+ $(printf '${{ env.ZIZMOR_IMAGE }}@sha256:%s ' *)
151
+
152
+ - name: Inspect image
153
+ run: |
154
+ docker buildx imagetools inspect "${ZIZMOR_IMAGE}:${VERSION}"
155
+ env:
156
+ VERSION: ${{ steps.docker-metadata.outputs.version }}
@@ -40,14 +40,14 @@ jobs:
40
40
  with:
41
41
  persist-credentials: false
42
42
  - name: Build wheels
43
- uses: PyO3/maturin-action@5f8a1b3b0aad13193f46c9131f9b9e663def8ce5 # v1
43
+ uses: PyO3/maturin-action@53965ae436bfa278197425c78ac1e3eeebc7cc33 # v1
44
44
  with:
45
45
  target: ${{ matrix.platform.target }}
46
46
  args: --release --out dist
47
47
  sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} # zizmor: ignore[cache-poisoning]
48
48
  manylinux: ${{ matrix.platform.manylinux }}
49
49
  - name: Upload wheels
50
- uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4
50
+ uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4
51
51
  with:
52
52
  name: wheels-linux-${{ matrix.platform.target }}
53
53
  path: dist
@@ -70,14 +70,14 @@ jobs:
70
70
  with:
71
71
  persist-credentials: false
72
72
  - name: Build wheels
73
- uses: PyO3/maturin-action@5f8a1b3b0aad13193f46c9131f9b9e663def8ce5 # v1
73
+ uses: PyO3/maturin-action@53965ae436bfa278197425c78ac1e3eeebc7cc33 # v1
74
74
  with:
75
75
  target: ${{ matrix.platform.target }}
76
76
  args: --release --out dist
77
77
  sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} # zizmor: ignore[cache-poisoning]
78
78
  manylinux: musllinux_1_2
79
79
  - name: Upload wheels
80
- uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4
80
+ uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4
81
81
  with:
82
82
  name: wheels-musllinux-${{ matrix.platform.target }}
83
83
  path: dist
@@ -96,13 +96,13 @@ jobs:
96
96
  with:
97
97
  persist-credentials: false
98
98
  - name: Build wheels
99
- uses: PyO3/maturin-action@5f8a1b3b0aad13193f46c9131f9b9e663def8ce5 # v1
99
+ uses: PyO3/maturin-action@53965ae436bfa278197425c78ac1e3eeebc7cc33 # v1
100
100
  with:
101
101
  target: ${{ matrix.platform.target }}
102
102
  args: --release --out dist
103
103
  sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} # zizmor: ignore[cache-poisoning]
104
104
  - name: Upload wheels
105
- uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4
105
+ uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4
106
106
  with:
107
107
  name: wheels-windows-${{ matrix.platform.target }}
108
108
  path: dist
@@ -121,13 +121,13 @@ jobs:
121
121
  with:
122
122
  persist-credentials: false
123
123
  - name: Build wheels
124
- uses: PyO3/maturin-action@5f8a1b3b0aad13193f46c9131f9b9e663def8ce5 # v1
124
+ uses: PyO3/maturin-action@53965ae436bfa278197425c78ac1e3eeebc7cc33 # v1
125
125
  with:
126
126
  target: ${{ matrix.platform.target }}
127
127
  args: --release --out dist
128
128
  sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} # zizmor: ignore[cache-poisoning]
129
129
  - name: Upload wheels
130
- uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4
130
+ uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4
131
131
  with:
132
132
  name: wheels-macos-${{ matrix.platform.target }}
133
133
  path: dist
@@ -139,12 +139,12 @@ jobs:
139
139
  with:
140
140
  persist-credentials: false
141
141
  - name: Build sdist
142
- uses: PyO3/maturin-action@5f8a1b3b0aad13193f46c9131f9b9e663def8ce5 # v1
142
+ uses: PyO3/maturin-action@53965ae436bfa278197425c78ac1e3eeebc7cc33 # v1
143
143
  with:
144
144
  command: sdist
145
145
  args: --out dist
146
146
  - name: Upload sdist
147
- uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4
147
+ uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4
148
148
  with:
149
149
  name: wheels-sdist
150
150
  path: dist
@@ -172,7 +172,7 @@ jobs:
172
172
  subject-path: 'wheels-*/*'
173
173
  - name: Publish to PyPI
174
174
  if: ${{ startsWith(github.ref, 'refs/tags/') }}
175
- uses: PyO3/maturin-action@5f8a1b3b0aad13193f46c9131f9b9e663def8ce5 # v1
175
+ uses: PyO3/maturin-action@53965ae436bfa278197425c78ac1e3eeebc7cc33 # v1
176
176
  with:
177
177
  command: upload
178
178
  args: --non-interactive --skip-existing wheels-*/*
@@ -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@b5f58b2abc5763ade55e4e9d0fe52cd1ff7979ca # v5.2.1
33
+ uses: astral-sh/setup-uv@1edb52594c857e2b5b13128931090f0640537287 # v5.3.0
34
34
 
35
35
  - name: build site
36
36
  run: make site
@@ -21,13 +21,13 @@ jobs:
21
21
  with:
22
22
  persist-credentials: false
23
23
  - name: Install the latest version of uv
24
- uses: astral-sh/setup-uv@b5f58b2abc5763ade55e4e9d0fe52cd1ff7979ca # v5.2.1
24
+ uses: astral-sh/setup-uv@1edb52594c857e2b5b13128931090f0640537287 # v5.3.0
25
25
  - name: Run zizmor 🌈
26
26
  run: uvx zizmor --format sarif . > results.sarif
27
27
  env:
28
28
  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
29
29
  - name: Upload SARIF file
30
- uses: github/codeql-action/upload-sarif@f6091c0113d1dcf9b98e269ee48e8a7e51b7bdd4 # v3.28.5
30
+ uses: github/codeql-action/upload-sarif@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10
31
31
  with:
32
32
  sarif_file: results.sarif
33
33
  category: zizmor
@@ -97,9 +97,9 @@ dependencies = [
97
97
 
98
98
  [[package]]
99
99
  name = "anyhow"
100
- version = "1.0.95"
100
+ version = "1.0.96"
101
101
  source = "registry+https://github.com/rust-lang/crates.io-index"
102
- checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04"
102
+ checksum = "6b964d184e89d9b6b67dd2715bc8e74cf3107fb2b529990c90cf517326150bf4"
103
103
 
104
104
  [[package]]
105
105
  name = "arrayvec"
@@ -125,9 +125,9 @@ dependencies = [
125
125
 
126
126
  [[package]]
127
127
  name = "async-trait"
128
- version = "0.1.83"
128
+ version = "0.1.86"
129
129
  source = "registry+https://github.com/rust-lang/crates.io-index"
130
- checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd"
130
+ checksum = "644dd749086bf3771a2fbc5f256fdb982d53f011c7d5d560304eafeecebce79d"
131
131
  dependencies = [
132
132
  "proc-macro2",
133
133
  "quote",
@@ -273,9 +273,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
273
273
 
274
274
  [[package]]
275
275
  name = "clap"
276
- version = "4.5.27"
276
+ version = "4.5.30"
277
277
  source = "registry+https://github.com/rust-lang/crates.io-index"
278
- checksum = "769b0145982b4b48713e01ec42d61614425f27b7058bda7180a3a41f30104796"
278
+ checksum = "92b7b18d71fad5313a1e320fa9897994228ce274b60faa4d694fe0ea89cd9e6d"
279
279
  dependencies = [
280
280
  "clap_builder",
281
281
  "clap_derive",
@@ -293,9 +293,9 @@ dependencies = [
293
293
 
294
294
  [[package]]
295
295
  name = "clap_builder"
296
- version = "4.5.27"
296
+ version = "4.5.30"
297
297
  source = "registry+https://github.com/rust-lang/crates.io-index"
298
- checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7"
298
+ checksum = "a35db2071778a7344791a4fb4f95308b5673d219dee3ae348b86642574ecc90c"
299
299
  dependencies = [
300
300
  "anstream",
301
301
  "anstyle",
@@ -305,9 +305,9 @@ dependencies = [
305
305
 
306
306
  [[package]]
307
307
  name = "clap_derive"
308
- version = "4.5.24"
308
+ version = "4.5.28"
309
309
  source = "registry+https://github.com/rust-lang/crates.io-index"
310
- checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c"
310
+ checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed"
311
311
  dependencies = [
312
312
  "heck",
313
313
  "proc-macro2",
@@ -475,9 +475,9 @@ dependencies = [
475
475
 
476
476
  [[package]]
477
477
  name = "flate2"
478
- version = "1.0.35"
478
+ version = "1.1.0"
479
479
  source = "registry+https://github.com/rust-lang/crates.io-index"
480
- checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c"
480
+ checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc"
481
481
  dependencies = [
482
482
  "crc32fast",
483
483
  "miniz_oxide",
@@ -616,9 +616,9 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f"
616
616
 
617
617
  [[package]]
618
618
  name = "github-actions-models"
619
- version = "0.23.0"
619
+ version = "0.26.0"
620
620
  source = "registry+https://github.com/rust-lang/crates.io-index"
621
- checksum = "f2269402e4d8fe06d41aa858a0fe15a49842764334d0aacc52f5f41e11466e30"
621
+ checksum = "63a17952a0374993a4c7f8df12bd75b3d1ed8fb9c78e8dbaa32cf451143faaaa"
622
622
  dependencies = [
623
623
  "indexmap",
624
624
  "serde",
@@ -660,9 +660,9 @@ dependencies = [
660
660
 
661
661
  [[package]]
662
662
  name = "http"
663
- version = "1.1.0"
663
+ version = "1.2.0"
664
664
  source = "registry+https://github.com/rust-lang/crates.io-index"
665
- checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
665
+ checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea"
666
666
  dependencies = [
667
667
  "bytes",
668
668
  "fnv",
@@ -694,9 +694,9 @@ dependencies = [
694
694
 
695
695
  [[package]]
696
696
  name = "http-cache"
697
- version = "0.20.0"
697
+ version = "0.20.1"
698
698
  source = "registry+https://github.com/rust-lang/crates.io-index"
699
- checksum = "33b65cd1687caf2c7fff496741a2f264c26f54e6d6cec03dac8f276fa4e5430e"
699
+ checksum = "7e883defacf53960c7717d9e928dc8667be9501d9f54e6a8b7703d7a30320e9c"
700
700
  dependencies = [
701
701
  "async-trait",
702
702
  "bincode",
@@ -710,9 +710,9 @@ dependencies = [
710
710
 
711
711
  [[package]]
712
712
  name = "http-cache-reqwest"
713
- version = "0.15.0"
713
+ version = "0.15.1"
714
714
  source = "registry+https://github.com/rust-lang/crates.io-index"
715
- checksum = "735586904a5ce0c13877c57cb4eb8195eb7c11ec1ffd64d4db053fb8559ca62e"
715
+ checksum = "e076afd9d376f09073b515ce95071b29393687d98ed521948edb899195595ddf"
716
716
  dependencies = [
717
717
  "anyhow",
718
718
  "async-trait",
@@ -1168,9 +1168,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
1168
1168
 
1169
1169
  [[package]]
1170
1170
  name = "miniz_oxide"
1171
- version = "0.8.0"
1171
+ version = "0.8.5"
1172
1172
  source = "registry+https://github.com/rust-lang/crates.io-index"
1173
- checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
1173
+ checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5"
1174
1174
  dependencies = [
1175
1175
  "adler2",
1176
1176
  ]
@@ -1259,9 +1259,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
1259
1259
 
1260
1260
  [[package]]
1261
1261
  name = "owo-colors"
1262
- version = "4.1.0"
1262
+ version = "4.2.0"
1263
1263
  source = "registry+https://github.com/rust-lang/crates.io-index"
1264
- checksum = "fb37767f6569cd834a413442455e0f066d0d522de8630436e2a1761d9726ba56"
1264
+ checksum = "1036865bb9422d3300cf723f657c2851d0e9ab12567854b1f4eba3d77decf564"
1265
1265
 
1266
1266
  [[package]]
1267
1267
  name = "percent-encoding"
@@ -1620,9 +1620,9 @@ dependencies = [
1620
1620
 
1621
1621
  [[package]]
1622
1622
  name = "reqwest-middleware"
1623
- version = "0.4.0"
1623
+ version = "0.4.1"
1624
1624
  source = "registry+https://github.com/rust-lang/crates.io-index"
1625
- checksum = "d1ccd3b55e711f91a9885a2fa6fbbb2e39db1776420b062efc058c6410f7e5e3"
1625
+ checksum = "64e8975513bd9a7a43aad01030e79b3498e05db14e9d945df6483e8cf9b8c4c4"
1626
1626
  dependencies = [
1627
1627
  "anyhow",
1628
1628
  "async-trait",
@@ -1763,9 +1763,9 @@ dependencies = [
1763
1763
 
1764
1764
  [[package]]
1765
1765
  name = "serde"
1766
- version = "1.0.217"
1766
+ version = "1.0.218"
1767
1767
  source = "registry+https://github.com/rust-lang/crates.io-index"
1768
- checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70"
1768
+ checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60"
1769
1769
  dependencies = [
1770
1770
  "serde_derive",
1771
1771
  ]
@@ -1792,9 +1792,9 @@ dependencies = [
1792
1792
 
1793
1793
  [[package]]
1794
1794
  name = "serde_derive"
1795
- version = "1.0.217"
1795
+ version = "1.0.218"
1796
1796
  source = "registry+https://github.com/rust-lang/crates.io-index"
1797
- checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0"
1797
+ checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b"
1798
1798
  dependencies = [
1799
1799
  "proc-macro2",
1800
1800
  "quote",
@@ -1803,9 +1803,9 @@ dependencies = [
1803
1803
 
1804
1804
  [[package]]
1805
1805
  name = "serde_json"
1806
- version = "1.0.137"
1806
+ version = "1.0.139"
1807
1807
  source = "registry+https://github.com/rust-lang/crates.io-index"
1808
- checksum = "930cfb6e6abf99298aaad7d29abbef7a9999a9a8806a40088f55f0dcec03146b"
1808
+ checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6"
1809
1809
  dependencies = [
1810
1810
  "itoa",
1811
1811
  "memchr",
@@ -2086,9 +2086,9 @@ dependencies = [
2086
2086
 
2087
2087
  [[package]]
2088
2088
  name = "tar"
2089
- version = "0.4.43"
2089
+ version = "0.4.44"
2090
2090
  source = "registry+https://github.com/rust-lang/crates.io-index"
2091
- checksum = "c65998313f8e17d0d553d28f91a0df93e4dbbbf770279c7bc21ca0f09ea1a1f6"
2091
+ checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a"
2092
2092
  dependencies = [
2093
2093
  "filetime",
2094
2094
  "libc",
@@ -3151,7 +3151,7 @@ dependencies = [
3151
3151
 
3152
3152
  [[package]]
3153
3153
  name = "zizmor"
3154
- version = "1.3.0"
3154
+ version = "1.4.0"
3155
3155
  dependencies = [
3156
3156
  "annotate-snippets",
3157
3157
  "anstream",
@@ -1,7 +1,7 @@
1
1
  [package]
2
2
  name = "zizmor"
3
3
  description = "Static analysis for GitHub Actions"
4
- version = "1.3.0"
4
+ version = "1.4.0"
5
5
  edition = "2021"
6
6
  repository = "https://github.com/woodruffw/zizmor"
7
7
  homepage = "https://github.com/woodruffw/zizmor"
@@ -12,25 +12,31 @@ keywords = ["cli", "github-actions", "static-analysis", "security"]
12
12
  categories = ["command-line-utilities"]
13
13
  rust-version = "1.80.1"
14
14
 
15
+ [features]
16
+ # Test-only: enable online audits that make use of a GitHub token via GH_TOKEN.
17
+ gh-token-tests = []
18
+ # Test-only: enable all online audits.
19
+ online-tests = ["gh-token-tests"]
20
+
15
21
  [dependencies]
16
22
  annotate-snippets = "0.11.5"
17
23
  anstream = "0.6.18"
18
- anyhow = "1.0.95"
24
+ anyhow = "1.0.96"
19
25
  camino = { version = "1.1.9", features = ["serde1"] }
20
- clap = { version = "4.5.27", features = ["derive", "env"] }
26
+ clap = { version = "4.5.30", features = ["derive", "env"] }
21
27
  clap-verbosity-flag = { version = "3.0.2", features = [
22
28
  "tracing",
23
29
  ], default-features = false }
24
30
  etcetera = "0.8.0"
25
- flate2 = "1.0.35"
26
- github-actions-models = "0.23.0"
27
- http-cache-reqwest = "0.15.0"
31
+ flate2 = "1.1.0"
32
+ github-actions-models = "0.26.0"
33
+ http-cache-reqwest = "0.15.1"
28
34
  human-panic = "2.0.1"
29
35
  indexmap = "2.7.1"
30
36
  indicatif = "0.17.11"
31
37
  itertools = "0.14.0"
32
38
  line-index = "0.1.2"
33
- owo-colors = "4.1.0"
39
+ owo-colors = "4.2.0"
34
40
  pest = "2.7.15"
35
41
  pest_derive = "2.7.15"
36
42
  regex = "1.11.1"
@@ -39,14 +45,14 @@ reqwest = { version = "0.12.12", features = [
39
45
  "json",
40
46
  "rustls-tls",
41
47
  ], default-features = false }
42
- reqwest-middleware = "0.4.0"
43
- serde = { version = "1.0.217", features = ["derive"] }
48
+ reqwest-middleware = "0.4.1"
49
+ serde = { version = "1.0.218", features = ["derive"] }
44
50
  serde-sarif = "0.7.0"
45
- serde_json = "1.0.137"
51
+ serde_json = "1.0.139"
46
52
  serde_yaml = "0.9.34"
47
53
  # TODO remove pending https://github.com/tree-sitter/tree-sitter/pull/4034
48
54
  streaming-iterator = "0.1.9"
49
- tar = "0.4.43"
55
+ tar = "0.4.44"
50
56
  terminal-link = "0.1.0"
51
57
  tokio = { version = "1.43.0", features = ["rt-multi-thread"] }
52
58
  tracing = "0.1.41"
@@ -0,0 +1,30 @@
1
+ FROM python:3.13-slim-bullseye AS build
2
+
3
+ LABEL org.opencontainers.image.source=https://github.com/woodruffw/zizmor
4
+
5
+ # Zizmor version to install (set as an argument to pair with zizmor releases)
6
+ ARG ZIZMOR_VERSION
7
+
8
+ ENV PYTHONUNBUFFERED=1 \
9
+ PIP_NO_CACHE_DIR=1 \
10
+ PIP_DISABLE_PIP_VERSION_CHECK=1
11
+
12
+ RUN set -eux && \
13
+ apt-get update && \
14
+ apt-get clean && \
15
+ rm -rf /var/lib/apt/lists/*
16
+
17
+ RUN pip install zizmor && \
18
+ which zizmor
19
+
20
+ # ------------------------------------------------------------------------------
21
+ # Runtime image
22
+ # ------------------------------------------------------------------------------
23
+
24
+ FROM debian:bullseye-slim
25
+
26
+ # Copy necessary files from build stage
27
+ COPY --from=build /usr/local/bin/zizmor /app/zizmor
28
+
29
+ # Set the entrypoint to zizmor
30
+ ENTRYPOINT ["/app/zizmor"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zizmor
3
- Version: 1.3.0
3
+ Version: 1.4.0
4
4
  License-File: LICENSE
5
5
  Summary: Static analysis for GitHub Actions
6
6
  Keywords: cli,github-actions,static-analysis,security
@@ -19,8 +19,18 @@ Project-URL: Source Code, https://github.com/woodruffw/zizmor
19
19
  [![Packaging status](https://repology.org/badge/tiny-repos/zizmor.svg)](https://repology.org/project/zizmor/versions)
20
20
  [![GitHub Sponsors](https://img.shields.io/github/sponsors/woodruffw?style=flat&logo=githubsponsors&labelColor=white&color=white)](https://github.com/sponsors/woodruffw)
21
21
 
22
- `zizmor` is a static analysis tool for GitHub Actions. It can find
23
- many common security issues in typical GitHub Actions CI/CD setups.
22
+ `zizmor` is a static analysis tool for GitHub Actions.
23
+
24
+ It can find many common security issues in typical GitHub Actions CI/CD setups,
25
+ including:
26
+
27
+ * Template injection vulnerabilities, leading to attacker-controlled code execution
28
+ * Accidental credential persistence and leakage
29
+ * Excessive permission scopes and credential grants to runners
30
+ * Impostor commits and confusable `git` references
31
+ * ...[and much more]!
32
+
33
+ [and much more]: https://woodruffw.github.io/zizmor/audits/
24
34
 
25
35
  ![zizmor demo](https://raw.githubusercontent.com/woodruffw/zizmor/main/docs/assets/zizmor-demo.gif)
26
36
 
@@ -5,8 +5,18 @@
5
5
  [![Packaging status](https://repology.org/badge/tiny-repos/zizmor.svg)](https://repology.org/project/zizmor/versions)
6
6
  [![GitHub Sponsors](https://img.shields.io/github/sponsors/woodruffw?style=flat&logo=githubsponsors&labelColor=white&color=white)](https://github.com/sponsors/woodruffw)
7
7
 
8
- `zizmor` is a static analysis tool for GitHub Actions. It can find
9
- many common security issues in typical GitHub Actions CI/CD setups.
8
+ `zizmor` is a static analysis tool for GitHub Actions.
9
+
10
+ It can find many common security issues in typical GitHub Actions CI/CD setups,
11
+ including:
12
+
13
+ * Template injection vulnerabilities, leading to attacker-controlled code execution
14
+ * Accidental credential persistence and leakage
15
+ * Excessive permission scopes and credential grants to runners
16
+ * Impostor commits and confusable `git` references
17
+ * ...[and much more]!
18
+
19
+ [and much more]: https://woodruffw.github.io/zizmor/audits/
10
20
 
11
21
  ![zizmor demo](https://raw.githubusercontent.com/woodruffw/zizmor/main/docs/assets/zizmor-demo.gif)
12
22