用途:本技能用于按流程修复 GitHub Actions 工作流中的 zizmor 安全告警,加固 CI 流水线,并将 actions 固定到 SHA 哈希。核心原则是能修则修,仅在修复会破坏必要功能时才用带原因的行内注释抑制。
主要能力与工作顺序:按以下顺序逐步提交——添加 zizmor CI 作业(使用标准模板)、配置 dependabot 每周批量更新 github-actions、在 bin/setup 与 bin/ci 中添加本地工作流 lint(脚本不存在则跳过)、运行 pinact run 固定 actions、按严重级别(high→medium→low→informational)处理告警、确保权限为作业级、运行 actionlint 并修复。
使用方式:从仓库根目录运行 pinact run --min-age 7(该值须与 dependabot.yml 的 default-days 一致)。用 GITHUB_TOKEN=$(gh auth token) zizmor . 运行,否则线上审计会被静默跳过;用 --min-severity=<level> 过滤。自动修复用 zizmor --fix=all --min-severity=<level> .,随后必须审查 diff:cache-poisoning、superfluous-actions、bot-conditions 的自动修复通常应回退并抑制,artipacked 在需要 git push 时回退,template-injection 一般正确。最后用 zizmor --persona=pedantic --min-severity=high . 做严格检查。抑制格式:# zizmor: ignore[rule-name] -- reason。固定过的 uses 行中,抑制注释放在 SHA 与 # vX.Y.Z 之间,版本注释须在最后,且不要再重跑 pinact。
规则决策要点:artipacked 修复(加 persist-credentials: false),仅当作业需 git push 时抑制;template-injection 始终修复;excessive-permissions 始终修复,须逐个 research 权限,不可猜测;bot-conditions 用 actor+user.login 双重检查;superfluous-actions 始终抑制,不要替换为内联代码;cache-poisoning、unpinned-images 默认抑制;dependabot-cooldown 始终修复。
限制:须在 git worktree 的分支上进行,先确认目录与分支;未覆盖的发现应查阅 https://docs.zizmor.sh/audits/。具体收费、价格、平台等信息暂未提供。