CodeRabbitはAIコードレビューサービスです。GitHubやGitLabと連携して、プルリクエスト(PR)に対して自動的にレビューを実行します。
設定はダッシュボードでも可能ですが、各リポジトリに対して .coderabbit.yml
ファイルを配置して設定も可能です。設定はAdd a configuration file | CodeRabbitにある通りですが、英語なので分かりづらいかも知れません。
そこで、2025年05月現在可能な設定項目について、日本語でまとめておきます。設定の参考にしてください。
設定できる内容について
設定できる項目はこちらのJSONスキーマでも確認できます。 definitions.schema.properties
以下がYAMLのキーになります。
language
文字列で指定します。ISOコード形式で指定します。日本語の場合は ja
または ja-JP
としてください。デフォルトは en-US
です。
tone_instructions
レビューのトーンを指定します(最大250文字)。デフォルトは空文字です。たとえば 必ずダースベーダー調の話し方にしてください。
などと指定します。
early_access
早期アクセス機能を有効にする場合、 true
を指定します。デフォルトは false
です。
enable_free_tier
無課金ユーザーに対して、無料プランの機能を有効にする場合に true
を指定します。デフォルトは true
です。
reviews
レビューキー以下はさらにオブジェクトです。
profile
レビュー用のプロフィールを設定設定します。 chill
または assertive
のいずれかを指定します。デフォルトは chill
です。 chill
はリラックスしたトーンで、 assertive
はよりアグレッシブに満ちたトーンでレビューを行います。
request_changes_workflow
CodeRabbitのコメントが解決したらレビューを承認するかどうか設定します。デフォルトは false
です。
high_level_summary
PRの中に、変更に関する高レベルの要約を入れるかどうか設定します。デフォルトは true
です。
high_level_summary_placeholder
PRの中で、高レベルの要約に置き換わる部分を指定します。デフォルトは @coderabbitai summary
です。
high_level_summary_in_walkthrough
高レベルの要約をウォークスルーに含めるかどうか設定します。デフォルトは false
です。
auto_title_placeholder
PRのタイトルに指定したキーワードを追加すると、タイトルが自動生成されます。デフォルトは @coderabbitai
です。
auto_title_instructions
タイトルを自動生成するための指示を設定します。デフォルトはありません。
review_status
各レビューに、レビューの詳細をポストします。さらに特定のケースにおいてレビューがスキップされた場合、レビューのステータスをポストします。デフォルトは true
です。
commit_status
レビュー中の時にはコミットステータスを pending
に、レビューが完了したら success
に設定します。デフォルトは true
です。
fail_commit_status
レビューが失敗、またはできない場合にはコミットステータスを failure
に設定します。デフォルトは false
です。
collapse_walkthrough
ウォークスルーを折りたためる状態で生成するかどうか設定します。デフォルトは false
です。
changed_files_summary
変更されたファイルの要約を生成するかどうか指定します。デフォルトは true
です。
sequence_diagrams
ウォークスルーにシーケンス図を含めるかどうか設定します。デフォルトは true
です。
assess_linked_issues
変更内容がウォークスルーで指摘された課題とどれくらい対応しているかを評価するかどうか設定します。デフォルトは true
です。
related_issues
ウォークスルーにて、関連する課題を表示するかどうか設定します。デフォルトは true
です。
related_prs
ウォークスルーにて、関連するプルリクエストを表示するかどうか設定します。デフォルトは true
です。
suggested_labels
ウォークスルーにて、ラベルを提案するかどうか設定します。デフォルトは true
です。
auto_apply_labels
PRに対して、自動的にラベルを付与するかどうか設定します。デフォルトは false
です。
suggested_reviewers
レビュアーの提案を行うかどうか設定します。デフォルトは true
です。
auto_assign_reviewers
自動的にレビュアーを割り当てるかどうか設定します。デフォルトは false
です。
poem
ウォークスルーの最後にポエムを追加するかどうか設定します。デフォルトは true
です。
labeling_instructions
ラベル指示は、以下の配列になります。
label
具体的なラベル名。たとえば bug
や enhancement
、 frontend
など。
instructions
300文字以下。たとえば Reactコンポーネントに関する変更を含む場合
など。
path_filters
文字列の配列です。ここで指定したパターンは、レビュー時にリポジトリのクローンを作成する際に利用されます。 !
で始まるパターンは除外されます。たとえば、 !docs/**
と指定すると、 docs
ディレクトリ以下は除外されます。逆に src/**
と指定すると、 src
ディレクトリ以下はレビュー対象になります。
path_instructions
パスインストラクションは、以下の配列になります。
path
ファイルパスのパターン。たとえば src/**
や docs/**
など。
instructions
2,000文字以下の文字列で、パスに対するレビューガイドラインを詳細に指示します。
abort_on_close
PRがクローズ・マージされた場合にレビューを中止するかどうか設定します。デフォルトは true
です。
disable_cache
キャッシュの無効化について指定します。デフォルトは false
です。キャッシュを無効化すると、毎回コードと依存関係をダウンロードします。
auto_review
自動レビュー以下は、以下のキーがあります。
enabled
自動コードレビューを有効にします。デフォルトは true
です。
auto_incremental_review
自動インクリメンタルレビューを有効にします。デフォルトは true
です。
ignore_title_keywords
文字列の配列です。ここで指定したキーワードがあると、レビューはスキップされます。大文字小文字は区別されません。
labels
文字列の配列です。指定されたラベルがある場合のみ、自動レビューが実行されます。
drafts
ドラフトのプルリクエストに対しても自動レビューを実行するかどうか設定します。デフォルトは false
です。
base_branches
文字列の配列。レビューするベースのブランチを指定します。正規表現が利用できます。
finishing_touches
finishing_touches
以下は、以下のキーがあります。
docstrings
PRに対して、ドキュメンテーション文字列を生成するかどうか設定します。デフォルトは true
です。
unit_tests
PRに対して、ユニットテストを生成するかどうか設定します。デフォルトは true
です。
tools
ast-grep
ast-grep
以下は、以下のキーがあります。
- rule_dirs
文字列の配列です。ルールディレクトリのリストが指定できます。 - util_dirs
文字列の配列です。ユーティリティディレクトリのリストが指定できます。 - essential_rules
ast-grepに必須のパッケージを利用するかどうか指定します。デフォルトはtrue
です。 - packages
文字列の配列です。利用するパッケージのリストを指定します。
shellcheck
ShellCheckはシェルスクリプトのバグを見つける静的解析ツールです。 shellcheck
以下は、以下のキーがあります。
- enabled
ShellCheckを有効にするかどうか設定します。デフォルトはtrue
です。
ruff
RuffはPythonのLinter/コードフォーマッタです。 ruff
以下は、以下のキーがあります。
- enabled
Ruffを有効にするかどうか設定します。デフォルトはtrue
です。
markdownlint
markdownlint-cli2を利用します。markdownlint-cli2は、Markdownファイル向けの静的解析ツールで、Markdown標準と一貫性を強制します。 markdownlint
以下は、以下のキーがあります。
- enabled
markdownlintを有効にするかどうか設定します。デフォルトはtrue
です。
github-checks
GitHub 統合設定をチェックします。 github-checks
以下は、以下のキーがあります。
- enabled
GitHubチェックを有効にするかどうか設定します。デフォルトはtrue
です。 - timeout_ms
GitHubチェックのタイムアウト時間をミリ秒単位で指定します(0以上、900000以下)。デフォルトは90000
です。
languagetool
LanguageToolの利用について設定します。LanguageToolは30以上の言語に対応したスタイルと文法のチェッカーです。 languagetool
以下は、以下のキーがあります。
- enabled
LanguageToolを有効にするかどうか設定します。デフォルトはtrue
です - enabled_rules
文字列の配列です。LanguageToolで有効にするルールのIDを指定します - disabled_rules
文字列の配列です。LanguageToolで無効にするルールのIDを指定します - enabled_categories
文字列の配列です。LanguageToolで有効にするカテゴリのIDを指定します - disabled_categories
文字列の配列です。LanguageToolで無効にするカテゴリのIDを指定します - enabled_only
enabled_rules
とenabled_categories
で指定されたルールとカテゴリのみを有効にします。デフォルトはfalse
です - level
default
またはpicky
のいずれかを指定します。default
はデフォルトのルールセットを使用し、picky
は追加のルールが有効になります。デフォルトはdefault
です
biome
BiomeはWebプロジェクトのための高速なフォーマッタ、Linter、そしてアナライザです。 biome
以下は、以下のキーがあります。
- enabled
Biomeを有効にするかどうか設定します。デフォルトはtrue
です
hadolint
HadolintはDockerfileの静的解析ツールです。 hadolint
以下は、以下のキーがあります。
- enabled
Hadolintを有効にするかどうか設定します。デフォルトはtrue
です
swiftlint
SwiftLintはSwiftコードのスタイルと規約をチェックするツールです。 swiftlint
以下は、以下のキーがあります。
- enabled
SwiftLintを有効にするかどうか設定します。デフォルトはtrue
です - config_file
SwiftLintの設定ファイルの、リポジトリからのパスを指定します。設定ファイルの名前がデフォルトの.swiftlint.(yml|yaml)
と異なる場合に指定します
phpstan
PHPStanはPHPの静的解析ツールです。 phpstan
以下は、以下のキーがあります。
- enabled
PHPStanを有効にするかどうか設定します。デフォルトはtrue
です - level
PHPStanのレベルを指定します。default
かmax
または0
から9
の整数値で、デフォルトはdefault
です。レベルについてはPHPStanのドキュメントを参照してください
golangci-lint
GolangCI-LintはGo言語のための静的解析ツールです。 golangci-lint
以下は、以下のキーがあります。
- enabled
GolangCI-Lintを有効にするかどうか設定します。デフォルトはtrue
です - config_file
GolangCI-Lintの設定ファイルの、リポジトリからのパスを指定します。設定ファイルの名前がデフォルトの.golangci.(yml|yaml|toml|json)
と異なる場合に指定します
yamllint
YAMLファイルの静的解析ツールです。 yamllint
以下は、以下のキーがあります。
- enabled
Yamllintを有効にするかどうか設定します。デフォルトはtrue
です
gitleaks
GitleaksはGitリポジトリ内の機密情報を検出するツールです。 gitleaks
以下は、以下のキーがあります。
- enabled
Gitleaksを有効にするかどうか設定します。デフォルトはtrue
です
checkov
CheckovはIaCのセキュリティとコンプライアンスをチェックするツールです。 checkov
以下は、以下のキーがあります。
- enabled
Checkovを有効にするかどうか設定します。デフォルトはtrue
です
detekt
DetektはKotlinコードの静的解析ツールです。 detekt
以下は、以下のキーがあります。
- enabled
Detektを有効にするかどうか設定します。デフォルトはtrue
です - config_file
Detektの設定ファイルの、リポジトリからのパスを指定します
eslint
EslintはJavaScriptやTypeScriptのための静的解析ツールです。 eslint
以下は、以下のキーがあります。
- enabled
Eslintを有効にするかどうか設定します。デフォルトはtrue
です
rubocop
RubocopはRubyコードの静的解析ツールです。 rubocop
以下は、以下のキーがあります。
- enabled
Rubocopを有効にするかどうか設定します。デフォルトはtrue
です
buf
BufはProtocol Buffersのための静的解析ツールです。 buf
以下は、以下のキーがあります。
- enabled
Bufを有効にするかどうか設定します。デフォルトはtrue
です
regal
RegalはRegoのための静的解析ツールです。 regal
以下は、以下のキーがあります。
- enabled
Regalを有効にするかどうか設定します。デフォルトはtrue
です
actionlint
ActionlintはGitHub Actionsのための静的解析ツールです。 actionlint
以下は、以下のキーがあります。
- enabled
Actionlintを有効にするかどうか設定します。デフォルトはtrue
です
pmd
PMDはJavaや他の言語のための静的解析ツールです。 pmd
以下は、以下のキーがあります。
- enabled
PMDを有効にするかどうか設定します。デフォルトはtrue
です - config_file
PMDの設定ファイルの、リポジトリからのパスを指定します
cppcheck
CppcheckはC/C++コードの静的解析ツールです。 cppcheck
以下は、以下のキーがあります。
- enabled
Cppcheckを有効にするかどうか設定します。デフォルトはtrue
です
semgrep
Semgrepはコードの静的解析ツールです。 semgrep
以下は、以下のキーがあります。
- enabled
Semgrepを有効にするかどうか設定します。デフォルトはtrue
です - config_file
Semgrepの設定ファイルの、リポジトリからのパスを指定します
circleci
CircleCI toolを使って、CircleCIの設定をチェックします。 circleci
以下は、以下のキーがあります。
- enabled
CircleCI toolを有効にするかどうか設定します。デフォルトはtrue
です
sqlfluff
SQLFluffはSQLコードの静的解析ツールです。 sqlfluff
以下は、以下のキーがあります。
- enabled
SQLFluffを有効にするかどうか設定します。デフォルトはtrue
です
prismaLint
Prismaのための静的解析ツールです。 prismaLint
以下は、以下のキーがあります。
- enabled
PrismaLintを有効にするかどうか設定します。デフォルトはtrue
です
oxc
OxcはRustで書かれたJavaScript/TypeScriptの静的解析ツールです。 oxc
以下は、以下のキーがあります。
- enabled
Oxcを有効にするかどうか設定します。デフォルトはtrue
です
shopifyThemeCheck
Shopifyのテーマファイルの静的解析ツールです。 shopifyThemeCheck
以下は、以下のキーがあります。
- enabled
ShopifyThemeCheckを有効にするかどうか設定します。デフォルトはtrue
です
luacheck
Luaのための静的解析ツールです。 luacheck
以下は、以下のキーがあります。
- enabled
Luacheckを有効にするかどうか設定します。デフォルトはtrue
です
chat
chat
以下は、以下のキーがあります。
auto_reply
ユーザーがタグ付けしなくとも、自動返信できるか設定します。デフォルトは true
です。
integrations
integrations
以下は、以下のキーがあります。
jira
Jiraとの統合時に利用する設定です。
- usage
Jiraの利用方法を指定します。auto
またはenabled
、disabled
のいずれかを指定します。デフォルトはauto
です。auto
は、公開リポジトリとの連携は無効になります。
linear
Linearとの統合時に利用する設定です。
- usage
Linearの利用方法を指定します。auto
またはenabled
、disabled
のいずれかを指定します。デフォルトはauto
です。auto
は、公開リポジトリとの連携は無効になります
knowledge_base
knowledge_base
以下は、以下のキーがあります。
opt_out
データ保持を必要とするすべてのナレッジベース機能を無効にするか設定します。デフォルトは false
です。設定を true
にすると、既存のナレッジベースは削除されます。
web_search
web_search
以下は、以下のキーがあります。
- enabled
Web検索を有効にするかどうか設定します。デフォルトはtrue
です
learnings
learnings
以下は、以下のキーがあります。
- scope
local
またはglobal
、auto
のいずれかを指定します。local
はローカルリポジトリのみに学習を適用し、global
は組織全体、auto
は公開リポジトリの場合はリポジトリのみ、プライベートリポジトリの場合は組織に対して学習します。デフォルトはauto
です
issues
issues
以下は、以下のキーがあります。
- scope
local
、global
、auto
のいずれかを指定します。local
はリポジトリの Issue のみ、global
は組織の Issue のみ、auto
は公開リポジトリにはリポジトリの Issue、非公開リポジトリには組織の Issue を使用します。デフォルトはauto
です
jira
jira
以下は、以下のキーがあります。
- usage
Jira ナレッジベースの統合を有効・無効を設定します。auto
、enabled
、disabled
のいずれかを指定します。デフォルトはauto
です。auto
は、公開リポジトリとの連携は無効になります - project_keys
Jiraプロジェクトのキーの配列です。Jiraナレッジベースを有効にする場合、プロジェクトキーを指定する必要があります。プロジェクトキーは、Jiraのプロジェクト設定で確認できます
linear
linear
以下は、以下のキーがあります。
- usage
Linear ナレッジベースの統合を有効・無効を設定します。auto
、enabled
、disabled
のいずれかを指定します。デフォルトはauto
です。auto
は、公開リポジトリとの連携は無効になります - team_keys
Linearチームのキーの配列です。Linearナレッジベースを有効にする場合、チームキーを指定する必要があります。チームキーは、Linearのチーム設定で確認できます
pull_requests
pull_requests
以下は、以下のキーがあります。
- scope
local
、global
、auto
のいずれかを指定します。local
はリポジトリのプルリクエストのみ、global
は組織のプルリクエストのみ、auto
は公開リポジトリにはリポジトリのプルリクエスト、非公開リポジトリには組織のプルリクエストを使用します。デフォルトはauto
です
code_generation
code_generation
以下は、以下のキーがあります。
docstrings
docstrings
以下は、以下のキーがあります。
language
ドキュメンテーション文字列の言語を指定します。ISOコード形式で指定します。デフォルトは en-US
です。
path_instructions
ドキュメンテーション文字列のパスに対する指示を指定します。path_instructions
以下は、以下のキーを持つ配列です。
- path
ファイルパスのパターン。たとえばsrc/**
やdocs/**
など。 - instructions
2,000文字以下の文字列で、ドキュメンテーション文字列に対するガイドラインを詳細に指示します。
unit_tests
unit_tests
以下は、以下のキーがあります。
path_instructions
path_instructions
以下は、以下のキーを持つ配列です。
- path
ファイルパスのパターン。たとえばsrc/**
やtests/**
など。 - instructions
2,000文字以下の文字列で、ユニットテストに対するガイドラインを詳細に指示します。
Tips
.coderabbit.yml
を組織で共通化したい場合もあると思います。その場合には、URLを指定して共通化した設定も読み込めます。
remote_config:
url: "https://your-config-location/.coderabbit.yaml"
設定例
coderabbitai/awesome-coderabbit: Official awesome-list of CodeRabbit Starters & Resources ⚡️にて公開されているCodeRabbitの設定例を参考にしてください。
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
language: "en-US"
early_access: false
tone_instructions: 'You are an expert code reviewer in Java, TypeScript, JavaScript, and NodeJS. You work in an enterprise software developer team, providing concise and clear code review advice. You only elaborate or provide detailed explanations when requested.'
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
base_branches: ["pg", "release"]
path_instructions:
- path: "app/client/cypress/**/**.*"
instructions: |
Review the following e2e test code written using the Cypress test library. Ensure that:
- Follow best practices for Cypress code and e2e automation
- Avoid using cy.wait in code
- Avoid using cy.pause in code
- Avoid using agHelper.sleep()
- Use locator variables for locators
- Use data-* attributes for selectors
- Avoid Xpaths, Attributes and CSS path
- Avoid selectors like .btn.submit
- Perform logins via API
- Avoid using it.only
- Use multiple assertions
- Avoid string assertions
- Ensure unique filenames
chat:
auto_reply: true
まとめ
CodeRabbitの設定は数多いですが、デフォルトで有効になっているものも多く、基本的にはそのままでも十分品質の高いレビューが得られるはずです。より見るべきポイントを指定したい場合や、組織のルールに合わせてカスタマイズしたい際の参考にしてください。
なお、設定は機能追加に合わせて変更される可能性があります。最新の情報は公式ドキュメントを参照してください。