【 業務改善 】CodeRabbit

## 書いた経緯
PRの業務改善に使用したいと思い、公式Docをベースにまとめました
個人用のメモですが、もしも導入を考えている方がいれば参考になると嬉しいです。

## CodeRabbitとは
AIを活用してコードレビューを自動化して品質向上を支援するプラットフォーム。

### 特徴
#### AIによる自動コードレビュー
AI技術を用いて提出されたコードのレビューを自動で行、バグの早期発見・コーディングルールの遵・、コードの可読性と保守性の向上を行える
#### カスタマイズ可能なレビュールール
.coderabbit.yaml設定ファイルを通じて、プロジェクト固有のニーズに合わせたレビュールールを簡単にカスタマイズできる。
#### 効率的なコラボレーション
開発チーム内のコミュニケーションとコラボレーションが促進されている。レビュー過程でのフィードバックは明確で具体的であり、開発者が迅速に対応し、改善を図れる。
#### 多言語サポート
複数のプログラミング言語に対応しており、さまざまな種類のプロジェクトに適用可能。レビューフィードバックは、設定に応じた言語で提供されている

### 利点
以上の特徴から「品質向上・時間節約・学習と成長」に最適で

## configファイルの設定
下記は公式に掲載されているサンプルソース

```json:.coderabbit.yaml
language: "ja"
early_access: false
reviews:
    request_changes_workflow: false
    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"
        drafts: false
        base_branches:
            - "develop"
            - "feat/.*"
chat:
    auto_reply: true
```
[引用元](URL "https://docs.coderabbit.ai/guides/customize-coderabbit#1-customize-coderabbit-using-a-yaml-file")

### 設定ファイル詳細
#### version
設定ファイルのバージョンを指定
#### language
レビューの言語をISO言語コードで設定
#### early_access
早期アクセスプログラムに参加するかどうかを設定
CodeRabbitの最先端の機能を試用し、開発プロセスにおける生産性向上や品質向上に貢献できる

【 詳細 】
早期アクセスプログラムに参加するかどうかを決定を決めるもの。
一般公開前の新機能や改善された機能に先行してアクセスできるプログラム。
利用することで、ユーザーは最新の機能を試用し、フィードバックを提供することが可能になる。
( 利点 )
・開発中の新機能や改善された機能に先行してアクセスできるため、最新の技術トレンドを追いかけることができる。
・早期アクセスプログラムに参加することで、新機能に関するフィードバックを直接開発チームに提供することが可能
・新しい機能をいち早く取り入れることで、他の競合よりも先に技術的な利点を得る
(注意点)
開発中の機能が含まれるため、完全に安定していない可能性がある。
そのため、本番環境での使用前には十分なテストを行うことが推奨される。

#### reviews
コードレビューの設定を定義

#### request_changes_workflow
レビューで変更を要求するワークフローを有効にするかどうかの設定
レビュー中に問題が見つかった場合、CodeRabbitが自動的に修正を要求するコメントを生成し、プルリクエストのステータスを「変更要求」に設定することを意味する

#### high_level_summary
変更のハイレベルサマリーを生成するかどうかの設定
レビューの主要なポイントや提案された修正の概要が簡潔にまとめられ、開発者はレビューの結果を素早く把握できる

#### poem
レビューのステータスを表示する設定

#### path_filters
レビューから除外または含めるファイルパターンを指定
レビューから特定のファイルやディレクトリを除外するか、特定のファイルやディレクトリのみをレビュー対象に含めるルールを指定。
globパターンは、ワイルドカード文字（*や**など）を使用して、ファイルパスのマッチングルールを表現。

#### path_instructions
特定のファイルパスに基づいた追加のレビューガイドラインを提供
プロジェクト内の特定のファイルタイプやディレクトリに対して、特別な注意を払うべき点や特定のレビュー基準を指定することができる。

```json:.coderabbit.yaml
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."
```

上記の例では

**/*.jsにマッチするすべてのJavaScriptファイルに対して、Google JavaScriptスタイルガイドに準拠しているかどうかをレビューし、逸脱している箇所を強調するよう指示

tests/**/*にマッチするテストディレクトリ内のファイルに対して、Mochaテスティングフレームワークを使用したユニットテストコードを評価し、ベストプラクティスに準拠しているか、テストの説明が各テストの目的を明確にしているかを確認するよう指示する


#### auto_review
自動コードレビューの設定を管理
ボットがユーザーからのメッセージに自動で返信するかどうかを制御

#### chat
CodeRabbitのボットの会話における振る舞いを定義
【 詳細 】
主にボットが開発者やチームメンバーからの質問やコメントにどのように反応するかを制御。

## 最後に
以上調べてみました。
path_instructionsで設定を記載できるのはありがたい!!