0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Github Code Qualityでコード品質向上!

Posted at

概要

またもや面白そうな機能がGithubからpublic previewで公開されました。その名もGitHub Code Qualityというもの。

リポジトリ内のコンテキストを把握しつつ、コードの品質を高めることができるサービスのよう。どんなことができそうか見ていきましょう!

GitHub Code Qualityとは

公式の説明は以下の通り。

GitHub Code Quality helps you ensure your codebase is reliable, maintainable, and efficient. Whether you're building a new feature, reducing technical debt, or reporting on repository health, Code Quality provides actionable insights and automated fixes so you can improve and maintain the code health of your repository efficiently.

特定のリポジトリに対し、信頼性やメンテナンス性の低い、技術的負債のある部分を特定してくれ、その内容の修正までをCopilotでやってくれるもののよう。

ちなみに現状での対応言語は以下です。

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

主な機能

コードの分析

image.png

こんな形で、今のリポジトリ内のコードのメンテナンス性、信頼性のスコアを計測し、適切な形の提案をしてくれます。
下のRulesには、特定のルールに影響のあるファイルが一覧で見られるようになっています。

コード分析結果の自動修正

上記の分析結果から、特定の項目を自動で修正するPRの作成が可能です。
分析結果の項目から「Generate fix」→「Open pull Request」ボタンを押下すれば、勝手にPRを作り、提案された修正内容がコミットされた状態にできるそうです。
あとは人間の目でコードレビューして、そのPRをマージすれば完了!

PRの自動スキャン

PRをOpenにしたタイミングで、そのPR内での変更内容に対しての品質的な問題がないかスキャンをして、PRのコメントとしてスキャン結果を残してくれます。
それぞれのコメントにはラベル(Error, Warning, Noteなど)がついており、また修正内容の提案も表示されるので、簡単に修正可能です。

また、修正をpushするたびに再度スキャンされ、品質的な問題があればコメントをしてくれるそうです。

直近のマージ内容分析

デフォルトブランチに直近マージされた内容について、以下二つの方法で分析してくれます。

  • CodeQL Rulesベースの分析
  • LLMによるコンテキストを考慮した分析(最大5ファイル)

image.png

分析結果は上記のように一覧になり、これを修正するためのPRや修正をCopilotにお任せすることも可能です。

感想

ひとつひとつの機能自体は新しいものでない気もしますが、統合的にコードの品質を高めるためには十分使えそうだなと思います。
静的解析も組み合わせ、問題がありそうな部分をコンテキスト横断で一覧にしてみてくれるので、修正漏れなどは少なくなりそう。ルールベースで見ることのできる部分はCodeQLで、ルールベース以上の潜在的な問題はAIで、それぞれ検出の形になっているのもポイントかも。

こういうコード品質的な部分、どうしても優先度的には高い部分になり辛い、後回しにしがちな部分なので、継続的に高めていくためにこういった仕組みとして落とし込めると便利だなと思いました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?