Codex Security CI/CD の概要

CI 連携を選び、スキャン用のアクセスを準備し、検出結果とスキャン範囲をパイプラインにどう反映するかを決めます。

CI で Codex Security を実行すると、プルリクエストやマージリクエストの変更をレビューし、デフォルトブランチをスキャンして、検出結果とカバレッジを保存できます。ワークフロー、レポートの扱い、適用オプションについては、ご利用の CI プロバイダーのガイドを参照してください。

ワークフローを準備する

スキャンの実行には Codex Security へのアクセスが必要です。OpenAI API key を CI プロバイダーのシークレットストアに 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 key を使用してください。モデルやプログラムを設定しても、アクセス権は付与されません。Action の設定については、 オプションの Daybreak アクセスを設定する を参照してください。

連携方法を選ぶ

GitHub Actions ワークフローを追加する

プルリクエストのチェックや定期的なリポジトリスキャンには、GitHub Actions ガイドを参照してください。Codex Security Action は CLI をインストールし、レポートを保存して、ジョブのサマリーとソースコードへの注釈を追加します。このガイドでは、ランナーのセットアップ、オプションの Daybreak アクセス、SARIF アップロード、重大度ポリシーの適用を説明しています。

GitLab CI/CD パイプラインを追加する

マージリクエスト、デフォルトブランチ、定期スキャンには、GitLab CI/CD ガイドを参照してください。まずはスキャンのみのパイプラインから始め、その後、レポートの処理、ポリシーの適用、必要に応じて検証済みの修正を導入します。

別の CI システムを使用する

公開パッケージ @openai/codex-security をインストールし、CLI を直接実行します。 --auth api-key を使用し、リポジトリスキャンまたは差分スキャンを選んで、出力を Git ワークツリー外の非公開ディレクトリに保存します。ランナーには、 CLI クイックスタートに記載されている依存関係が必要です。

スキャンオプション、差分のリビジョン、レポート形式、状態と出力のディレクトリ、再試行の動作については、CLI リファレンスを参照してください。

重大度ポリシーを選択する

まずは参考情報として結果を確認する運用から始めます。代表的な検出結果、スキャン範囲、コスト、実行時間を確認してから、どの結果でマージをブロックするかを決めてください。

検出結果とスキャンの完全性の両方を評価してください。重大度ポリシーは、現在のスキャンの検出結果のうち、設定したしきい値以上のものを評価します。リポジトリのサマリーにある過去の未解決の検出結果は、そのポリシーに影響しません。不完全なスキャンでは、検出結果が報告されなくても、レビューされていない領域が残ることがあります。

Action リリース action-v0.3.0 では、スキャンの完了は、設定された分析によって有効な結果が生成されたことを意味します。対象範囲からの除外、調査の保留、その他のカバレッジに関する注記によって、重大度ポリシーの適用が回避されることはありません。スキャナーのエラーや必須のレポート処理のエラーが発生すると、ジョブは失敗します。CLI 0.3.0 は、入力、実行、結果の整合性、必須出力に関する失敗に対して終了コード 2 を返します。結果を評価する際は coverage.json を確認してください。完了しても、すべての脆弱性が見つかったことを保証するものではありません。

ポリシーの適用は、GitHub Actions ガイドまたは GitLab CI/CD ガイドに従って設定します。 CLI を直接連携させる場合は、重大度ポリシーの適用と終了コードを参照してください。