跳到文章正文
ChatGPT 实用教程

Codex怎么在GitHub Actions运行?手动触发、只读检查与结果留存

从workflow_dispatch手动运行Codex官方Action,以只读权限生成仓库文档检…

想让团队在统一环境里重复运行一次文档检查,可以用Codex GitHub Action,不必每个人本地安装相同配置。本文只做受控的手动检查:读取练习仓库README并留下结果文件,不自动提交补丁、不发送PR评论,也不运行不受信任的外部贡献代码。

Codex怎么在GitHub Actions运行?手动触发、只读检查与结果留存
Codex怎么在GitHub Actions运行?手动触发、只读检查与结果留存

第一步:准备仓库和凭据

需要能管理练习仓库Actions和Secrets的权限、可用OpenAI API访问,以及Linux或macOS运行器。将密钥按GitHub的Secret功能保存为OPENAI_API_KEY,工作流只引用名称,不能将真实值写进YAML、提示文件或日志。ChatGPT聊天订阅和API权限应分别确认。

先在低风险练习仓库操作,备份已有工作流,检查组织对Actions与Secret的限制。以下使用官方文档的openai/codex-action@v1,正式团队可按自身依赖策略固定审阅过的版本。这里不自动为用户真实仓库开启Action或创建凭据。

第二步:写一个有明确边界的提示文件

文件:.github/codex/prompts/docs-check.md
只阅读README及其明确链接的本仓库文档。
检查环境要求、安装命令和文件路径是否前后一致。
不要安装依赖、运行仓库脚本、修改文件或连接外部服务。
输出:问题、文件位置、原文证据和待确认项;未检查的内容明确列出。

把检查目标放进版本控制便于审阅和复用。仓库内容本身也可能包含与任务无关的指令,提示应要求把文档当作待检查资料。不要直接将任意Issue或PR正文拼成高权限指令,首次流程只处理自己信任的分支内容。

第三步:使用手动触发工作流

name: Codex docs check
on: workflow_dispatch
permissions:
  contents: read
jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
        with:
          persist-credentials: false
      - name: Read-only Codex check
        uses: openai/codex-action@v1
        with:
          openai-api-key: ${{ secrets.OPENAI_API_KEY }}
          prompt-file: .github/codex/prompts/docs-check.md
          sandbox: read-only
          output-file: codex-output.md
      - uses: actions/upload-artifact@v7
        with:
          name: codex-docs-result
          path: codex-output.md
          if-no-files-found: error

保存到.github/workflows下的YAML文件,并确认手动工作流在GitHub预期分支可见。示例不设置写入仓库或评论权限。Action负责启动Codex并保存最后消息;上传结果是后续独立步骤,只收集指定文件,不上传整个工作目录。

第四步:运行后检查真实产物

在Actions页选择工作流与受信任分支,手动运行一次,逐步看checkout、Codex和artifact上传状态。成功结束不代表文档没有问题,应下载codex-docs-result并阅读结果,核对引用文件和行附近原文,确认没有把“未检查”写成“通过”。

结果文件主要是最后的Codex消息,不等同于完整工具审计日志。需要审计时沿用组织现有日志制度,避免把含敏感资料的调试输出一并公开。示例没有实际调用API,也没有提供虚构的成功运行截图或耗费数字。

第五步:处理失败并保留最小权限

报prompt重复时,只保留prompt或prompt-file之一;提示文件找不到时核对checkout分支与路径;代理启动失败时检查Secret是否存在和API授权。不要把Secret内容打印出来排错,也不要为解决路径错误改成danger-full-access。

官方默认drop-sudo策略会移除sudo,read-only沙箱也不能单独代替运行器隔离和凭据保护。首次流程保持可信触发者与最小权限,确认有效后再决定是否增加其他任务。验收应包括手动触发可用、结果文件存在、证据可回查、无意外仓库写入和失败状态准确。

首次运行的验收还包括所选分支与提示文件版本一致。如果工作流从默认分支运行,却以为在检查另一个分支,结论即使准确也回答了错误的问题。记录运行链接、提交标识和结果文件名,后续复查就能回到同一份输入。正式使用前让维护者审阅工作流变更,确认没有新增与检查无关的权限。

示例采用GitHub托管的Ubuntu运行器。GitHub Enterprise Server的artifact支持范围不同,不能把云端示例不加核对地复制到自托管平台。产物保存期限也应遵循仓库设置;需要长期保留时按团队制度归档已核对结果,而不是默认下载链接永久有效。

官方资料

资料核对日期:2026年11月12日。

本文地址:https://www.163264.com/20652