この実践ログで分かること
- CodexがGitHub PR作成・mergeまで自動で行えるようになった流れ
- gh CLI認証がなぜ必要だったか
- 人間がブラウザでPR作成・mergeしていた段階から何が変わったか
- main直push禁止のまま、自動PR運用へ移る方法
- 安全なdocs小変更でテストした理由
- Codexが自動化してよい範囲と、人間確認が必要な範囲
- 今後のCodex並列作業やGitHub運用へのつながり
ブラウザでPR作成・mergeする運用を卒業したかった
codexguide-code は private repo として初回push済みで、README、GitHub運用ドキュメント、PRテンプレートもPR #1で導入済みでした。
ただしPR #1では、gh CLIが未ログインだったため、人間がブラウザでPR作成・mergeを行いました。今後の運用では、人間が毎回ブラウザでPR作成・mergeするのではなく、Codexがgh CLIで完結できる形に寄せたい。そこで、docs小変更だけで安全に自動PR/mergeテストを行いました。
実情報として、repo名は chinanago38/codexguide-code、PRは #2、branchは codex/test-gh-pr-merge-20260605、変更ファイルは docs/github-operation.md、commitは c409a2c、最新main commitは 2b99fc0efac8a723b34381d82386f8c2f5b66db5 です。認証情報、token、2FAコード、recovery codeは掲載しません。
Codexがbranchからmain同期確認まで自動で進めた
| 段階 | Codexが行ったこと | 確認したこと | 安全上の意味 |
|---|---|---|---|
| 1. gh CLI認証確認 | gh auth status 相当の確認 | GitHub操作できる状態 | 認証情報を本文に出さず操作できる |
| 2. repo view確認 | 対象repoを確認 | chinanago38/codexguide-code | 誤repo操作を避ける |
| 3. open PRなし確認 | 未処理PRを確認 | 競合しにくい状態 | 並行作業の衝突を減らす |
| 4. main同期確認 | mainの状態を確認 | 最新mainから作業 | 古いbranchで作業しない |
| 5. 作業branch作成 | codex/test-gh-pr-merge-20260605 を作成 | main直pushしていない | PR運用の基本を守る |
| 6. docs小変更 | docs/github-operation.md を軽く変更 | HTMLや本番に影響しない | GitHub運用だけをテストできる |
| 7. commit | 変更をcommit | c409a2c | 変更単位を追跡できる |
| 8. branch push | 作業branchをpush | remoteに反映 | PR作成の準備ができる |
| 9. gh pr create | PR #2を作成 | PR本文と対象branch | ブラウザ操作を減らせる |
| 10. PR diff確認 | PR差分を確認 | docs小変更だけ | merge前に内容を確認する |
| 11. gh pr merge | PRをmerge | merge完了 | 安全な変更はCodexで閉じられる |
| 12. branch削除 | merged branchを削除 | 不要branchが残らない | repoを整理できる |
| 13. main同期確認 | mainを同期 | 2b99fc0efac8a723b34381d82386f8c2f5b66db5 | ローカルと正本のズレを減らす |
| 14. working tree clean確認 | 作業ツリー確認 | 未反映変更なし | 次の作業へ安全に移れる |
最初の自動mergeテストは、docsだけに限定した
いきなりHTML本文、sitemap、news、work-logを触ると影響範囲が広くなります。GitHub自動運用そのものを確認する目的なら、docs小変更で十分です。
docsなら本番表示やSEOタグに影響しにくく、PR作成、diff確認、merge、main同期の動作確認に集中できます。安全な小変更で自動運用を先に確認するのが、次の大きな作業へ進むための土台になります。
人間がやっていたことからCodexができることへ
| 運用 | PR作成 | PR確認 | merge | branch削除 | main同期確認 | 人間の役割 |
|---|---|---|---|---|---|---|
| 以前 | 人間がブラウザで作成 | 人間が確認 | 人間がmerge | 人間が整理 | 人間が確認 | 操作も判断も人間側に多い |
| 今回成功した運用 | Codexがgh CLIで作成 | Codexがdiff確認 | Codexがmerge | Codexが削除 | Codexが確認 | 安全な小変更のGOを出す |
| 今後の運用 | Codexが通常作成 | Codexが差分要約 | 安全な変更はCodexがmerge | Codexが整理 | Codexが確認 | GO/STOP判断や高リスク確認に集中 |
gh CLIでCodexができるようになったこと
- PR作成
- PR一覧確認
- PR diff確認
- PR merge
- repo状態確認
- branch削除
- main同期確認
- open PR確認
ただし、初回認証は人間が行います。認証情報やtokenは表示しません。権限がないrepoは扱えません。本番deployとは別管理です。
自動mergeできても、人間確認が不要になるわけではない
次のような場面では、Codexが作業を止める、または人間が確認する前提にします。
- HTML本文を大きく変える
- sitemap、news、work-logを更新する
- canonicalやrobots/noindexが絡む
- AdSenseコードやSearch Consoleタグが絡む
- DB、cron、DNS、.htaccess が絡む
- Secrets、APIキー、.env、認証情報が出る
- 本番deployする
- 削除や大量変更がある
- 公式誤認やSEO保証表現が心配な場合
今後のcodexguide-code運用ルール
- main直push禁止
- 作業ごとにbranchを切る
- CodexがPR作成する
- Codexがdiff確認する
- 安全な変更はCodexがmergeできる
- 高リスク変更は停止して人間確認
- merge後はmain同期確認
- deployは別管理
- GitHub Actions deployは現時点では使わない
- Secretsはrepoに入れない
今回触っていないもの
今回のPR/merge自動運用テストでは、HTML本文、sitemap.xml、news/index.html、work-log/index.html、robots.txt、ads.txt、AdSenseコード、Search Console確認タグ、本番サーバー、FTP/SFTP、deploy設定、GitHub Actions、Secrets、.env、DB、SQL、logには触っていません。
チェックリスト
- □ gh auth status が成功した
- □ repo view が成功した
- □ main が最新だった
- □ 作業branchを作った
- □ main直pushしていない
- □ 変更ファイルはdocsだけだった
- □ Secrets混入なし
- □ PRをghで作成した
- □ PR diffを確認した
- □ merge前に変更ファイルを確認した
- □ merge後にbranchを削除した
- □ main同期確認した
- □ working tree clean を確認した
- □ 本番に触っていない
