为CI配置Codex凭据须禁用硬编码与日志泄露,按最小权限原则分配scope:只读分析禁用write权限,PR评论仅开pull-requests: write;推荐GitHub App令牌配合OIDC,或细粒度PAT;凭据须按dev/staging/prod环境隔离并绑定分支触发与审批规则。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

为CI任务配置Codex所需凭据,必须避开硬编码、日志泄露、跨环境混用等高危操作,否则一次流水线失败可能直接导致API密钥外泄。
确认Codex调用方式与权限边界
先检查Codex在CI中实际承担的角色:是仅做代码补全建议(只读diff),还是参与PR自动评论、生成测试用例或修改代码(需写权限)?【Codex若被授予仓库写权限,将能直接提交恶意patch或删除关键文件】。若只需分析代码,应禁用所有write scopes;若需评论,仅开启pull-requests: write,绝不可配contents: write或packages: write。
查看当前使用的Codex集成方式——是通过官方GitHub App安装?还是调用独立SaaS API?前者走GitHub OAuth scope控制,后者依赖Bearer Token + IP白名单/租户隔离。
GitHub Actions中注入Codex凭据
方法一:使用GitHub App安装令牌(推荐)
进入GitHub → Settings → GitHub Apps → 找到已安装的Codex App → 点击“Generate a new client secret” → 复制生成的client_secret → 在仓库Settings → Secrets and variables → Actions中新建SECRET_NAME为CODX_APP_CLIENT_SECRET,值粘贴进去。
在workflow中引用时,必须配合OIDC身份交换:
permissions:
id-token: write # 必须启用,否则无法获取临时token
contents: read
steps:
- uses: actions/github-app-token@v1
with:
app-id: ${{ secrets.CODX_APP_ID }}
private-key: ${{ secrets.CODX_APP_PRIVATE_KEY }}
environment: ${{ env.ENV_NAME }}
通过本地 Codex 或 OpenClaw OAuth 凭证直接调用 ChatGPT/Codex Responses 的 image_generation 工具来生成或编辑光栅图像,然后保存
方法二:细粒度个人访问令牌(PAT)
登录GitHub → Settings → Tokens → Generate new token (fine-grained) → 勾选only “Contents: read”和“Pull requests: write”,不选任何其他scope → 设置过期时间(建议7天)→ 创建后立即复制 → 存入Actions Secrets,名称为CODX_PAT。
【切勿使用classic PAT,它默认继承全部权限且无法降权】
按环境隔离凭据并绑定触发分支
第一步:在仓库Settings → Environments中创建三个环境:dev、staging、prod
第二步:为每个环境单独配置Secrets,例如:
dev环境填CODX_API_TOKEN_DEV
staging环境填CODX_API_TOKEN_STAGING
prod环境填CODX_API_TOKEN_PROD
第三步:在workflow中强制限定环境消费路径:
jobs:
codex-review:
environment: ${{ github.head_ref == 'main' && 'prod' || github.head_ref == 'develop' && 'staging' || 'dev' }}
steps:
- name: Run Codex analysis
env:
CODX_TOKEN: ${{ secrets.CODX_API_TOKEN }} # 此处会自动取对应环境下的Secret
第四步:对prod环境启用保护规则——仅允许main分支推送、且必须经指定审批人批准才可执行。

















