Pull RequestにAI security detectionが表示される条件|CodeQL・Copilot・AI creditsの要件

Pull RequestにAI security detectionが表示されない場合、CodeQLが動作していることだけを確認しても原因は特定できません。この機能は、Enterpriseの許可、Organizationでの有効化、リポジトリのCodeQL default setup、GitHub Copilot license、AI creditsという複数の条件がそろって初めて利用できます。

一方、AI security detectionが表示されているのにPull Requestをマージできるのは不具合ではありません。現在のpublic previewでは、AIによる検出結果はinformational、つまり参考情報として扱われます。Rulesetの必須条件には設定できず、AI findingsだけでマージを止めることはできません。(The GitHub Blog)

目次

Pull RequestにAI security detectionが表示される必須条件

GitHub code scanningのAI security detectionは、2026年7月14日にGitHub.com向けpublic previewとして発表されました。GitHub公式の要件を、実際の確認単位に分解すると次のとおりです。(The GitHub Blog)

条件確認する内容条件を満たさない場合
対象環境今回のpublic preview対象であるGitHub.comを利用している同じ設定項目が表示されない可能性がある
セキュリティライセンスGitHub Code Securityまたは対象となるGitHub Advanced SecurityライセンスがあるAI security detectionを利用できない
EnterpriseポリシーAI Findingsが許可されているOrganization側で有効化できない
Organization設定AI-powered security detectionsを明示的に有効化している配下のリポジトリでは実行されない
Repository設定Organizationの設定を継承し、リポジトリでオプトアウトしていないそのリポジトリだけ実行されない
CodeQL設定CodeQL default setupが有効になっているCodeQLが別方式で動いていても対象外
CopilotライセンスGitHub Copilot licenseが用意されているpublic previewの利用要件を満たさない
AI creditsAI creditsを利用でき、予算や上限でブロックされていないAI処理が実行できない可能性がある
実行トリガーPull Requestの作成または新しいコミットによる更新がある新しいAI分析が開始されない

設定条件をすべて満たしても、必ずAI findingsが表示されるわけではありません。分析対象に報告すべき問題が見つからなければ、AIラベル付きの検出結果は表示されません。

AI security detectionとCodeQLの違い

AI security detectionは、CodeQLの新しいクエリではありません。GitHub独自のAI detection engineがPull Request内の変更を分析し、CodeQLが標準で対応していない言語やフレームワークのセキュリティ問題を補完する機能です。

ただし、AI分析そのものをCodeQLが実行していなくても、機能を利用する前提としてCodeQL default setupが必要です。(The GitHub Blog)

比較項目CodeQLAI security detection
分析方式クエリベースの静的解析AIベースの分析エンジン
主な目的対応言語の既知の脆弱な実装パターンを高精度で検出CodeQLの言語・フレームワーク対応範囲を補完
分析対象Pull RequestやデフォルトブランチなどPull Requestのみ
リポジトリのアラート一覧通常のcode scanning alertとして蓄積されるbacklog alertとしては表示されない
マージ制御Code scanning resultsを必須チェックにできるinformationalであり、Rulesetの必須条件にできない
利用量構成によってGitHub Actions minutesなどを使用検出処理の実行時にAI creditsを使用

AI security detectionは、PHP、Shell/Bash、TerraformのHCL、Dockerfileなどのほか、JavaのJSPやC#のBlazorといったCodeQLのカバレッジギャップを補う用途が想定されています。ただし、対応言語や検出カテゴリーはpublic preview中に変更される可能性があります。(GitHub Docs)

EnterpriseでAI Findingsを許可する

最初に確認すべきなのはEnterpriseポリシーです。AI-powered security detectionsは、Enterpriseレベルでは初期状態でNot allowedになっています。

Enterprise ownerは、次の順序で設定します。

  1. 対象のEnterpriseを開く
  2. Policiesを開く
  3. Advanced SecurityCode securityを開く
  4. AI Findingsのポリシーを確認する
  5. Organizationで利用できる許可状態に変更する

ここで注意したいのは、Enterpriseで許可しただけでは機能は有効にならないことです。Enterpriseポリシーは、Organization管理者が機能を有効化できる状態にするための上位許可にすぎません。(GitHub Docs)

Organizationの設定項目自体が見つからない場合は、まずEnterprise側のAI FindingsNot allowedのままになっていないか確認してください。

OrganizationでAI-powered security detectionsを有効化する

Enterpriseで許可した後、Organization側で明示的にオプトインします。

  1. GitHub右上のプロフィール画像からOrganizationsを開く
  2. 対象OrganizationのSettingsを開く
  3. サイドバーのSecurityAdvanced Securityを展開する
  4. Global settingsを開く
  5. Code scanningセクションを確認する
  6. AI-powered security detectionsを有効にする

Organizationの設定を有効化すると、CodeQL default setupを使用している配下のリポジトリが対象になります。UI上では、設定場所によってAI-powered security detectionsまたはAI findingsと表示される場合があります。(GitHub Docs)

Organization設定を変更できるのは、Organization owner、security manager、必要な管理権限を持つメンバーです。

RepositoryでCodeQL default setupを確認する

AI security detectionが表示されない原因として特に多いのが、CodeQLは動いているものの、default setupではなくadvanced setupを使用しているケースです。

リポジトリでは、次の順序で確認します。

  1. 対象リポジトリのSettingsを開く
  2. SecurityセクションのAdvanced Securityを開く
  3. CodeQL analysisの設定を確認する
  4. Default setupが有効になっていることを確認する
  5. Code scanning内のAI findingsが無効になっていないことを確認する

未設定の場合は、CodeQL analysisSet upからDefaultを選択し、設定内容を確認してEnable CodeQLを実行します。default setupには、GitHub Actionsが有効であることと、リポジトリが公開されているかGitHub Code Securityが有効であることが必要です。(GitHub Docs)

Advanced setupから安易に切り替えない

独自の.github/workflows/codeql.yml、カスタムクエリ、ビルド手順、外部SARIFアップロードなどを利用している場合は注意が必要です。

Advanced setupからdefault setupへ切り替えると、GitHubは既存のcode scanning構成を上書きし、既存ワークフローファイルを無効化します。CodeQL analysis APIによるアップロードもブロックされるため、AI security detectionを表示するためだけに本番リポジトリの分析方式を切り替えると、現在のセキュリティ検査範囲を狭める可能性があります。(GitHub Docs)

カスタマイズされたCodeQL運用がある場合は、次の順序で判断するのが安全です。

  1. 現在のadvanced setupで使っている言語、クエリ、ビルド処理を整理する
  2. default setupで同等の分析が可能か確認する
  3. 影響の小さい検証用リポジトリでAI security detectionを試す
  4. 既存の検出精度を落とさないことを確認してから切り替える

Copilot licenseとAI creditsを確認する

Public preview中のAI security detectionには、GitHub Advanced Security系の対象ライセンスに加え、GitHub Copilot licenseが必要です。分析が実行された場合だけ、OrganizationのAI creditsが消費されます。(The GitHub Blog)

Copilot BusinessやCopilot Enterpriseでは、割り当てられたライセンスに含まれるAI creditsが請求単位ごとの共有プールとして管理されます。共有プールを使い切った後の動作は、追加利用の設定によって変わります。

  • 追加利用を許可している場合は、従量課金で処理を継続する
  • 追加利用を許可していない場合は、次の利用枠更新までAI利用がブロックされる
  • Enterprise、Organization、コストセンター、ユーザー単位の予算上限でも利用が止まる場合がある

そのため、ライセンスが存在することだけでなく、Billing & LicensingのAI credits使用量、追加利用ポリシー、Budgets and alertsの上限を確認する必要があります。(GitHub Docs)

なお、GitHubの公開情報は「GitHub Copilot licenseが必要」としていますが、Pull Requestの作成者全員に個別のCopilot seatが必要かどうかまでは明記していません。導入時は対象OrganizationまたはEnterpriseのCopilot契約とAI creditsを確認し、個別seatの判定が必要な場合はGitHub Supportへ確認するのが確実です。

AI findingがinformationalでmergeを止めない理由

AI security detectionの結果は、現在の仕様ではadvisory、つまり助言的な情報です。Pull RequestのConversationFiles changedにCodeQLアラートと並んで表示され、AIによる検出であることを示すラベルが付きます。

検出内容には問題の説明やリスクが表示され、多くの場合は修正案も提示されます。ただし、すべてのfindingに修正案が付くとは限らず、誤検知が含まれる可能性もあります。(GitHub Docs)

現在は次の制限があります。

  • AI findings単独ではPull Requestをブロックしない
  • Repository Rulesetsのmerge requirementに利用できない
  • デフォルトブランチ全体を対象としたフルスキャンには対応しない
  • リポジトリの通常のcode scanning backlog alertには蓄積されない
  • AIの性質上、false positiveが発生する可能性がある

一方、通常のCodeQLによるCode scanning resultsは、branch protectionやRulesetの必須チェックに設定できます。したがって、CodeQLのチェックが失敗してマージできないことはあっても、AI security detectionだけを理由にマージが止まることはありません。(GitHub Docs)

CodeQLが失敗していてもAI findingが表示される場合がある

AI detection engineは、CodeQLの実行状態とは独立して動作します。

CodeQL default setupが有効であることは利用条件ですが、個別のCodeQLジョブがwaitingやfailureになっていても、AI分析は実行される場合があります。また、結果は見つかった順にPull Requestへ投稿されるため、AI findingsがCodeQLより先に表示されることも、その逆もあります。(GitHub Docs)

そのため、次の状態はいずれも仕様上起こり得ます。

Pull Requestの状態判断
AI findingが先に表示され、CodeQLが実行中正常な可能性が高い
CodeQLが失敗しているがAI findingは表示されるAI分析は独立しているため起こり得る
CodeQLの結果はあるがAI findingがないAI設定未完了、advanced setup、検出なしなどを確認する
AI findingがあるがマージボタンが有効informational仕様のため正常
SecurityタブにAI findingが残っていないAI findingsはPull Request限定のため正常

AI security detectionが表示されないときの確認順序

原因調査では、リポジトリから確認するのではなく、上位設定から順に確認すると見落としを減らせます。

Enterpriseポリシーを確認する

PoliciesAdvanced SecurityCode securityAI Findingsの順に開き、Not allowedになっていないか確認します。

Enterpriseで許可されていなければ、それより下の設定を変更しても利用できません。

Organizationのオプトインを確認する

Enterpriseで許可されていても、Organization側のAI-powered security detectionsが無効なら実行されません。

「Enterprise ownerが許可したので自動的に全リポジトリで有効になる」と考えないことが重要です。

リポジトリのオプトアウトを確認する

リポジトリはOrganization設定を継承しますが、Repository administratorは個別にオプトアウトできます。

同じOrganization内で一部のリポジトリだけ表示されない場合は、リポジトリのAI findingsトグルを確認してください。(GitHub Docs)

CodeQLのセットアップ方式を確認する

CodeQLのActionsワークフローが成功しているだけでは、AI security detectionの要件を満たしたとは限りません。

Advanced setupや外部ツールからのSARIFアップロードではなく、CodeQL default setupが有効かを確認します。

Pull Requestを更新して再分析を発生させる

AI分析はPull Requestの作成時と、新しいコミットが追加されたときに実行されます。

機能を有効化する前から存在しているPull Requestでは、新しいコミットを追加するなど、Pull Requestの更新を発生させて確認します。(GitHub Docs)

Copilot licenseとAI creditsを確認する

OrganizationまたはEnterpriseの請求設定で、次の項目を確認します。

  • 有効なGitHub Copilot契約があるか
  • AI creditsの共有プールを使い切っていないか
  • 追加利用が禁止されていないか
  • OrganizationやEnterpriseの予算上限に達していないか
  • ユーザー単位やコストセンター単位の制限が適用されていないか

「表示がない=設定失敗」と即断しない

AI findingsは、脆弱性候補が検出された場合に表示されます。設定が正しくても、分析対象の変更に報告対象がなければ何も表示されません。

検証時は、単にAIラベルの有無だけを見るのではなく、Enterprise、Organization、Repository、Billingの各設定を記録して確認することが重要です。

Merge protectionが必要な場合の実務的な運用

AI security detectionは現時点でmerge gateにできないため、セキュリティ管理者はCodeQLやレビュー承認と組み合わせて運用する必要があります。

CodeQLの結果を必須チェックにする

CodeQLが対応する言語では、Code scanning resultsをbranch protectionまたはRulesetの必須チェックとして設定します。

AI findingsはカバレッジを補う情報として使い、強制的なマージ制御はCodeQL側で行います。

高リスクな変更にはレビュー承認を要求する

認証、認可、SQL、シークレット、暗号化、外部通信、GitHub Actionsなどを変更するPull Requestには、セキュリティ担当者やCODEOWNERSの承認を要求します。

AI findingが表示された場合は、少なくとも次の点を確認します。

  • 外部入力を攻撃者が制御できるか
  • サニタイズやエスケープが適切か
  • 権限確認が処理の直前で行われているか
  • 認証情報や個人情報がログへ出力されないか
  • 提示された修正案が別の不具合を発生させないか

AI findingsをレビュー項目として明文化する

Pull Requestテンプレートに、次のような確認欄を追加すると見落としを減らせます。

- [ ] CodeQLの必須チェックが成功している
- [ ] AI security detectionの指摘を確認した
- [ ] AI findingを対応しない場合は理由を記載した
- [ ] 認証・認可・外部入力に関する変更を担当者が確認した

AI findings自体ではマージを止められなくても、レビュー手順として確認を必須化することは可能です。

まず確認すべきポイント

Pull RequestにAI security detectionが表示されない場合は、次の順番で確認してください。

  1. EnterpriseのAI Findingsを許可する
  2. OrganizationのAI-powered security detectionsを有効にする
  3. リポジトリでオプトアウトされていないか確認する
  4. CodeQLがdefault setupになっているか確認する
  5. GitHub Code SecurityとCopilot licenseを確認する
  6. AI creditsと予算上限を確認する
  7. Pull Requestを作成または新しいコミットで更新する

AI findingが表示されてもマージが止まらないのは現在の仕様です。強制的なmerge protectionが必要な場合は、CodeQLの必須チェックとレビュー承認を維持し、AI security detectionはCodeQLの対応範囲を補う追加シグナルとして利用するのが適切です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次