📚

実践!CodeRabbitの簡単導入で始める効率的プルリクエストレビュー

2025/02/08に公開

2024年末あたりからAIエージェントの話題で持ちきりですが、今後はAIツールを使いこなすスキルも必要だとひしひしと感じています
そこで最近個人開発の開発プロセスにCodeRabbitを導入してみたので使用感などお伝えできればと思います!

CodeRabbitとは?

CodeRabbitは、AIを活用してプルリクエストの内容を自動でチェックしてくれる、AI支援ツールです
GitHubでPRを作成すると自動で動作して、変更点を解析して分かりやすいレビューコメントを生成してくれます
効率的なコードレビューを実現でき、開発プロセスのスムーズな運用に繋げることができます

CodeRabbitの導入手順

CodeRabbitとリポジトリの連携

CodeRabbitの公式サイトにアクセスし、アカウントを作成します
画面右上のGet a free trialからいけます

CodeRabbitを導入したいリポジトリとの連携をします
画面右上Add Repositoriesから導入したいリポジトリを選択します

GitHubの設定画面に移動されます
Repository accessからリポジトリを選択して連携させます

OpenAI API KEYの取得

OpenAIのウェブサイトにてAPIキーを取得します

連携したいGitHubリポジトリ画面に移り、
Settings > Securet and variables > Actions > Repository securets
からOPENAI_API_KEYという名前でシークレットキーを作成し、ここに取得したAPIキーを登録します
GitHubリポジトリの設定画面

.github/workflows/code-rabbit.yamlの作成

coderabbit公式ドキュメント に記載の手順に従い、ワークフローファイルを.github/workflows/code-rabbit.yamlとして作成します

name: MyRabbitReview

permissions:
  contents: read
  pull-requests: write

on:
  pull_request:
    types: [opened, synchronize]

concurrency:
  group: ${{ github.repository }}-${{ github.event.number }}-myrabbit
  cancel-in-progress: true

jobs:
  my-review-job:
    runs-on: ubuntu-latest
    steps:
      - name: Run AI PR Review
        uses: coderabbitai/ai-pr-reviewer@latest
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
        with:
          openai_light_model: o1
          openai_heavy_model: o1
          language: ja-JP
          summarize: |
            このPull Requestについて、以下のMarkdown形式で内容をまとめてください:

            ## 概要
            <!-- 全体の変更点を簡潔に表現。 -->

            ## 変更点
            <!-- ファイルやディレクトリ単位などで分けてもOK -->

openai_light_model:openai_heavy_model:
使用するモデルの設定ができます
こちらで使いたいモデルを確認して設定可能

summarize:
出力形式をMarkdownで自分好みにカスタマイズできます

基本的な使い方

Pull Requestを作成・更新した際にGitHub Actionsが自動的にトリガーされ、CodeRabbitがPRのサマリーを書いてくれたり、PRの内容をレビューしてコメントをしてくれます

Committable suggestionから変更の提案をそのままコミットすることもできます

参考文献

https://www.coderabbit.ai/

https://platform.openai.com/docs/models

Discussion