🤖

What The Diff を使って AI にレビューを手伝ってもらう

2022/12/26に公開

what the diff とは?

https://whatthediff.ai/
Github と連携することで以下のような事が出来るサービスです

  • 修正内容の提案を文章から自動生成
  • コミット内容から変更点のサマリを生成
  • 1週間の変更点をまとめて Slack に送信

類似サービスとして Github も同様のサービスを開発中のようです
https://githubnext.com/projects/ai-for-pull-requests/

設定

リポジトリへの設定

Github 経由で登録できます
What The Diff(以下 WTD)を使用するリポジトリも選択可能です

今回はサンプル用のリポジトリを選択しました
https://github.com/sugawani/wtd-sample

登録完了後、アプリのダッシュボードが表示されるので Enable で有効化

有効化したリポジトリは各種個別設定が可能です

大まかに以下の設定内容です

  • PR 一覧(ここから変更点のサマリを生成することも出来ます)
  • WTD を実行するタイミング、実行対象外とする条件
  • 1週間の変更点を通知する Slack のチャンネル(現時点では有料プラン限定でした)

機能

コミットから変更サマリを生成

全く情報を持たないコミットメッセージで PR を作成してみましょう

$ git log --oneline
a5d4c91 (HEAD -> feat/hoge, origin/feat/hoge) wip
f6bca37 wip
4d29011 wip
cf4df16 (origin/master, master) create next-app

もちろん PR にも何も情報はありません
https://github.com/sugawani/wtd-sample/pull/3

PR の作成をトリガーに WTD がサマリをコメントしてくれました

Changed the title of index.tsx
Added a function to sum two numbers in index.tsx
Increased padding from 6rem to 8rem in Home module css file

修正内容は以下なので問題なくサマリが作成できています

  1. index のタイトルを変更
  2. 2つの引数を足し算する関数の作成
  3. padding を 6rem -> 8rem に変更

変更提案を文章から作成

提案したい行を指定し /wtd とコメントすることで WTD が適切なコードを提案してくれます
https://github.com/sugawani/wtd-sample/pull/3/files#r1057183191

(今回のコードは適切だったようです)

/wtd に続けて具体的な内容をコメントすることで、コメント内容から提案も行ってくれます
https://github.com/sugawani/wtd-sample/pull/3/files#r1057183927

期待通りのコードを提案してくれました

感想

雑なコミットからサマリを生成する機能は確かに便利ですが、コミットログとしては不適切なので WTD が生成したサマリを元にコミットメッセージを修正するなど、作業の補助として使うのがよさそうです
変更提案の作成は議論のベースとしてサンプルコードをサクッと作れるので活用できるシーンもありそうです

今後 CI への組み込みや日本語対応等が進むと活用の幅が広がりそうですね

EGSTOCK,Inc.

Discussion