CodeRabbitとはじめる個人開発

[CodeRabbit](https://www.coderabbit.ai/ja)アドボケイトのアツシです。CodeRabbitはAI（LLM）を使ったコードレビューサービスになります。静的なLintツールよりも深いインサイトが得られたり、ベストプラクティスの提案してくれるのが特徴です。

実際、どんなレビューをしてくれるのか気になる人も多いと思うので、とあるプロジェクト（個人で開発しているSDK）を通して、CodeRabbitを使った開発体験を紹介します。

## 対象のリポジトリ

今回の対象は以下のリポジトリです。DOKというさくらインターネットが提供するGPUコンテナサービスをJavaScriptから操作するための野良SDKです。

[goofmint/dok\-js: DOK JavaScript SDK](https://github.com/goofmint/dok-js)

完全に個人で開発していますが、一緒にCodeRabbitを利用しています。

## コードレビューの流れ

まず、CodeRabbitにてリポジトリを登録します。

![FireShot Capture 679 - CodeRabbit_ AI-powered Code Reviews - app.coderabbit.ai.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/9ec63578-2b60-4981-98b7-98fccbc6e7be.jpeg)

設定は割と多いので、必要に応じて変更してください。Review LanguageはJapaneseにしています。後、最近追加された `Web Search` 設定も有効にしています。

![FireShot Capture 680 - CodeRabbit_ AI-powered Code Reviews - app.coderabbit.ai.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/31e6b920-cc0e-4d6c-8cf3-6846cf1cc128.jpeg)

リポジトリを追加したら、後はPRを作成するだけです。CodeRabbitが自動で検知し、コードレビューを開始します。

レビューはだいたい5分くらいかかるかと思います。これはリポジトリのサイズや、変更の内容によって変わります。大きな変更を行った場合は、レビューが長くなることもあります。

## レビュー中

レビューが開始されると、まずサマリーが追加されます。新機能やバグフィックス、ドキュメント、テストなどの項目に分かれてアウトラインが出力されます。

![FireShot Capture 681 - feat_ Create Task by goofmint · Pull Request #4 · goofmint_dok-js_ - github.com.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/cec7cc24-8771-4214-b017-7e3b79103236.jpeg)


## レビュー結果

まずウォークスルーが出ます。これは、変更内容全体のサマリーです。どんな変更が行われたのか、どんな影響があるのかを説明してくれます。また、ファイル毎にどういった変更があるのか、概要が表示されます。

![FireShot Capture 682 - feat_ Create Task by goofmint · Pull Request #4 · goofmint_dok-js_ - github.com.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/fee4e47d-82e8-4004-b4a1-51567f639d61.jpeg)

意外と使えるのが、シーケンス図です。自分が行った修正について正しく把握されているのか、簡単に確認できます。

![FireShot Capture 683 - feat_ Create Task by goofmint · Pull Request #4 · goofmint_dok-js_ - github.com.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/19652ad3-4150-47cb-8c31-84b7c8d3c524.jpeg)


ポエムも書いてくれます。これはレビューには**まったく**役に立ちませんが、面白いので個人的には有効にしています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/d9ec7bb7-c407-48bc-9825-434c2629735e.png)


ポエムいらないという方は、設定のPoemを無効にしてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/7e3a5e8b-0e0d-45ef-9b6f-30dc0496d260.png)


### レビュー内容

レビュー内容は、以下のように表示されます。実際に修正を反映して、再度プッシュしたり、不要な場合は無視してください。割とベストプラクティスに沿っているので、参考になるかと思います。

![FireShot Capture 685 - feat_ Create Task by goofmint · Pull Request #4 · goofmint_dok-js_ - github.com.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/fb09260d-0b16-4da1-8a20-304e8835ae4f.jpeg)

### Docstrings生成機能

最近追加された機能で、Docstrings生成機能があります。これはメソッドなどに対して、ドキュメント生成用のDocstringsを生成してくれる機能です。これはサブのPRとして追加されるので、内容を確認してマージするだけで使えます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/f4ca2eb8-d443-4e7a-9d82-e23f50827e95.png)


## チャット

`@coderabbitai` をメンションして、レビュー内容について確認したり、レビューの再実行などを行えます（通常は自動で開始されます）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/bfd0529a-0aa4-4acf-b67a-b7eab7d25acf.png)


## マージ

指摘事項がなくなったら、マージしてPRを削除します。これでレビューは完了です。

## 設定

CodeRabbitの設定はWebサイトの他、ファイルベースでも可能です。 `.coderabbit.yml` というファイルをリポジトリのルートに配置することで、設定が可能です。

```yaml
language: "ja-JP"
early_access: false
reviews:
  profile: "chill"
  request_changes_workflow: false
  high_level_summary: true
  poem: true
  review_status: true
  collapse_walkthrough: false
  auto_review:
    enabled: true
    drafts: false
chat:
  auto_reply: true
```

設定項目は [Configure CodeRabbit \| CodeRabbit](https://docs.coderabbit.ai/getting-started/configure-coderabbit/) や [coderabbitai/awesome\-coderabbit: Official awesome\-list of CodeRabbit Starters & Resources ⚡️](https://github.com/coderabbitai/awesome-coderabbit) を参考にしてください。

## 体験として

個人で開発を行っていると、自分のコードが常に正しいものとして考えがちです。他の人にレビューしてもらう機会は少ないので、抜け漏れが発生してしまう可能性があります。テストは書きますが、それでもテスト漏れが発生してしまうこともしばしばあります。

そこで、第三者の目としてCodeRabbitが活用できます。小さなプロダクトであれば、そこまでビジネスロジックや業務知識的なものは必要ないので、ベストプラクティスによるレビューで十分と言えそうです。

## まとめ

CodeRabbitを個人開発のバディにすると、自分ではつい見逃してしまうような部分を指摘してくれます。品質を高める最後の一歩として、CodeRabbitをぜひ試してみてください。

[AI Code Reviews \| CodeRabbit \| Try for Free](https://www.coderabbit.ai/ja)