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.
- {zizmor-1.3.0 → zizmor-1.4.0}/.github/dependabot.yml +9 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/.github/workflows/ci.yml +5 -3
- zizmor-1.4.0/.github/workflows/docker.yml +156 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/.github/workflows/pypi.yml +11 -11
- {zizmor-1.3.0 → zizmor-1.4.0}/.github/workflows/site.yml +1 -1
- {zizmor-1.3.0 → zizmor-1.4.0}/.github/workflows/zizmor.yml +2 -2
- {zizmor-1.3.0 → zizmor-1.4.0}/Cargo.lock +35 -35
- {zizmor-1.3.0 → zizmor-1.4.0}/Cargo.toml +17 -11
- zizmor-1.4.0/Dockerfile +30 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/PKG-INFO +13 -3
- {zizmor-1.3.0 → zizmor-1.4.0}/README.md +12 -2
- {zizmor-1.3.0 → zizmor-1.4.0}/docs/audits.md +70 -1
- {zizmor-1.3.0 → zizmor-1.4.0}/docs/development.md +22 -7
- {zizmor-1.3.0 → zizmor-1.4.0}/docs/installation.md +8 -1
- {zizmor-1.3.0 → zizmor-1.4.0}/docs/release-notes.md +57 -1
- {zizmor-1.3.0 → zizmor-1.4.0}/docs/snippets/trophies.md +137 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/docs/snippets/trophies.txt +25 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/docs/usage.md +7 -1
- {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/artipacked.rs +2 -2
- {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/bot_conditions.rs +12 -2
- {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/insecure_commands.rs +1 -1
- {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/mod.rs +2 -1
- {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/overprovisioned_secrets.rs +1 -1
- zizmor-1.4.0/src/audit/unredacted_secrets.rs +121 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/expr/expr.pest +1 -1
- {zizmor-1.3.0 → zizmor-1.4.0}/src/expr/mod.rs +4 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/finding/mod.rs +21 -1
- {zizmor-1.3.0 → zizmor-1.4.0}/src/github_api.rs +3 -3
- {zizmor-1.3.0 → zizmor-1.4.0}/src/main.rs +11 -2
- {zizmor-1.3.0 → zizmor-1.4.0}/src/sarif.rs +25 -6
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshot.rs +31 -25
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__bot_conditions.snap +4 -4
- zizmor-1.4.0/tests/snapshots/snapshot__ref_confusion-2.snap +5 -0
- zizmor-1.4.0/tests/snapshots/snapshot__ref_confusion.snap +13 -0
- zizmor-1.4.0/tests/snapshots/snapshot__unredacted_secrets.snap +22 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/artipacked/issue-447-repro.yml +1 -1
- zizmor-1.4.0/tests/test-data/ref-confusion/issue-518-repro.yml +12 -0
- zizmor-1.4.0/tests/test-data/ref-confusion.yml +11 -0
- zizmor-1.4.0/tests/test-data/unredacted-secrets.yml +18 -0
- zizmor-1.3.0/tests/snapshots/snapshot__conflicting_online_options-2.snap +0 -10
- zizmor-1.3.0/tests/snapshots/snapshot__conflicting_online_options-3.snap +0 -10
- zizmor-1.3.0/tests/snapshots/snapshot__conflicting_online_options.snap +0 -10
- {zizmor-1.3.0 → zizmor-1.4.0}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/.github/workflows/release.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/.gitignore +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/CONTRIBUTING.md +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/LICENSE +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/Makefile +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/docs/assets/favicon48x48.png +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/docs/assets/rainbow.svg +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/docs/assets/zizmor-demo.gif +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/docs/configuration.md +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/docs/index.md +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/docs/magiclink.css +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/docs/quickstart.md +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/docs/snippets/help.txt +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/docs/snippets/render-sponsors.py +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/docs/snippets/render-trophies.py +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/docs/snippets/sponsors.html +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/docs/snippets/sponsors.json +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/docs/trophy-case.md +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/mkdocs.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/pyproject.toml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/cache_poisoning.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/dangerous_triggers.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/excessive_permissions.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/github_env.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/hardcoded_container_credentials.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/impostor_commit.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/known_vulnerable_actions.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/ref_confusion.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/secrets_inherit.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/self_hosted_runner.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/template_injection.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/unpinned_uses.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/audit/use_trusted_publishing.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/config.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/models/coordinate.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/models/uses.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/models.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/registry.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/render.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/state.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/src/utils.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/acceptance.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/common.rs +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__artipacked-2.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__artipacked-3.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__artipacked-4.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__artipacked.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-10.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-11.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-12.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-13.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-14.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-2.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-3.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-4.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-5.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-6.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-7.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-8.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning-9.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cache_poisoning.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__cant_retrieve.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-10.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-11.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-12.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-2.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-3.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-4.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-5.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-6.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-7.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-8.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions-9.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__excessive_permissions.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__github_env-2.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__github_env-3.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__github_env.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__insecure_commands-2.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__insecure_commands-3.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__insecure_commands.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__invalid_inputs.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__overprovisioned_secrets.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__secrets_inherit.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__self_hosted-2.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__self_hosted-3.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__self_hosted-4.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__self_hosted-5.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__self_hosted-6.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__self_hosted-7.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__self_hosted-8.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__self_hosted.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__template_injection-2.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__template_injection-3.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__template_injection-4.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__template_injection-5.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__template_injection-6.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__template_injection-7.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__template_injection-8.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__template_injection.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__unpinned_uses-2.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__unpinned_uses-3.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__unpinned_uses-4.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/snapshots/snapshot__unpinned_uses.snap +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/artipacked.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/bot-conditions.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/caching-disabled-by-default.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/caching-enabled-by-default.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/caching-not-configurable.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/caching-opt-in-boolean-toggle.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/caching-opt-in-boolish-toggle.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/caching-opt-in-expression.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/caching-opt-in-multi-value-toggle.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/caching-opt-out.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/issue-343-repro.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/issue-378-repro.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/no-cache-aware-steps.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/publisher-step.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/workflow-release-branch-trigger.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning/workflow-tag-trigger.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/cache-poisoning.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/issue-336-repro.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/issue-472-repro.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/jobs-broaden-permissions.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/reusable-workflow-call.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/reusable-workflow-other-triggers.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/workflow-default-perms-all-jobs-explicit.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/workflow-default-perms.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/workflow-empty-perms.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/workflow-read-all.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/workflow-write-all.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions/workflow-write-explicit.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/excessive-permissions.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/github-env/action.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/github-env/github-path.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/github-env/issue-397-repro.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/github_env.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/hardcoded-credentials.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/inlined-ignores.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/insecure-commands/action.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/insecure-commands.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/invalid/invalid-workflow.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/overprovisioned-secrets.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/secrets-inherit.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/self-hosted/issue-283-repro.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/self-hosted/self-hosted-matrix-dimension.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/self-hosted/self-hosted-matrix-exclusion.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/self-hosted/self-hosted-matrix-inclusion.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/self-hosted/self-hosted-runner-group.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/self-hosted/self-hosted-runner-label.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/self-hosted.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/template-injection/issue-22-repro.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/template-injection/issue-339-repro.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/template-injection/issue-418-repro.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/template-injection/pr-317-repro.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/template-injection/pr-425-backstop/action.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/template-injection/static-env.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/template-injection/template-injection-dynamic-matrix.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/template-injection/template-injection-static-matrix.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/template-injection.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/unpinned-uses/action.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/unpinned-uses/issue-433-repro.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/unpinned-uses.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/tests/test-data/use-trusted-publishing.yml +0 -0
- {zizmor-1.3.0 → zizmor-1.4.0}/uv.lock +0 -0
|
@@ -33,10 +33,12 @@ jobs:
|
|
|
33
33
|
|
|
34
34
|
- uses: Swatinem/rust-cache@f0deed1e0edfc6a9be95417288c0e1099b1eeec3 # v2
|
|
35
35
|
|
|
36
|
-
- uses: astral-sh/setup-uv@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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.
|
|
100
|
+
version = "1.0.96"
|
|
101
101
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
102
|
-
checksum = "
|
|
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.
|
|
128
|
+
version = "0.1.86"
|
|
129
129
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
130
|
-
checksum = "
|
|
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.
|
|
276
|
+
version = "4.5.30"
|
|
277
277
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
278
|
-
checksum = "
|
|
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.
|
|
296
|
+
version = "4.5.30"
|
|
297
297
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
298
|
-
checksum = "
|
|
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.
|
|
308
|
+
version = "4.5.28"
|
|
309
309
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
310
|
-
checksum = "
|
|
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
|
|
478
|
+
version = "1.1.0"
|
|
479
479
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
480
|
-
checksum = "
|
|
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.
|
|
619
|
+
version = "0.26.0"
|
|
620
620
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
621
|
-
checksum = "
|
|
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.
|
|
663
|
+
version = "1.2.0"
|
|
664
664
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
665
|
-
checksum = "
|
|
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.
|
|
697
|
+
version = "0.20.1"
|
|
698
698
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
699
|
-
checksum = "
|
|
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.
|
|
713
|
+
version = "0.15.1"
|
|
714
714
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
715
|
-
checksum = "
|
|
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.
|
|
1171
|
+
version = "0.8.5"
|
|
1172
1172
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1173
|
-
checksum = "
|
|
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.
|
|
1262
|
+
version = "4.2.0"
|
|
1263
1263
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1264
|
-
checksum = "
|
|
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.
|
|
1623
|
+
version = "0.4.1"
|
|
1624
1624
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1625
|
-
checksum = "
|
|
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.
|
|
1766
|
+
version = "1.0.218"
|
|
1767
1767
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1768
|
-
checksum = "
|
|
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.
|
|
1795
|
+
version = "1.0.218"
|
|
1796
1796
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1797
|
-
checksum = "
|
|
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.
|
|
1806
|
+
version = "1.0.139"
|
|
1807
1807
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1808
|
-
checksum = "
|
|
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.
|
|
2089
|
+
version = "0.4.44"
|
|
2090
2090
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2091
|
-
checksum = "
|
|
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.
|
|
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.
|
|
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.
|
|
24
|
+
anyhow = "1.0.96"
|
|
19
25
|
camino = { version = "1.1.9", features = ["serde1"] }
|
|
20
|
-
clap = { version = "4.5.
|
|
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
|
|
26
|
-
github-actions-models = "0.
|
|
27
|
-
http-cache-reqwest = "0.15.
|
|
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.
|
|
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.
|
|
43
|
-
serde = { version = "1.0.
|
|
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.
|
|
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.
|
|
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"
|
zizmor-1.4.0/Dockerfile
ADDED
|
@@ -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
|
+
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
|
[](https://repology.org/project/zizmor/versions)
|
|
20
20
|
[](https://github.com/sponsors/woodruffw)
|
|
21
21
|
|
|
22
|
-
`zizmor` is a static analysis tool for GitHub Actions.
|
|
23
|
-
|
|
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
|

|
|
26
36
|
|
|
@@ -5,8 +5,18 @@
|
|
|
5
5
|
[](https://repology.org/project/zizmor/versions)
|
|
6
6
|
[](https://github.com/sponsors/woodruffw)
|
|
7
7
|
|
|
8
|
-
`zizmor` is a static analysis tool for GitHub Actions.
|
|
9
|
-
|
|
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
|

|
|
12
22
|
|