官方 action:prompt-file 二选一,最后一步再跑 Codex

openai/codex-action@v1 用密钥代理跑 exec。prompt 和 prompt-file 只能给一个。checkout 关掉 persist-credentials,Windows 必须 safety-strategy: unsafe。

提示放仓库里,不要把 PR 正文直接喂给模型:

- uses: actions/checkout@v5
  with:
    persist-credentials: false

- id: run_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
    sandbox: workspace-write
    codex-args: '["--ephemeral"]'

promptprompt-file 同时写会直接失败。后续步骤用 final-message 输出,或把 output-file 当产物上传。结构化结果把 --output-schema 放进 codex-args

权限:

  • 默认 safety-strategy: drop-sudo,Linux/macOS 上不可逆地拿掉 sudo
  • Windows runner 必须 safety-strategy: unsafe
  • 不要只靠 read-only 保护密钥:只读仍可能带着高权限跑
  • 多租户 runner 不要 unsafe
  • allow-users / allow-bots 限制谁能触发;默认只有有 write 权限的人
  • 把 Codex 放在 job 最后一步,避免后面的步骤继承被改过的工作区

fork PR 和 issue 正文当提示前先消毒。密钥仍走官方 action 的代理,不要写进 job 级 CODEX_API_KEY

来源