This action runs inside other people's CI with their secrets, so it is treated as supply-chain code.
Please report privately via Security → Report a vulnerability on this repository (GitHub private vulnerability reporting). Do not open a public issue or PR for anything exploitable.
Only the latest release, which the floating v1 tag always points to, gets
fixes. Pin to a full commit SHA if you need a frozen version, and let
Dependabot move it.
- The Swift toolchain is installed only if its detached signature verifies
against a release key vendored in
keys/and pinned by fingerprint. Keys are never fetched from the server that serves the tarball. - Every third-party action, here and in the workflows, is pinned to a full commit SHA. Dependabot proposes updates after a 7-day cooldown.
- Inputs never get interpolated into shell scripts; they reach scripts as
environment variables, and
swift-versionmust look like a release number. - Workflows run with least-privilege
GITHUB_TOKENpermissions, and only the steps that push hold credentials. zizmor audits every PR.
- A toolchain restored from the
actions/cachetoolchain cache is not re-verified. Cache entries are scoped to the consuming repository, and only workflow runs in that repository can write them. - SwiftPM resolves your package's dependencies from
Package.resolvedas written; this action does not audit them.