CodeRabbitはAIコードレビューサービスです。専業のサービスとして、多くのオプションを用意しているのが特徴です。設定はダッシュボードの他、 .coderabbit.yaml という設定ファイルでも行えます。
CodeRabbitでは、フィードバックの量や基準をプロフィールとして設定できるのですが、今回新しいプロフィールとしてQuietが追加されたので紹介します。
プロフィールは全部で3つ
CodeRabbitでは、従来のものも含めて全部で3つのプロフィールが用意されています。
- quiet
最も重要なもの(重大、影響力の大きな問題)のみを本文中に表示し、それ以外はレビュー概要の折りたたみ内に記載します。 - chill
重要な問題にフォーカスします。バグやセキュリティ、重要な修正点に関するコメントを行います。 - assertive
スタイルやベストプラクティス、細かな改善点を含めて包括的なフィードバックを行います。
指摘数を絞り込むのであれば quiet を指定するのが良いでしょう。次が chill 、そして assertive の順になります。
設定方法
設定はダッシュボード、または .coderabbit.yaml で行います。以下はYAMLでの例です。
reviews:
profile: "quiet"
指摘以外での違い
profileでの指定は、Linterの設定に影響します。
Cppcheck
CおよびC++向けの静的解析ツールです。
chill の場合、以下のように実行されます。
--disable=warning,style,information,portability,unusedFunction
また、以下のカテゴリーが除外されます。
- normalCheckLevelMaxBranches
- toomanyconfigs
- missingIncludeSystem
- missingInclude
- unmatchedSuppression
報告は、重大度が警告またはエラーのみになります。
assertive の場合、以下のように実行されます。
--disable=warning,style,information
カテゴリーはすべて対象です。
ShellCheck
シェルスクリプトに関するLinterです。
chill の場合、以下のように実行されます。
--severity=warning
assertive の場合、以下のように実行されます。
--severity=style
Buf
BufはProtocol bufferのファイルに関するLinterです。
buf.yaml がない場合、 chill は MINIMAL 、assertive は BASIC で実行されます。
Hadolint
HadolintはDockerfileのLinterです。
chill の場合、以下の重要度レベルをフィルタリングします。
- none
- ignore
- style
- info
- warning
assertive の場合、以下をフィルタリングします。
- none
- ignore
- style
Checkov
Checkovは各種IaCファイルに対応したLinterです。
chill の場合、以下の重要度レベルを含めます。
- MEDIUM
- HIGH
- CRITICAL
assertive の場合、以下を含めます。
- LOW
- MEDIUM
- HIGH
- CRITICAL
まとめ
CodeRabbitのレビュープロフィールを指定すれば、指摘の量をコントロールできます。今回新しくリリースされた quiet を指定することで、指摘の表示量をぐっと押さえられますので、重要な指摘以外は一旦フィルタリングできます。
チームの運用状況に合わせて設定してみてください。