CI で Codex Security を実行すると、Pull Request やマージリクエストの変更内容をレビューし、デフォルトブランチをスキャンして、検出事項とカバレッジを記録できます。ワークフロー、レポートの取り扱い、ポリシーの適用方法については、利用する CI プロバイダー向けのガイドを参照してください。
ワークフローの準備
スキャンを実行するには、Codex Security へのアクセス権が必要です。CI プロバイダーのシークレットストアに OpenAI API キーを CODEX_SECURITY_API_KEY という名前で保存し、スキャンプロセスの環境変数 OPENAI_API_KEY に割り当てます。
スキャンの対象は、信頼できるリポジトリと変更に限定してください。スキャンはランナーのローカル権限で実行され、承認を待たずに進みます。スキャンに関係のない認証情報やデプロイ手順は別のジョブで扱ってください。
承認済み Daybreak モデルの利用
Trusted Access for Cyber を通じて Daybreak Blue を利用する場合は、GitHub Action の入力 model を gpt-6-sol に、cyber-access-program を daybreak_blue に設定します。CLI から直接スキャンする場合は、--model gpt-6-sol と --cyber-access-program daybreak_blue を指定します。
Daybreak Blue が有効で、選択したモデルへのアクセス権があるプロジェクトの API キーを使用してください。モデルやプログラムを指定するだけでは、アクセス権は付与されません。GitHub Action の設定については、Daybreak アクセスの設定(任意)を参照してください。
CI との連携方法の選択
GitHub Actions ワークフローの追加
Pull Request のチェックやリポジトリの定期スキャンを設定するには、GitHub Actions ガイドを参照してください。Codex Security Action は CLI をインストールし、レポートを保存して、ジョブのサマリーとソースコードへの注釈を追加します。ガイドでは、ランナーのセットアップ、Daybreak アクセスの任意設定、SARIF のアップロード、重大度に基づくポリシーの適用について説明しています。
GitLab CI/CD パイプラインの追加
マージリクエストやデフォルトブランチのスキャン、定期スキャンを設定するには、GitLab CI/CD ガイドを参照してください。まずはスキャンのみを実行するパイプラインを用意し、その後、レポート処理とポリシーの適用を追加します。必要に応じて、修正とその検証も組み込めます。
その他の CI システムでの利用
公開パッケージ @openai/codex-security をインストールし、CLI を直接実行します。--auth api-key を指定し、リポジトリ全体をスキャンするか差分をスキャンするかを選び、出力を Git Worktree の外にある非公開ディレクトリに保存します。ランナーには、CLI クイックスタートに記載されている依存関係が必要です。
スキャンのオプション、差分を比較するリビジョン、レポート形式、状態と出力の保存先ディレクトリ、再試行時の動作については、CLI リファレンスを参照してください。
重大度ポリシーの選択
最初はスキャン結果を参考情報として扱います。代表的な検出事項、スキャンのカバレッジ、コスト、実行時間を確認してから、どのような結果が出た場合にマージをブロックするかを決めてください。
検出事項に加え、スキャンが完了したかどうかも確認してください。重大度ポリシーの評価対象は、今回のスキャンで検出された事項のうち、重大度が設定したしきい値以上のものです。リポジトリのサマリーに残っている過去の未解決の検出事項は、この判定に影響しません。スキャンが未完了の場合、検出事項の報告がなくても、未レビューの箇所が残っている可能性があります。
GitHub Action のリリース action-v0.3.0 では、スキャンの完了は、設定した解析で有効な結果が得られたことを示します。対象範囲からの除外、調査の保留、その他のカバレッジに関する注記があっても、重大度ポリシーは適用されます。スキャナーでエラーが発生した場合や、必須のレポート処理に失敗した場合は、ジョブが失敗します。CLI 0.3.0 は、入力、実行、結果の整合性、必須の出力のいずれかに問題があると、終了コード 2 を返します。結果を評価する際は coverage.json を確認してください。スキャンが完了しても、すべての脆弱性が検出されたことは保証されません。
ポリシーの適用方法は、GitHub Actions ガイドまたは GitLab CI/CD ガイドに沿って設定してください。CLI を直接組み込む場合は、重大度ポリシーの適用と終了コードを参照してください。