GitHub Code Quality は、品質とカバレッジの問題についてコードを分析し、ワンクリックで適用できる Copilotを利用した修正プログラムを提供します。 次の 2 つの場所で実行されます。
- プル要求では、 Code Quality は確定的な CodeQL ルールを使用して既知のアンチパターンを検出し、コードがマージされる前に結果をインライン コメントとして投稿します。 Cobertura XML カバレッジ レポートをアップロードした場合、ライン カバレッジ メトリックは、変更によってカバレッジが維持または縮小されるかどうかを示します。 ルールセットを使用して品質とカバレッジのしきい値を適用して、基準を満たしていないプル要求をブロックして、新しい品質負債が蓄積されないようにすることができます。
- 既定のブランチでは、ルールベースのスキャンによってコードベース全体の既存の品質負債が識別されます。自動修正を直接適用したり、 Copilot cloud agent に割り当てて代わりに解決したりできます。 AI を利用した分析は、最近変更されたファイルでも実行され、既存のルール セットの外部にある問題 ( CodeQL クエリではまだカバーされていない言語など) にフラグを設定します。
メモ
プル要求では、 Code Quality はルールベースの CodeQL 結果のみを投稿します。 プル要求の AI を利用したレビューも必要な場合は、 GitHub Copilot code review を個別に有効にすることができます。 「GitHub Copilotによるコードレビューについて」を参照してください。
ユースケース例
実際の GitHub Code Quality の例を次に示します。
開発者とチームの場合:
- 開発者は、 信頼性または保守容易性の問題を導入するプル要求を開きます。 Code Quality は、問題を説明するコメントを投稿し、コードがマージされる前にワンクリック修正を提供します。 開発者は、ライン カバレッジ メトリックのレポートも表示され、プル要求が既定のブランチと比較してカバレッジを向上または減少させるかどうかを一目で確認できます。
- チームは、長年にわたって蓄積された品質負債を持つ大規模なコードベースを継承します。 Code Quality は既定のブランチをスキャンし、ダッシュボードに自動修正を含む結果を表示し、チームは修復作業を Copilot cloud agent に割り当てて修正要求を自動的に開きます。
- チームは AI コーディング アシスタントを採用 し、生成されたコードが手書きのコードと同じバーを満たしていることを保証する必要があります。 AI を利用した分析では、ルール ベースのクエリが書き込まれなかった最近変更されたファイルの問題をキャッチしますが、 CodeQL ルールは明確に定義されたアンチパターンに対応します。
管理者と潜在顧客の場合:
- エンジニアリング リーダーは、ルールセットを使用してカバレッジと品質のしきい値を設定します。 基準を満たしていないプルリクエストはマージできないようになっているため、品質やカバレッジに関する新たな負債は蓄積されません。
- 管理者は、監査またはコンプライアンス レポートのためにリポジトリ間で可視性を必要とします。 Code Quality は、セキュリティの概要とセキュリティ ツールを通じてレポートします。これにより、組織全体の現在の品質体制を確認し、時間の経過と共にオープンな結果がどのように変化したかを確認し、注意が必要なリポジトリを特定できます。 「組織内でGitHubのコード品質結果を探索する」を参照してください。
可用性と課金
使用コストは、次の方法で決定されます。
- アクティブなコミッター数に基づく、1ユーザー席あたりのライセンス料金。
- Copilot を活用した、プルリクエスト内およびデフォルトブランチ上の検出結果に対する自動修正に加えて、最近マージされたコードに対する AI を活用した検出(これには GitHub AI Credits を使用し、Copilot ライセンスは不要です)。
-
セルフホスト型のランナーを使用しない場合、決定論的な GitHub Actions スキャンには CodeQL 分かかります。
コード品質の修復作業を Copilotに委任するなどのオプション機能には、 Copilot ライセンスが必要です。
詳細については、「GitHub Code Quality 請求」を参照してください。
サポートされている言語
Code Quality は、 CodeQLを使用して、次の言語のルールベースの分析を実行します。
- C#
- Go
- Java
- JavaScript
- Python
- Ruby
- TypeScript
Code Quality また、ルールベースのクエリでサポートされている言語以外の言語を含め、リポジトリの最近変更されたコードに対して AI を利用した分析も実行します。
次のステップ
- pull request でコード品質の結果を修正する方法について説明します。 「コード品質の問題が既定のブランチに到達するのを防ぐ」を参照してください。