GitHub の push / pull_request / issues / issue_comment を契機に Codex CLI でコードレビューを実行し、GitHub (PR コメント / コミットコメント / Issue 自動作成) と Discord (スレッド投稿 + 対話) の両方にフィードバックする AI Review Assistant です。
導入・本番公開・運用の詳細手順は DEPLOY.md にまとめています。GitHub App / Discord Bot / Codex CLI の準備から、Docker でのサーバー起動、レビュー対象リポジトリへの GitHub Actions 追加、リバースプロキシ設定、トラブルシューティングまでカバーしています。
環境変数 (.env) と設定ファイル (config.yml) の詳細は REFERENCE.md を参照してください。
登録した GitHub App の名義で GitHub に直接フィードバックします。
- PR レビューコメント:
pulls.createReviewで PR にレビュー本文を投稿。config.github.prReviewCommentで制御 - コミットコメント: push レビューでは head コミットに
repos.createCommitCommentでレビューを残す。config.github.pushCommitCommentで制御 - push Issue 自動作成: レビューに
重大度: Criticalまたは重大度: Highが含まれる場合、codex-reviewラベル付きの Issue を自動起票。config.github.pushIssueOnSevereで制御 - mention 経由レビュー: PR/Issue コメント本文に
mention.triggersの文字列が含まれると、その PR/Issue に対するレビューが追加で走る。synchronize後に再レビューを依頼したり、既存 Issue の棚卸しに使用
いずれも best-effort で動作し、GitHub API エラーは Discord 投稿やキュー処理をブロックしません。
レビュー投稿後、Discord にスレッドが自動作成されます。スレッド内にメッセージを書くと、Bot が会話履歴と clone 済みリポジトリを Codex に渡して応答します。
| 状態 | 挙動 |
|---|---|
| 通常運用 | 最後の活動から workspace.ttlMinutes 経過で自動削除 (10 分間隔スイープ)。会話中は TTL リセット |
| プロセス再起動 | 全 workspace 消失。会話履歴は SQLite に残るが、実ファイル参照なしの応答になる |
| 異常終了 | WORKSPACES_DIR にディレクトリが残る。手動削除が必要 |
CONTRIBUTING.md を参照してください。
- 全 webhook は HMAC-SHA256 (
X-Codex-Review-Signature: sha256=<hex>) で検証 - GitHub トークンは
GIT_CONFIG_*環境変数経由で git に渡し、URL やコマンドラインに露出しない - GitHub App は Private (自分のアカウントのみインストール可能) に設定
- Docker コンテナは非 root 化を行っていません。必要に応じて
USER nodeを追加してください - Codex CLI 子プロセスへは
PATHやOPENAI_*など最小限の環境変数のみを引き渡し、DISCORD_BOT_TOKENなど他の secrets は渡しません
Apache License 2.0 の下で配布されています。全文は LICENSE を参照してください。