返回实战项目
可复现实验CI 自动化高级

在 openai/codex Fork 中搭建只读补丁工作流

用官方 Codex GitHub Action 在手动触发的只读 job 中生成 patch artifact,并把写权限留给不持有 API key 的后续 job。

公开仓库:openai/codex核验于 2026/07/16

任务说明

在个人 fork 的练习分支增加 workflow_dispatch 工作流:Codex job 只有 contents:read,运行 openai/codex-action 后把二进制 diff 上传为 artifact,不自动提交或推送。

开始前准备

    给 Codex 的执行步骤

    1. 1Fork 仓库并检出 rust-v0.144.5 对应练习分支;不要向上游仓库推送。
    2. 2创建 .github/workflows/codex-patch-exercise.yml,只允许 workflow_dispatch,并关闭 checkout 凭据持久化。
    3. 3把 OPENAI_API_KEY 配成 fork 的 Actions secret,只通过 openai/codex-action 输入传递,不设为 job 级 env。
    4. 4提示 Codex只修改 exercise/fixture/ 范围并运行一个轻量验证,然后用 git diff --binary HEAD 生成 codex.patch。
    5. 5上传 patch artifact;下载后在本地隔离分支执行 git apply --check、review 和测试,不自动开 PR。

    预期代码变更

    • ·.github/workflows/codex-patch-exercise.yml:手动触发、只读权限、Codex Action 与 patch artifact 步骤。
    • ·exercise/fixture/README.md:限定练习目录、验收标准和不得触碰的路径。
    • ·AGENTS.md:仅在确有需要时增加 exercise/fixture 的 review 指导,不改上游已有规则含义。

    测试命令

    actionlint .github/workflows/codex-patch-exercise.yml && git diff --check && git apply --check codex.patch && gh workflow view codex-patch-exercise.yml

    结果边界

    这是可复现实验,不声称 GitHub workflow 已由 codex.study 触发或通过。;实际运行需要学习者自己的 fork、GitHub Actions 权限和有效 OpenAI API key;不得共享或提交密钥。;artifact 中的 patch 不是可信发布物,必须本地 review、apply --check 和运行相关测试。;模板默认手动触发且不推送,扩展为自动 PR 前需重新完成威胁建模。

    复盘问题

    • ·Codex job 是否拥有任何不必要的写权限?
    • ·API key 是否可能被仓库控制的 setup、依赖脚本或日志读取?
    • ·把生成 patch 与发布变更分成两个信任域后,审计是否更清楚?

    参考来源

    优先使用 OpenAI 官方文档与官方仓库。外部来源会单独标识。

    1. OpenAI Codex GitHub Action

      官方来源 · https://learn.chatgpt.com/docs/github-action

    2. OpenAI Codex Non-interactive Mode

      官方来源 · https://learn.chatgpt.com/docs/non-interactive-mode

    3. openai/codex GitHub Repository

      官方来源 · https://github.com/openai/codex