本文へスキップ

GitHubのpull request向けAI Scanが一般提供開始

GitHubのAI Scan(AIスキャン)が、PHP、Shell、Terraform、Dockerfileのプルリクエストを検査するようになりました。プレビューを終え、Copilotライセンスは不要で、マージをブロックすることはできません。

著者 Tech AI Wire Team

4 分で読めます

GitHubのスクリーンショット。プルリクエスト上でgithub-advanced-securityボットが、PHPファイル内のeval()によるコード実行の重大なリスクを指摘し、修正案を示しています。

数字で見る

languages and frameworks GitHub names, from PHP to Blazor
6
kinds of security bug it looks for, per GitHub's docs
9
from public preview (July 14) to general availability
3 months

GitHubは2026年10月15日、プルリクエスト向けのAI Scanを一般提供(GA)にしました。この機能はAIを使い、GitHub自身のスキャナーであるCodeQLが読めないコードからセキュリティ上の欠陥を探します。対象はPHP、シェルスクリプト、Terraformファイルなどです。こうしたファイルは、よく検査されたコードと同じリポジトリに置かれていることが多くあります。それでもプレビュー以外では、GitHubの組み込みのセキュリティレビューを受けていませんでした。そのため今回の変更は重要です。

AI Scanが検査するもの

CodeQLは、GitHubのルールベースのコード解析エンジンです。Java、Python、JavaScriptなどの言語は読めますが、サーバーやビルドパイプラインを設定するファイルの多くは対象外です。AI Scanはその穴を埋めます。GitHubのchangelogは、次の言語とフレームワークを挙げ、「ほかにもある」としています。

言語またはフレームワーク主な用途
PHPWebアプリケーション
ShellとBashスクリプトとビルド手順
Terraform(HCL)コードで書くクラウドインフラ
Dockerfileコンテナイメージ
JSP for Java古いJavaのWebページ
Blazor for C#.NETのWeb画面

GitHubのドキュメントは、AI Scanが探す問題の種類を挙げています。文字列インジェクション、弱い暗号、壊れたアクセス制御、機密データの漏えい、セキュリティ設定の誤りなどです。さらに、認証の不備、データ整合性の不備、サーバーサイドリクエストフォージェリ(サーバーをだまして隠れたアドレスを呼び出させる攻撃)、サプライチェーンのリスクも探します。

スキャンは、プルリクエストが開かれたときと、新しいコミットが追加されるたびに実行されます。検出結果は、ConversationタブとFiles changedタブに「AI」ラベル付きで表示されます。リスクの説明と修正案が付くものもあります。

誰が使えるか、どう課金されるか

AI Scanは、組織または個人アカウントが所有するパブリックリポジトリで使えます。組織が所有するプライベートリポジトリと内部リポジトリでは、GitHub Code SecurityまたはGitHub Advanced Securityのライセンスが必要です。ドキュメントによると、個人アカウントのプライベートリポジトリは対象外です。GitHub Copilotのライセンスは不要です。

スキャンのたびにCode Security AI Creditsを消費します。課金が始まるのは、対象となるプルリクエストがスキャンされたときだけです。組織のリポジトリは、その組織のアカウントに請求されます。Enterpriseの請求画面では、利用量が「AI usage」の下にAdvanced Securityとして表示され、管理者は予算を設定できます。GitHubのドキュメントによると、ハード予算を使い切るとスキャンは止まります。再開するのは、予算を増やしたときか、新しい請求期間が始まったときです。changelogにもドキュメントにも、クレジット1単位あたりの価格は書かれていません。

Enterpriseでは、AI Scanを許可するポリシーが初期設定で「Not allowed」になっています。組織が機能をオンにすると、対象のリポジトリですぐに有効になります。

制限

AI Scanの検出結果は参考情報です。changelogには「コードスキャンのチェックを失敗させることはない」と書かれており、rulesetでマージをブロックする条件にも使えません。検出結果はプルリクエスト上にだけ存在します。リポジトリのセキュリティビューのアラートにはなりません。

フォークからのプルリクエストと、GitHubの依存関係更新ボットであるDependabotが開いたプルリクエストでは、スキャンは実行されません。検査するのはプルリクエストの変更部分だけで、リポジトリ全体は検査しません。ドキュメントは、結果に誤検知が含まれる場合があるとも注意しています。そのうえで、各検出結果をサムズアップかサムズダウンで評価するよう求めています。Superpower Dailyは、AI ScanはCodeQLを置き換えるのではなく、その隣に並ぶものだとまとめています。

ここまでの経緯

この機能は、3か月のプレビュー期間に大きく変わりました。

日付変更
2026年7月14日Code Securityの顧客向けにパブリックプレビュー。CopilotライセンスとCodeQLのデフォルトセットアップが必要
2026年9月16日CodeQLのデフォルトセットアップが不要に
2026年10月15日一般提供。Copilotライセンスは不要

7月のchangelogによると、7月のプレビューでも組織のAIクレジットを消費していました。この部分は、上で説明した有料の仕組みに引き継がれています。

開発者にとっての意味

まず、AI Scanがすでにオンになっていないか確認してください。組織の管理者は、対象のリポジトリすべてで一度に有効にできます。リポジトリの管理者があとからオプトアウトしても、その時点ですでにクレジットを使っている可能性があります。最初の請求を待たずに、今日のうちに組織のコードセキュリティ設定を見てください。

オンにする前に予算を決めてください。活発なリポジトリではプルリクエストが多く開かれ、新しいコミットのたびに再びスキャンが走ります。ハード予算を設定すれば支出に上限をかけられますが、上限に達するとスキャンは止まります。通常の1か月分をまかなえる金額を選んでください。

検出結果は、ゲートではなくレビューコメントとして扱ってください。AI Scanはマージをブロックできません。そのため、ルールを強制したいチームには、CodeQLなどのルールベースのツールが引き続き必要です。対象はそれらのツールが扱える言語です。CodeQLには、CodeQL 2.27.1のように新しいチェックが追加され続けています。AI Scanは、それらのツールが対象外とするTerraform、シェル、Dockerのファイルを見る、2人目のレビュアーと考えるのが最適です。

Dependabotとフォークからのプルリクエストに注意してください。オープンソースのプロジェクトには、フォーク経由で外部から多くのプルリクエストが届きますが、それらはスキャンされません。プロジェクトの管理を担う人は、外部からの貢献に対して独自のチェックを続けるべきです。

出典

  1. AI Scan for pull requests generally available - GitHub Changelog
  2. AI Scan for pull requests - GitHub Docs
  3. Code scanning shows AI security detections on pull requests - GitHub Changelog
  4. GitHub releases AI security scans for code changes, but findings cannot block merges - Superpower Daily

関連記事