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 credits | AI 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)
| 比較項目 | CodeQL | AI 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は、次の順序で設定します。
- 対象のEnterpriseを開く
Policiesを開くAdvanced SecurityのCode securityを開くAI Findingsのポリシーを確認する- Organizationで利用できる許可状態に変更する
ここで注意したいのは、Enterpriseで許可しただけでは機能は有効にならないことです。Enterpriseポリシーは、Organization管理者が機能を有効化できる状態にするための上位許可にすぎません。(GitHub Docs)
Organizationの設定項目自体が見つからない場合は、まずEnterprise側のAI FindingsがNot allowedのままになっていないか確認してください。
OrganizationでAI-powered security detectionsを有効化する
Enterpriseで許可した後、Organization側で明示的にオプトインします。
- GitHub右上のプロフィール画像から
Organizationsを開く - 対象Organizationの
Settingsを開く - サイドバーの
SecurityでAdvanced Securityを展開する Global settingsを開くCode scanningセクションを確認する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を使用しているケースです。
リポジトリでは、次の順序で確認します。
- 対象リポジトリの
Settingsを開く SecurityセクションのAdvanced Securityを開くCodeQL analysisの設定を確認するDefault setupが有効になっていることを確認するCode scanning内のAI findingsが無効になっていないことを確認する
未設定の場合は、CodeQL analysisのSet 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運用がある場合は、次の順序で判断するのが安全です。
- 現在のadvanced setupで使っている言語、クエリ、ビルド処理を整理する
- default setupで同等の分析が可能か確認する
- 影響の小さい検証用リポジトリでAI security detectionを試す
- 既存の検出精度を落とさないことを確認してから切り替える
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のConversationとFiles 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ポリシーを確認する
Policies、Advanced Security、Code security、AI 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が表示されない場合は、次の順番で確認してください。
- Enterpriseの
AI Findingsを許可する - Organizationの
AI-powered security detectionsを有効にする - リポジトリでオプトアウトされていないか確認する
- CodeQLが
default setupになっているか確認する - GitHub Code SecurityとCopilot licenseを確認する
- AI creditsと予算上限を確認する
- Pull Requestを作成または新しいコミットで更新する
AI findingが表示されてもマージが止まらないのは現在の仕様です。強制的なmerge protectionが必要な場合は、CodeQLの必須チェックとレビュー承認を維持し、AI security detectionはCodeQLの対応範囲を補う追加シグナルとして利用するのが適切です。

コメント