全部文章
发布与验证

让 AI 审 GitHub Actions 权限:检查和发包分开

检查代码的工作流与发布工作流分开授权。

资料核验2026.11.12 · GitHub Actions · PR 与部署工作流

测试只需要读取仓库,发布任务却可能需要写包。把两个任务都放在同一套写权限里,久了没人知道哪些动作真的有理由写入。GitHub Actions 支持在工作流或任务层设置 permissions。

给 AI 的上下文与边界

给助手一份现有工作流,让它按任务列出读取仓库、上传产物、发布包分别需要的权限。先核对工作流级与任务级配置,再提交最小改动并说明触发事件。

流程示意:普通检查读仓库;产出验证结果;发布任务单独授权

给每个任务列出所需的动作

普通检查先从读取内容开始。发布任务按实际资源补权限,并把额外能力放在对应 job 上。若显式指定部分权限,其余未指定项会变成 none,改完要检查原本依赖的读取动作是否仍能执行。

把权限变化当成工作流行为来验收。在临时分支跑普通 PR 检查,再看发布任务的触发条件和身份来源。

未来增加第三方步骤时,也用同一个问题审查:这个任务需要读取什么,能写到哪里?

可以直接照着做的演练

列两条任务记录,普通 PR 的职责是检出、构建与测试,发布的职责是写包。让助手为每个权限对应一个动作。修改后分别核对普通 PR 结果和发布任务触发条件,避免把更高权限当成读取失败的修复。

检查生成结果

  • 普通 PR 仍能检出和跑测试。
  • 发布任务只在约定条件触发。
  • 显式权限设置后没有遗漏某个必要的读取权限。

复查时追问一层

新增第三方步骤时先确认其运行权限和来源。检查结果可以从低权限任务流向发布任务,但后者应核对本次产物的来源和身份。这里的目标是把发布权限限制在真正负责发布的任务内。

检查提交来源不同的运行是否拥有预期权限。测试阶段只核对读权限和必需操作,不用真实发布令牌做演练。更新第三方步骤版本时,让助手列出它可访问的数据和输出,权限给得太宽会扩大一次依赖变更的影响。

资料来源