プルリクエストにおけるCodeQLの高速な増分分析
GitHubはCodeQLのプルリクエストスキャンを高速化し、変更コードのみをデータベース化して既存コードベースのキャッシュと結合する仕組みで解析速度を向上させた。
キーポイント
インクリメンタル解析の高速化
変更されたコードのみをデータベース生成し、既存のフルリポジトリキャッシュと結合することで、スキャン時間を大幅に短縮した。
主要言語と適用条件
C#, Java, JavaScript/TypeScript, Python, Rubyを対象とし、GitHub.comでのデフォルト設定および「build mode: none」抽出メカニズムを使用するプロジェクトに適用される。
スキャン時間分類と速度向上実績
10万件以上のリポジトリをスキャン時間(3分未満、3〜7分、7分以上)で分類し、各言語ごとの平均速度向上率をデータとして提示した。
適用範囲とCLIサポートの延期
デフォルトクエールスイートのみが対象であり、CodeQL CLIでのインクリメンタルスキャンサポートは今後のリリースで提供される予定。
影響分析・編集コメントを表示
影響分析
本アップデートは、大規模リポジトリにおけるセキュリティスキャンのボトルネックを解消し、開発者のフィードバックループを加速させる。特にAI関連プロジェクトのコード品質保証やCI/CD自動化において、スキャン時間の短縮はインフラコスト削減と開発効率向上に直結する。ただし、CLIサポートの延期やデフォルトスイート限定という制約は、一部開発環境での適用に注意を要する。
編集コメント
本稿はAIモデル開発そのものには直接関与しないが、生成されたコードのセキュリティ検証や大規模リポジトリ管理において、インフラ効率化の重要な一歩となる。開発チームはCI/CDパイプラインの見直しとともに、CLIサポートの動向を注視すべきだろう。
C#、Java、JavaScript/TypeScript、Python、Rubyのプルリクエストに対するCodeQLスキャンがインクリメンタル化され、より高速になりました。今年初め、新規または変更されたコードのみを分析することで、プルリクエスト時のCodeQLスキャンを約20%高速化しました。現在では、プルリクエストで導入された新規または変更されたコードを表現するCodeQLデータベースを生成し、コードベース全体のキャッシュ済みデータベースと組み合わせることで、CodeQLインクリメンタル分析のパフォーマンスをさらに向上させています。
10万以上のリポジトリを対象に、非インクリメンタルスキャンの実行にかかる時間に基づき、リポジトリを以下の3つのグループに分類しました:
- 3分未満
- 3分以上7分以下
- 7分超
この分類に基づき、7日間にわたって観測されたスキャン時間の、言語ごとの平均高速化率は以下の通りです:
インクリメンタル分析に対する今回の最新の改善は、デフォルトのCodeQLクエリスイートを使用している場合にのみ適用されます。
インクリメンタル分析は、github.comにおけるデフォルト設定および詳細設定の両方で、「ビルドモードなし」抽出メカニズムを使用しているC#、Java、JavaScript/TypeScript、Python、Rubyプロジェクトにおいて、デフォルトで有効化されています。
CodeQL CLIに対するインクリメンタルスキャンのサポートは、後日提供される予定です。
この投稿「Faster incremental analysis with CodeQL in pull requests」は、The GitHub Blogで最初に公開されました。
原文を表示
CodeQL scans on pull requests for C#, Java, JavaScript/TypeScript, Python, and Ruby are now incremental, making them faster. Earlier this year, we sped up scans during pull requests with CodeQL by approximately 20% by analyzing only new or changed code. We are now further improving the performance of CodeQL incremental analysis by generating a CodeQL database to represent your new or changed code introduced in pull requests and combining it with a cached database for your entire codebase.
Across more than 100,000 repositories, we classified repositories into three groups based on how long it takes to run a non-incremental scan:
Less than three minutes
Between three and seven minutes
Over seven minutes
Based on that classification, here’s the average per-language speedup we observed on scan times over a seven-day period:
This latest improvement to incremental analysis will only be applicable to those using the default CodeQL query suite.
The incremental analysis is enabled by default for C#, Java, JavaScript/TypeScript, Python, and Ruby projects that are using the build mode none extraction mechanism in both default setup and advanced setup on github.com.
CodeQL CLI will receive support for incremental scanning at a later date.
The post Faster incremental analysis with CodeQL in pull requests appeared first on The GitHub Blog.
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み