BEACHSIDE BLOG

Azure と GitHub と C# が好きなエンジニアの個人メモ ( ・ㅂ・)و ̑̑

GitHub の新機能 Code Quality を動かして試す🐤

2025年10月28日、29日にサンフランシスコで開催された GitHub Universe 2025 で Public preview で登場した新機能 "GitHub Code Quality" についてまとめてみました。 現地でスピーカーの方に聞いた GitHub Changelog やドキュメントで書かれてない内容も多少含んでいますが、2025年10月30日時点で動かした内容で変わるかもしれない点はご注意ください

GitHub Code Quality の概要

  • Code Quality は、デフォルトブランチへの pull request 時と main ブランチへのマージ時に Code Quality のスキャンを実行してくれる機能。
  • Code Quality のスキャンは、CodeQL ベースの品質ルールにより保守性と信頼性の問題を検出し、スコアを出してくれる。
    • スコアは repo の Insights → Code Quality → Standard findings から見れる。
  • 現時点の対応言語は Java, C#, Python, JavaScript, Go, Ruby。
  • PR の reviewer に "copilot-code-quality" ってユーザーがアサインされる。
  • public preview 中は Code quality のスキャンのコストはかからない (今後どうなるかは教えてくくれなかった...) が、Code Quality のスキャンの実行インフラの GitHub Actions のコストは発生する。

現時点では提供されていないが今後提供予定の機能は以下。

  • Organization level でのダッシュボードでコードの品質管理。
  • テストカバレッジのメトリクスによる品質データの提供。
  • 解析結果を補完するために、 PR に対して Copilot での推奨事項の提案

設定を有効化する

前提として GitHub Actions の有効になっている必要あり。 2025年10月30日時点での設定の有効化の方法は、repo の Settings → Code Quality より "Enable code quality" をクリック。

有効化すると repo 内の言語を自動検出してとりあえずスキャンを実行してくれるあたりは CodeQL の初期セットアップと一緒な感じ。

GitHub Actions を確認すると、ログが見れる。設定有効後に動くと書かれていた通り普通に CodeQL が動いてますね。ちなみに検証した repo はもちろん Advanced Security の2機能は無効にしています。

動作を試す

引き続き Advanced Security の2機能は無効の repo にて動作確認してみます。

main ブランチへ直接 merge してみる

CodeQL でなんか検出されるコードを main に直接 push し、GitHub の Actions のログを見ると2回目の Code Quality が動いたことが確認できます。

次に repo 上部の Security ⇨ Code quality 配下の Standard findings をみてみます。問題がある箇所がファイルでグループ化されてます。

上部の "Maintainability", "Reliability" がスコアになります。スコアの算出方法は以下のドキュメントに記載があります。

次は、左メニューの "AI findings" をみてみましょう。 この画面からは、ファイルを選択して "Assign to Copilot" または "Open Pull Request" のアクションが選択できます。

このファイルをクリックすると、検出した内容の詳細と変更の提案が出ます。ここからも "Assign to Copilot" または "Open Pull Request" のアクションが選択できます。

AI findings: Assign to Copilot を実行

ファイルを選択して "Assign to Copilot" をクリックすると、Draft の PR が作られて、私 (この指示を出したユーザー) がアサインされました。

このアクションにより GitHub Actions が実行されます。

  • PR が作成されたことによる Code Quality によるチェック
  • Coding agent による修正
  • Coding agent の修正の commit に応じて再度 Code Quality の実行 (commit の回数分動いてる感じ)。

Coding agent 完了後、Pull request の draft がはずれ、Reviewer が copilot から私にかわりになりました。
Draft 時の PR の description はタスクのリストが書かれていましたが、ドラフトを外す際に description の内容が、修正の summary に書き換えられています。

あとは review を approve して PR をこれで問題なければ PR を merge して Code Quality の対応完了となります。

repo 上部の Security ⇨ Code quality 配下の Standard findings を確認するとスコアが上がりました。

AI findings: Open Pull Request を実行

main に直接へんなコードを直接 push し、repo の Security ⇨ AI findings でこんな感じにしました。

"Open Pull Request" をしてクリックすると、以下の様にポップアップが表示さ3択で次のアクションが選択できます。ここでは "Open a pull request" を選んで "Commit changes" をクリックしてみます。

動作としては、AI findings で copilot autofix による提案がそのまま commit されて draft PR を作成するのみにとどまります。

この draft のタイミングでも Code quality の GitHub Actions は動いてます。 先ほど coding agent が作業してくれた部分はなく、draft の PR から draft を外してそのあとの作業を進めるのは自分でやる感じです。

こっちの方がシンプルですね。PR を merge すると改めて Code quality の GitHub Actions が動き、最後に repo 上部メニューの Security ⇨ Code quality 配下の Standard findings を確認って感じで作業完了な流れですね。

main への Pull request を作成してみる

前述は main へ直接 push 後の動作でしたので、今回はダメなコードを作って Pull request を自分で作成するパターンを試してみます。

PR を作ると、とりあえず Code quality の GitHub Actions がトリガーされ、処理が終わると問題が検出され、reviewer に github-code-quality[bot] がアサインされて修正の提案を出してきます。

初の気挙動になんかココロオドル楽しさを感じてます。

この時点では、main ブランチにコードが取り込まれていないので repo 上部メニューの Security ⇨ Code quality 配下の Standard findings を確認しても今回の内容はスコアに反映されていません。

Pull request の commit suggestion を受け入れると、改めて Code quality の GitHub Actions が動作し、問題が解決することで、Pull request をマージする流れって感じですね。

終わりに

この機能により現時点では Advanced Security のライセンスなしに、CodeQL のチェックができるようになり、Security 対策のシフトレフトがより捗る感じですね。

今はまだリリースされてない機能も期待できるので、非常に楽しみな機能です。

参考