メモ
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 の結果** ダッシュボードのリポジトリの [セキュリティ] タブに表示されます。
いずれかの種類の分析によって品質の問題が検出されると、 Copilotの自動修正 は、開発者がレビューおよび適用できる関連する修正プログラムを提案します。
pull requests では、Code Quality の結果は、github-code-quality ボットによって残されたコメントとして表示されます。これには、可能な場合に推奨される自動修正が含まれます。
最近のプッシュに対する LLM を利用した分析
LLM は、既定のブランチにプッシュするたびに、保守性、信頼性、その他の品質の問題について最近変更されたファイルを分析します。 Code Quality は、自然言語処理と機械学習を組み合わせてコードを検査し、フィードバックを提供します。
入力処理
コードの変更は、他の関連するコンテキスト情報と組み合わせてプロンプトを形成し、そのプロンプトは大規模な言語モデルに送信されます。
言語モデルの分析
その後、プロンプトは、大量のテキスト データでトレーニングされたニューラル ネットワークである Copilot 言語モデルを通過します。 言語モデルにより、入力プロンプトが分析されます。
応答の生成
言語モデルによって、入力プロンプトの分析に基づいた応答が生成されます。 この応答は、自然言語の提案とコードの提案の形式を取ることができます。
出力の形式
Code Quality によって生成された応答がユーザーに直接表示され、特定のファイルの特定の行にリンクされたコード フィードバックが提供されます。 Code Quality がコードの提案を提供している場合、提案は提案された変更として提示されます。これは数回のクリックで適用できます。
GitHub Copilotの自動修正 サジェスト
pull requests では、Code Quality の結果が code scanning 分析によって LLM に送信されます。 LLM が潜在的な修正プログラムを生成できる場合、 github-code-quality ボットは、提案された変更を含むコメントをプル要求に直接投稿します。
さらに、ユーザーはデフォルト・ブランチで結果の自動修正の生成を要求できます。
GitHub Copilotの自動修正 の提案生成プロセスの詳細については、 AUTOTITLE を参照してください。
GitHub Code Quality の利用例
GitHub Code Quality の目的は次のとおりです。
- リポジトリ全体でコード品質の問題が発生するため、開発者とリポジトリ管理者はリスクの領域をすばやく特定し、優先順位を付け、報告できます。
- 既定のブランチのスキャンで見つかった結果と、既定のブランチへの最近のプッシュの結果に関する提案を Copilotの自動修正 に提供することで、修復作業を高速化します。
- 開発者のコードに対して実用的なフィードバックをすばやく提供します。 プル要求では、Code Quality は、ベスト プラクティスに関する情報とコードベースの詳細と結果を組み合わせて、開発者に潜在的な修正を提案します。
GitHub Code Quality の性能向上
プル要求で推奨される修正に関する問題や制限が発生した場合は、 github-code-quality ボットのコメントのサムアップ ボタンとサムダウン ボタンを使用してフィードバックを提供することをお勧めします。 これは{ data variables.product.github %}% ツールを改善し、懸念事項や制限事項に対処するのに役立ちます。
GitHub Code Quality の制限事項
Code Qualityの LLM を利用した分析の制限事項
Code QualityのLLMを利用した分析では、GitHub Copilot コード レビューと同じ基になる言語モデルと分析エンジンが使用されます。 そのため、コード品質を分析するときに同様の制限を共有します。 主な考慮事項は次のとおりです。
- 不完全な検出
- 偽陽性
- コード提案の精度
- 潜在的なバイアス
これらの制限の詳細については、 GitHub Copilot コード レビューの責任ある使用 を参照してください。
GitHub Code Qualityの LLM を利用した分析によって得られた結果を常に確認して、コードベースに対する精度と適用性を確認する必要があります。
Copilotの自動修正 の制限事項
Code Quality の検出結果に対する Copilotの自動修正 は、すべての検出に対して必ずしも修正を生成できるわけではありません。 この機能はベスト エフォート ベースで動作し、常に成功する保証はありません。
Copilotの自動修正 からの提案を確認する際は、AI の制限を常に考慮し、変更を採用する前に必要に応じて編集してください。 Copilotの自動修正 の提案を適用する前に、常に慎重に確認してください。
Copilotの自動修正 の制限事項、Copilotの自動修正 の提案内容の品質、そしてその制限を克服するための最良の方法についての詳細は、コード スキャンにおける Copilot Autofix の責任ある使用 を参照してください。
フィードバックを提供する
[コミュニティ ディスカッション](https://github.com/orgs/community/discussions/177488)で GitHub Code Quality に関するフィードバックを提供できます。
次のステップ
GitHub Code Quality が既定のブランチでどのように機能するかを確認して、コード品質の問題を確認し、リポジトリのコードの正常性をひとめで把握できるようにします。 「GitHub コード品質 のクイックスタートガイド」を参照してください。