💬

【AI自動レビューシステム】CodeRabbitを1ヶ月運用してみた感想

2023/12/01に公開

はじめに

初めまして、現在エンジニアをしながら起業をしてサービスを開発中の橋田至です。

https://twitter.com/dall_develop

私は今Swappyという同人誌のフリマサイトを開発中です。
初めは一人で開発をしていたのですが、開発すべき機能が多すぎることに気づき、共同開発者を募集しました。

その結果、現在約10名ほどのメンバーがアクティブに開発しています。

レビュワーの負担の重さ

現在はレビュワーを3人設定しており、LGTM的な感じでレビューしています。
しかし、開発当初は私一人で全てのPRをレビューしており、コードの細かい部分まで確認することができず、ほぼ動作確認のみ行うという状況でした。

また、console.logの消し忘れや基本的な指摘をするのも心理的コストもかかり、なかなか大変だと感じていました。

CodeRabbitとかいうAIがレビューしてくれるサービス

上記の課題を解決するためにCodeRabbitというAIレビューサービスを導入しました。
こちらは無料で使える上に、OPEN AI API KEYを設定するだけで使える非常に便利なサービスです。

https://zenn.dev/minedia/articles/7928ef7545b393

https://coderabbit.ai/

使用感

ウォークスルー例

レビュー例

サマリーを作ってくれたり、エラーハンドリングの指摘などをしてくれるため、個人的には最低限のコード品質の担保がかなりされると感じており、素晴らしいサービスだと思っています。

ただ、時々へんな指摘をしてくるので、その際はプロンプトを修正する必要があります。

え、私のAPI料金高すぎ!?

OPEN AI APIはGPT-4-turboを使用しました。

1ヶ月運用した結果がこちらです。

$54という値段が高いと感じるか、安いと感じるかは人それぞれですが、自己資金のみで開発している私では毎月8000円近く?かかるのは結構きついです、、、

1ヶ月断食しないといけなくなります。

このままではご飯が食べれなくなってしまうので、不要な時は動かないように設定を追加する必要があると感じました。

設定を修正しよう!

CodeRabbitはアプリとして動く設定とactionとして動かす設定があるようです。

アプリとして動かしている場合は以下の設定を行う。

https://coderabbit.ai/docs/get-started/customize-coderabbit

ルートディレクトリ直下に以下のファイルを作成

.coderabbit.yaml

language: "jp"
early_access: false
reviews:
  high_level_summary: true
  poem: true
  review_status: true
  collapse_walkthrough: false
  path_filters:
    - "!**/.xml"
  path_instructions:
    - path: "**.js"
      instructions: "Review the JavaScript code for conformity with the Google JavaScript style guide, highlighting any deviations."
    - path: "tests/**.*"
      instructions: |
        "Assess the unit test code employing the Mocha testing framework. Confirm that:
        - The tests adhere to Mocha's established best practices.
        - Test descriptions are sufficiently detailed to clarify the purpose of each test."
  auto_review:
    enabled: true
    ignore_title_keywords:
      - "WIP"
      - "DO NOT MERGE"
      - "DRAFT"
      - "NOAI"
    drafts: false
    base_branches:
      - "develop"
      - "feat/*"
chat:
  auto_reply: false

actionsとして動かしている場合は以下のコードを追記

.github/workflows/ai-review.yaml


 && !contains(github.event.pull_request.title, 'WIP') && !contains(github.event.pull_request.title, 'DO NOT MERGE'))
 

最後に

最後に
その他にも「こうすれば良いよ!」などの設定などありましたらお声かけいただけると嬉しいです!

また、Swappyの開発者は随時募集しておりますので、気軽にDMください!!

https://twitter.com/dall_develop

https://www.notion.so/5948c0f2bd5e44548fd6e1f814b137d0?pvs=4

Discussion