AIにpush・deployさせる前に見るチェックリスト|git diff・build・秘密情報・本番反映の確認
AIエージェントにpushやdeployを任せる前に、git status、git diff、git diff --check、build、sitemap、upload、secret混入、本番反映の有無を確認するチェックリストです。
公開 2026.06.30 / 更新 2026.08.10
この記事のポイント
- push前にgit statusとgit diffを見る
- build/check/static HTML/sitemap/uploadを既存運用どおり確認する
- 本番反映や秘密情報が混じるpushは人間確認にする
実行・push・deployの境界を分ける
知らないrepoでは、読み取り、限定実行、commit、push、deployを別の段階として扱います。AIがsetupを通したことと、pushや本番反映まで任せてよいことは別です。
| 確認観点 | この記事で扱うこと | 詳しく読む |
|---|---|---|
| 読み取り | repo構造と危険箇所の確認で止める | ai-coding-unknown-github-repo-safety-checklist |
| 限定実行 | 人間が指定したコマンドだけ許可する | ai-agent-setup-command-safety |
| 公開前 | diff、build、secret、sitemap、uploadを確認する | ai-agent-push-deploy-review-checklist |
| 間接指示 | 外部ページやREADMEの命令でpushしない | indirect-prompt-injection-ai-coding-agent |
AI coding agent安全運用の補足FAQ
AIがbuildまで成功させたらpushしてよいですか?
build成功は必要条件の一つです。push前にはgit diff、秘密情報、生成物、CIやGitHub Actionsの本番影響、push先branchを別に確認します。
push・deploy前は、git以外の退避先も確認する
pushやdeployの前にgit diffを見るのは基本です。加えて、未追跡ファイル、画像素材、生成済みHTML、uploadフォルダ、ローカル設定など、gitだけでは戻しにくいものは外付けSSDなどへ退避してから公開前レビューへ進むと、戻し方を選びやすくなります。
Workで調査、Codexで実装、人間がdeployを判断する
ChatGPT Workで調査と企画をまとめても、Codexの実装、build / check、git diff、commit / push、本番deployは別の境界です。新desktop appに入口が統合されても、push成功と本番反映を同じ完了条件にしません。
Auto-reviewはpermission grantではなく、承認者の置き換え
Auto-reviewでは、main agentがread-onlyまたはworkspace-writeのsandbox内で作業し、境界を越えるapproval requestが出たときだけ、`approvals_reviewer = "auto_review"`なら別のreviewer agentが判断します。approvedなら処理が続き、deniedならより安全な代替策を探すか停止します。writable_rootsを広げたりnetworkを有効にしたり、protected pathを弱めたりする設定ではありません。
| 確認点 | 公式Docsの説明 | push前の判断 |
|---|---|---|
| 適用条件 | interactive approvalがあるときに動く。`on-request`や該当promptを残すgranular policyが対象で、`never`ではreview対象がない | Auto-reviewを有効にしたつもりでも、現在のapproval policyで実際に対象になるかを確認する |
| review対象 | sandbox外へのshell/exec、blocked network、writable root外のedit、承認が必要なMCP/app、Computer Useの新しいwebsite/domain | routineなsandbox内操作は別に扱い、境界を越える操作だけをreview対象として棚卸しする |
| Computer Use | app approvalはuserへ直接表示され、Auto-reviewが置き換えない | 画面操作や新規domainの承認をreviewer agentの承認と混同しない |
| 拒否 | denied actionの同じ目的をworkaroundや間接実行で続けず、materially saferな代替策か停止へ進む | 拒否を通常のsandbox errorとしてretry loopに入れない |
| 設定 | default policy、managed `guardian_policy_config`、userの`[auto_review].policy`がある。managed requirementsが優先する | policyを変える前に組織設定、既定policy、transcriptの秘密情報を確認する |
Auto-reviewを公開作業に使う前の停止条件
- Auto-reviewのapproval成功を、build成功、test成功、diff確認、secret確認、生成物確認、push可、deploy可と同一視しない。
- Auto-reviewは境界を越えるactionだけを評価し、adversarialまたは通常と違うcontextで誤る可能性があるため、sandbox設計、monitoring、組織policyを残す。
- 拒否後は同じ目的を別のcommand、MCP、外部送信、shell wrapperで迂回せず、より安全な代替策を提示できなければ停止する。
- denial circuit breakerは、同じturnで3回連続または直近50 review中10回のdenialでinterruptする。loop回数を増やして突破しない。
- `/approve`のoverrideは、最近の特定denied actionを同じcontextで1回retryする狭い承認として扱い、似た将来のactionへの包括許可とは考えない。
- review transcriptは既定で`~/.codex/sessions`へ保持されるため、private data、secret、credentialがログに残る前提で入力と出力を確認する。
- review量を減らすためにbroadなwritable_rootsやprefix ruleを足さず、必要なscratch directoryやcommand prefixだけを狭く設計する。
Codex Auto-reviewのFAQ
Auto-reviewを使えばfull accessでも安全ですか?
安全とは限りません。Auto-reviewはsandbox境界の承認者を置き換える仕組みで、permission grantではありません。sandbox、filesystem、network、MCP、secret、diff、test、公開判断の設計は別に残します。
Auto-reviewがapproveしたらpushしてよいですか?
そのままpush可とは判断しません。Auto-reviewが扱うのは特定のboundary-crossing actionのapprovalです。push前にはbranch、diff、secret、生成物、CI、本番deploy条件を人間が確認します。
Codex GitHub Actionは、workflow全体の安全性を保証しない
公式READMEのPR review例では、PRのmerge commitをcheckoutし、base・head refを明示的に取得し、`contents: read`でCodexを実行します。PR title・body・commit message・AGENTS.md・画像はprompt injectionの入力面になり得るため、PRの存在やラベルだけを根拠に広い権限を渡さず、レビュー対象の範囲と返却先を限定します。
| 確認点 | 公式README / Security guideの要点 | 開始前の判断 |
|---|---|---|
| trigger | 既定ではrepoへのwrite accessを持つuserがActionを実行でき、`allow-users`、trusted botのallowも追加できる | 外部PR・issueを起点に広く実行せず、許可するuser・botを個別に列挙する |
| checkout | PRのmerge commitを明示checkoutし、base・head refを取得、`persist-credentials: false`と`contents: read`を例示する | head branchの別内容をレビュー対象に混ぜず、Git credentialを後続へ残さない |
| prompt入力 | PR title・body、commit、AGENTS.md、画像などもCodexが読むuntrusted inputになり得る | GitHub expressionをshellへ直接埋め込まず、`env`へ渡してshell変数をquoteする |
| permission | `:read-only`または`:workspace`などのpermission profileを選べる。profileとlegacy `sandbox`は同時に使わない | レビューだけならread-only、checkout編集が必要なときだけworkspaceを選び、Codex CLI互換性も確認する |
| runner権限 | Linux/macOSの`drop-sudo`が既定で、`unprivileged-user`も選べる。read-onlyでもhostのsudoが残ればAPI keyを守れない場合がある | Codexにfilesystem権限を渡す前にprocess privilegeとsecretの見える範囲を確認する |
| 後続step | Codexがprocessを残したり、他Actionのsourceや`.git/hooks`を書き換えたりする可能性があるため、Actionをjobの最後に置くことを推奨する | Codex後にsecret利用、release、deploy、特権処理を続けず、結果は別jobへ渡す |
| network / install | `:workspace` profileはnetwork accessを与えない。依存取得が必要ならCodex stepより前に準備する | 依存取得とAI実行を分け、networkを有効にする理由・domain・ログを先に確認する |
GitHub Actionsへ組み込む前の停止条件
- `openai/codex-action@v1`を使う場合も、API keyはsecretに置き、prompt、PR本文、issue本文、branch名を無加工でshellへ連結しない。
- レビュー専用jobはjob-level permissionsを最小にし、`contents: read`、merge commit、base/head SHA、`persist-credentials: false`を確認する。
- 新しいpermission profileを選ぶなら、`:read-only`または`:workspace`とCodex CLIの対応versionを確認し、legacy `sandbox`や`sandbox_mode`を同じworkflow/configへ混在させない。
- Linux/macOS runnerでは`drop-sudo`または管理済みの`unprivileged-user`を優先し、read-only sandboxだけでAPI keyが守られると判断しない。
- Codex Actionはjobの最後に置き、完了後に特権step、secret利用、他Action、hook、release、deployを続けない。
- `final-message`を別jobへ渡しても、レビュー結果はmerge、push、deployの承認ではない。人間がdiff、CI、secret、生成物を確認する。
- Windows hosted runnerでは公式README上`safety-strategy: unsafe`だけが対応するため、Linux/macOSと同じ安全境界と見なさず、runner選択から見直す。
Codex GitHub ActionのFAQ
read-only sandboxとnetwork offならAPI keyは安全ですか?
十分とは限りません。公式Security guideは、host側にpasswordless sudoが残るとread-onlyやnetwork制限だけではprocess memoryなどからAPI keyへ到達し得ると説明しています。safety strategy、runner、secret、後続stepをまとめて確認します。
Codex Actionの後にdeploy stepを置いてよいですか?
原則として避けます。公式Security guideは、Codexがprocess、他Actionのsource、`.git/hooks`などを残りのjobへ影響させる可能性を理由に、Actionをjobの最後へ置くことを推奨しています。結果は別jobへ渡し、deploy可否は別の人間確認に分けます。
permission profileとsandboxを両方設定できますか?
混在させません。公式READMEではpermission profileとlegacy sandboxはcomposeせず、両方を指定するとAction開始前に失敗します。loaded configや`codex-args`に残る`sandbox_mode`も確認します。
関連記事
- APIキーと.envをAIに読ませないルール|Codex・Claude Code・MCP利用前の秘密情報チェック
APIキーや.envの実値をAIに読ませず、変数名・ダミー値・secret storeで扱うための実務ルールです。