一人開発をしている時に書いているコードに問題がないか気になったことはありませんか?
チーム開発しているときに、PRレビューが遅すぎて、モチベーションが下がったことはありませんか?
PRレビューの概要を作成するのが面倒だと思ったことはありませんか?
PRレビューでタイポなど基本的なことの指摘が面倒ではありませんか?
私は全部あります。
そこで今流行りの生成AIを利用したPRレビューをやろうと思い、感想を記事にしました。
Bedrock × Claude3 で自動レビューする
下記の記事の内容をほとんどそのまま利用しました。
https://tmokmss.hatenablog.com/entry/introducing_bedrock_ai_review
なお、いくつか自分用にカスタマイズするため、コードやyamlを修正しました。
具体的には以下を変更しています。
- OpenAPIなどを利用し自動生成するコードをレビューから除外する
- developブランチがソースブランチの場合はレビューしない
結果
PRの概要
複数の目的があるプルリク(そもそも1つの目的にしろというのはおいといて)でもそれぞれの意図を読み取ってサマライズしてくれています。
特に、「新機能」「機能改善」「リファクタリング」のように内容を分類してくれているのでとても分かりやすいです。
(私が書いているように見えますが、すべて自動で生成されています(generatedとなってます))
ウォークスルー
変更されたファイルの一覧とそれぞれの内容のサマリーがまとめられています。
これも驚くほど、精度高くまとまってました。すごい。。。
コードコメント
すべて「コメント」として書かれます。LGTM のようなあまり意味のないコメントから、コードに対する肯定的なコメント(「適切です」のようなコメント)、改善提案のコメントなどいくつかのコメントの種類があるようです。
人によって意見の分かれるところではありますが、改善提案以外のコメントはちょっと邪魔かなと思いました。
(思っていたよりもコメントがたくさん書かれたため)
この点はAIレビュー自体のコードを変更し、対応するのが良さそうです。
一方で、簡単なタイポやエラー処理の対応漏れなどはかなり有用そうでした。
感想
rails、vuejs、reactjs、python、golang のプロジェクトで試してみましたが、かなり良いレビューがされていました。
特に単純なミスは自動PRレビューを使うことで、人に指摘される前に修正できそうです。
個人的にはサマリーが分かりやすくまとまっており、細かなレビューを行う前に全体を把握できるため、便利でした。
チームの反応も良かったため、このまま利用する予定です。