使用 Codex GitHub Action
教程版本基线Codex CLI v0.147.0Codex GitHub Action 会安装 Codex CLI,并按工作流指定的权限运行 codex exec。第一版应只读审查,不自动改 PR。
- 仓库已启用 GitHub Actions。
- OpenAI API Key 已保存为 GitHub Actions Secret,例如
OPENAI_API_KEY。 - 团队已确认 API 成本、允许读取的代码范围和报告保留策略。
第 1 步:提交固定审查提示词
Section titled “第 1 步:提交固定审查提示词”创建 .github/codex/prompts/review.md 前,先让 Codex根据项目规则拟稿。提示词应固定基线、关注点、输出格式,并明确只读。
审查当前 Pull Request 相对基线分支的 diff。只报告可证明的正确性、安全性、兼容性和测试缺口。不要修改文件。每个发现给出严重程度、文件位置、触发条件和影响。把提示词提交到仓库,方便审查其变化。
第 2 步:创建最小工作流
Section titled “第 2 步:创建最小工作流”name: Codex pull request review
on: pull_request: types: [opened, synchronize, reopened]
jobs: review: runs-on: ubuntu-latest permissions: contents: read steps: - uses: actions/checkout@v5 with: ref: refs/pull/${{ github.event.pull_request.number }}/merge fetch-depth: 0 persist-credentials: false
- name: Run Codex id: codex uses: openai/codex-action@v1 with: openai-api-key: ${{ secrets.OPENAI_API_KEY }} prompt-file: .github/codex/prompts/review.md output-file: codex-output.md此任务只有 contents: read,不能写仓库或 PR。需要发评论时,建议拆成第二个任务,只给它 pull-requests: write,并传递已经脱敏的最终文本。
第 3 步:处理 Fork PR
Section titled “第 3 步:处理 Fork PR”来自 Fork 的 PR 默认拿不到常规 Secret,这是安全边界,不要改用高权限事件绕过。对不受信任代码使用人工批准、无 Secret 的检查,或在合并后分支运行受控审查。
第 4 步:检查输出
Section titled “第 4 步:检查输出”首次启用时确认:Action 版本、Checkout 的 ref、实际 diff、API 调用失败处理、报告大小和 Markdown 转义。不要让模型输出直接成为可执行脚本。
常见失败分支
Section titled “常见失败分支”- 401:检查 Secret 名称与 API Key 状态,不打印 Key。
- 审查范围不完整:
fetch-depth应允许找到基线历史。 - Action 能写仓库:收紧
permissions并关闭持久化凭据。 - Fork PR 没有 Secret:这是预期保护,不要用
pull_request_target直接执行不受信任代码。 - 评论重复:用固定标记更新旧评论,或首版只上传报告。
- Workflow 使用固定主版本
openai/codex-action@v1。 - Checkout 不持久化凭据,审查任务只有只读权限。
- API Key 只存在于 GitHub Secret。
- Fork PR 安全边界有明确处理方式。
- 首版只生成审查结果,不自动改代码或合并。
官方参考:https://developers.openai.com/codex/github-action
下一篇看:用 Codex 做 PR 与代码审查。