Repository navigation
Add zizmor workflow and harden GitHub Actions - #117
Denis-Averin wants to merge 3 commits into
Conversation
Part of the zizmor rollout across all Aspose.BarCode Cloud repositories (plan: aspose-barcode-cloud-codegen, doc/zizmor-rollout-plan.md). - New zizmor.yml workflow, shared zizmor config and Dependabot config (github-actions ecosystem), copied from the codegen templates. - Explicit `permissions:` on every workflow and `persist-credentials: false` on every checkout. - Job names and a concurrency group on CI workflows. - Third-party actions pinned to a commit SHA with a version comment. - Publish workflow: OIDC permission only at the job level, no reads from the Actions cache. - python-latest.yml passes the step output through the environment instead of expanding it inside the script. - README: zizmor badge.
|
CI status note: the failing test jobs are not this PR's. What fails: Why it is not this PR's: Fix: refresh the organization secret (release workflow step 3), then re-run the failed jobs. Nothing to change in this PR. Green on this head: |
b1402c4 to
2da1e7e
Compare
The zizmor rollout goes without Dependabot for the time being; the action pins are bumped by hand.
Summary
Part of the zizmor rollout across all Aspose.BarCode Cloud repositories (Phase 2 of doc/zizmor-rollout-plan.md in the codegen repository).
zizmor.ymlworkflow: runs zizmor (static analysis for GitHub Actions) on push, pull_request and weekly. The job fails on any finding..github/zizmor.ymlconfig, copied from the codegen templates (codegen/github/).python-package.yml,python-latest.yml,twine-check.yml,check-badges.yml: explicitpermissions: contents: read,persist-credentials: falseon every checkout, job names, concurrency group.publish-pypi.yml:permissions: {}at the workflow level; the job keepsid-token: write(OIDC) pluscontents: read;cache: pipremoved so the release never reads the Actions cache (cache poisoning guard).python-latest.yml: the "Keep only major.minor" step reads the previous step's output from$VERSIONS(set viaenv:) instead of expanding${{ steps.… }}inside the script.pypa/gh-action-pypi-publishpinned to the commit of v1.14.3 (was the movingrelease/v1branch) andsnok/latest-python-versionsto v1.1.2.No Dependabot config: the rollout goes without it for now; pins are bumped by hand.
Verification
zizmor .reports no findings under the regular persona with zizmor 1.30.1 and 1.32.0. The pedantic persona keeps one low-severity note thatpublish-pypi.ymlhas no concurrency group; intentional for a tag-triggered release workflow.persist-credentials: falseis the one behavioural change: no step in these workflows uses the job token for git operations. The existing CI jobs on this PR are the regression test.