Skip to main content

GitHub のコード品質

GitHub Code Quality マージの前に品質の問題をキャッチし、ワンクリックで Copilotを利用した修正プログラムをインラインで提供し、コード カバレッジを確認します。

この機能を使用できるユーザーについて

GitHub Team または GitHub Enterprise Cloud

GitHub Code Quality は、品質とカバレッジの問題についてコードを分析し、ワンクリックで適用できる Copilotを利用した修正プログラムを提供します。 次の 2 つの場所で実行されます。

  • プル要求では、コードがマージされる前に、結果がインライン コメントとして表示されます。 Cobertura XML カバレッジ レポートをアップロードした場合、カバレッジ メトリックは、変更によってカバレッジが維持または縮小されるかどうかを示します。 ルールセットを使用して品質とカバレッジのしきい値を適用して、基準を満たしていないプル要求をブロックして、新しい品質負債が蓄積されないようにすることができます。
  • 既定のブランチでは、スキャンによってコードベース全体の既存の品質負債が特定されます。自動修正を直接適用したり、 Copilot クラウドエージェント に割り当てて代わりに解決したりできます。

検出では、既知のアンチパターンの確定的な CodeQL ルールと、既存のルール セットの外部にある問題 ( CodeQL クエリでまだカバーされていない言語など) に対する AI を利用した分析が組み合わせられます。

ユースケース例

実際の GitHub Code Quality の例を次に示します。

開発者とチームの場合:

  • 開発者は、 信頼性または保守容易性の問題を導入するプル要求を開きます。 Code Quality は、問題を説明するコメントを投稿し、コードがマージされる前にワンクリック修正を提供します。 開発者はカバレッジ メトリックのレポートも表示され、プル要求が既定のブランチと比較してカバレッジを向上または減少させるかどうかを一目で確認できます。
  • チームは AI コーディング アシスタントを採用 し、生成されたコードが手書きのコードと同じバーを満たしていることを保証する必要があります。 AI を利用した分析では、ルールベースのクエリが記述されなかった問題がキャッチされますが、 CodeQL ルールは明確に定義されたアンチパターンをカバーします。
  • チームは、長年にわたって蓄積された品質負債を持つ大規模なコードベースを継承します。 Code Quality は既定のブランチをスキャンし、ダッシュボードに自動修正を含む結果を表示し、チームは修復作業を Copilot クラウドエージェント に割り当てて修正要求を自動的に開きます。

管理者と潜在顧客の場合:

  • エンジニアリング リーダーは、ルールセットを使用してカバレッジと品質のしきい値を設定します。 基準を満たしていないプルリクエストはマージできないようになっているため、品質やカバレッジに関する新たな負債は蓄積されません。
  • 管理者は、監査またはコンプライアンス レポートのためにリポジトリ間で可視性を必要とします。 Code Quality は、セキュリティの概要とセキュリティ ツールを通じてレポートされるため、組織全体の品質体制を一目で確認し、注意が必要なリポジトリを特定し、標準の GitHub 監査コントロールとポリシーを使用して改善メトリックを追跡できます。

可用性と課金

使用コストは、次の方法で決定されます。

  • アクティブなコミッター数に基づく、1ユーザー席あたりのライセンス料金。
  • AI を利用した検出と Copilotによる自動修正。 GitHub AI Credits を消費します ( Copilot ライセンスは必要ありません)。
  • セルフホステッド ランナーを使用しない場合、決定論的 GitHub Actions スキャンには CodeQL 分かかります。

コード品質の修復作業を Copilotに委任するなどのオプション機能には、 Copilot ライセンスが必要です。

詳細については、「GitHub Code Quality 請求」を参照してください。

サポートされている言語

Code Quality は、 CodeQLを使用して、次の言語のルールベースの分析を実行します。

  • C#
  • Go
  • Java
  • JavaScript
  • Python
  • Ruby
  • TypeScript

また、プル要求とリポジトリの最近変更されたコード (ルールベースのクエリでサポートされている言語以外の言語を含む) に対して、AI を利用した分析も実行します。

次のステップ