メモ
GitHub Code Quality は現在 パブリック プレビュー 中であり、変更される可能性があります。
パブリック プレビュー中は、Code Qualityは課金されませんが、Code QualityスキャンではGitHub Actions分かかります。
GitHub Code Quality の概要
GitHub Code Quality ユーザーは、実行可能なフィードバックを表示し、プル要求と既定のブランチで検出された結果に対して自動修正を提供することで、コードの信頼性、保守容易性、および全体的なプロジェクトの正常性を向上させることができます。
Code Qualityを有効にすると、次の 2 種類の分析が実行されます。
* ** CodeQL 品質クエリは** 、 code scanning 分析を使用して実行され、コードの保守性、信頼性、またはスタイルに関する問題を特定します。 これは、既定のブランチに対するすべてのプル要求の変更されたコードで実行されます。 また、完全な既定のブランチでも定期的に実行されます。
-
**大規模言語モデル (LLM) を利用した分析** は、 CodeQLなどの決定論的エンジンでカバーされる内容を超えた潜在的な品質上の懸念事項に関する追加の分析情報を提供します。 これは、既定のブランチへの最近のプッシュで変更されたファイルに対して自動的に実行されます。 これらの結果は、 Code Qualityの **AI の結果** ダッシュボードのリポジトリの [ **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-shield" aria-label="shield" role="img"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg> Security and quality** ] タブに表示されます。
いずれかの種類の分析によって品質の問題が検出された場合、 Copilotの自動修正 は、開発者がレビューして適用できる関連する修正プログラムを提案します。
プル要求では、 Code Quality 結果は、 github-code-quality ボットによって残されたコメントとして表示されます。これには、可能な限り推奨される自動修正が含まれます。
最近のプッシュに対する LLM を利用した分析
LLM は、既定のブランチにプッシュするたびに、保守性、信頼性、その他の品質の問題について最近変更されたファイルを分析します。 Code Quality はコードを検査し、自然言語処理と機械学習の組み合わせを使用してフィードバックを提供します。
入力処理
コードの変更は、他の関連するコンテキスト情報と組み合わせてプロンプトを形成し、そのプロンプトは大規模な言語モデルに送信されます。
言語モデルの分析
プロンプトは、大量のテキストデータでトレーニングされたニューラルネットワークであるCopilot言語モデルを通じて渡されます。 言語モデルにより、入力プロンプトが分析されます。
応答の生成
言語モデルによって、入力プロンプトの分析に基づいた応答が生成されます。 この応答は、自然言語の提案とコードの提案の形式を取ることができます。
出力の形式
Code Qualityによって生成された応答がユーザーに直接表示され、特定のファイルの特定の行にリンクされたコード フィードバックが提供されます。
Code Qualityがコードの提案を提供している場合、提案は提案された変更として提示され、数回のクリックで適用できます。
GitHub Copilotの自動修正 提案
プルリクエストでは、Code Quality分析で検出された結果をcode scanningがLLMに入力します。 LLM が潜在的な修正プログラムを生成できる場合、 github-code-quality ボットは、提案された変更を含むコメントをプル要求に直接投稿します。
さらに、ユーザーはデフォルト・ブランチで結果の自動修正の生成を要求できます。
GitHub Copilotの自動修正の提案生成プロセスの詳細については、[AUTOTITLE を](/code-security/code-scanning/managing-code-scanning-alerts/responsible-use-autofix-code-scanning)参照してください。
のユース ケース GitHub Code Quality
GitHub Code Qualityの目的は次のとおりです。
- リポジトリ全体でコード品質の問題が発生するため、開発者とリポジトリ管理者はリスクの領域をすばやく特定し、優先順位を付け、報告できます。
- 既定のブランチのスキャンによって検出された結果と、既定のブランチへの最近のプッシュの結果に関する Copilotの自動修正 提案を提供することで、修復作業を高速化します。
- 開発者のコードに対して実用的なフィードバックをすばやく提供します。 pull request では、 Code Quality はベスト プラクティスに関する情報とコードベースの詳細と結果を組み合わせて、開発者に潜在的な修正を提案します。
GitHub Code Quality のパフォーマンス向上
プル要求で推奨される修正に関する問題や制限が発生した場合は、 github-code-quality ボットのコメントのサムアップ ボタンとサムダウン ボタンを使用してフィードバックを提供することをお勧めします。 これは、ツールを改善し、懸念や制限に対処するための GitHub に役立ちます。
GitHub Code Quality の制限事項
Code Qualityの LLM を利用した分析の制限事項
Code QualityLLM を利用した分析では、 GitHub Copilot コード レビューと同じ基になる言語モデルと分析エンジンが使用されます。 そのため、コード品質を分析するときに同様の制限を共有します。 主な考慮事項は次のとおりです。
- 不完全な検出
- 偽陽性
- コード提案の精度
- 潜在的なバイアス
これらの制限の詳細については、 GitHub Copilot コード レビューの責任ある使用 を参照してください。
GitHub Code Qualityの LLM を利用した分析によって得られた結果を常に確認して、コードベースに対する精度と適用性を確認する必要があります。
Copilotの自動修正 の制限事項
Copilotの自動修正
Code Qualityの結果では、すべての状況のすべての結果に対して修正プログラムを生成することはできません。 この機能はベスト エフォート ベースで動作し、常に成功する保証はありません。
Copilotの自動修正からの提案を確認するときは、変更を受け入れる前に、AI の制限を常に考慮し、必要に応じて変更を編集する必要があります。
Copilotの自動修正提案を適用する前に、常に慎重に見直し、検証する必要があります。
Copilotの自動修正の制限事項、Copilotの自動修正提案の品質、およびその制限を軽減する最善の方法の詳細については、[AUTOTITLE](/code-security/code-scanning/managing-code-scanning-alerts/responsible-use-autofix-code-scanning) を参照してください。
フィードバックを提供する
GitHub Code Qualityディスカッションで[](https://github.com/orgs/community/discussions/177488)に関するフィードバックを提供できます。
次のステップ
デフォルトのブランチで GitHub Code Quality の動作を確認し、コード品質の問題を表面化させ、リポジトリのコードの健全性を一目で把握できるように役立ちます。 「GitHub コード品質 のクイックスタートガイド」を参照してください。