Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Automated code review with CodeRift

2026年09月12日に「Dev.to」が公開したITニュース「Automated code review with CodeRift」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

CodeRiftは、GitLabのコードレビューの遅延や見落としを解決する自動レビューツールだ。AIがセキュリティ、バグ、性能などを多角的に分析し、問題点をマージリクエストにコメントする。致命的な問題はマージをブロックでき、高品質なコード開発を支援する。

出典: Automated code review with CodeRift | Dev.to公開日:

ITニュース解説

システム開発において、チームでソフトウェアを作る際、コードレビューは品質を保つために非常に重要な工程である。しかし、多くのチームでは、このコードレビューが開発の進行を遅らせるボトルネックになっている。開発者がコードの変更を提出しても、レビュー担当者が忙しく、なかなか確認が進まない。ようやくレビューが来たとしても、表面的なチェックにとどまり、深刻なバグ、セキュリティの脆弱性、設計上の問題などが見過ごされてしまうケースも少なくない。

CodeRiftは、このようなコードレビューの課題を解決するために作られた、自動コードレビュープラットフォームである。これは、GitLabのマージリクエストに対して、7段階のパイプラインを使ってコードを自動的に分析し、問題点を発見する。このシステム全体の動きは、Rust言語で書かれたワークフローエンジン「IronFlow」によって管理されている。

CodeRiftの基本的な仕組みは、「API(アプリケーション・プログラミング・インターフェース)とWorker(作業者)」というモデルで動いている。API部分は、データの保存、GitLabの認証、Webサイトからの通知の受け取りなどを担当する。一方、IronFlowのWorkerは、APIに問い合わせてレビューが必要なマージリクエストがないかを確認し、見つかれば実際のレビュー処理を実行し、結果をAPIに送り返す。このように役割を分けることで、多くのWorkerを動かせば、それだけ多くのレビューを同時に処理できるようになり、システムを効率的に拡張できる。

CodeRiftによるレビューは、以下の7つのステップで実行される。

最初の1〜3ステップは準備段階だ。まず、Workerはレビューが始まったことをデータベースに記録する。次に、GitLabのマージリクエストに「レビュー進行中」というコメントを自動で投稿し、さらに、コードの変更履歴(コミット)のステータスを「実行中」に設定する。これにより、開発者はすぐにAIによるレビューが始まったことを確認できる。

4番目のステップこそが、CodeRiftによるコード分析の核心部分だ。ここで行われる処理は複数ある。

まず、「TOMLルール」というものが適用される。これは、CodeRiftに組み込まれたルールで、特定のプログラミング言語やファイルパターン、正規表現パターンを使って、コードの問題点を検出する。例えば、Rust言語の実際の機能コード内で、エラー処理をせずにプログラムを強制終了させる可能性のある.unwrap()という記述を見つける。テストファイルなど、意図的に使う場所での誤検出は除外できる。これらのルールは、Rust、TypeScript、Python、Go、SQLといった様々な言語に対応し、セキュリティに関する一般的な脆弱性パターンもカバーする。各プロジェクトは、.coderift/context.mdファイルを通じて、独自のルールを追加したり、標準ルールを無効にしたりできる。

次に、「AST(抽象構文木)分析」が行われる。これは、「tree-sitter」という高速な構文解析器を使って、変更されたファイルのコードを解析し、プログラムの構造を理解する。具体的には、変数や関数の定義、参照元といった情報を抽出し、ファイル間の依存関係を特定する。この情報は、関連するファイルをまとめて分析するための「チャンキング」と、正規表現では見つけにくい、より複雑なコードの構造的なパターンを検出するために利用される。

「チャンキング」では、分析対象のファイルを、関連性の高いもの同士で最大5ファイル程度のまとまり(チャンク)にグループ化する。これは、複数のAIエージェントが並行して効率的にレビューを進めるための準備だ。依存関係の情報がある場合、関連ファイルが同じチャンクに入るようにすることで、AIエージェントがより多くの文脈を理解し、的確なレビューを行える。

そして、「専門AIエージェント」が活躍する。各チャンクは、異なる得意分野を持つ3つのAIエージェントによって並行してレビューされる。例えば、セキュリティ専門のエージェントはインジェクション攻撃やアクセス制御の問題などを重点的にチェックする。バグ専門のエージェントは、誤ったロジックや型エラーなどを見つける。パフォーマンス専門のエージェントは、無駄なデータベースアクセスやアルゴリズムの効率性などを評価する。これらのエージェントは、利用可能な予算や思考できる回数が設定されており、もし一部のエージェントが失敗しても、他のエージェントの結果を使ってレビューは続行される。

さらに、「クロスファイル相関」というステップがある。これは、すべてのチャンクから得られたAIエージェントの指摘(ファインディング)を、別のAIエージェントがまとめて分析するプロセスだ。これにより、単一のファイルだけでは見つけられない、複数のファイルにまたがる脆弱性、例えば、あるファイルで入力されたデータが、別のファイル内のデータベースクエリに悪影響を与えるような問題を発見できる。

最後に、「誤検出の検証」が行われる。これは、最終的なAIエージェントが、検出された指摘の中から、不適切または重要度の低いものをフィルタリングする作業だ。例えば、テストコード内の.unwrap()や、変更されていないコードに対する指摘などが、誤検出として除外される。

5番目と6番目のステップでは、レビュー結果の公開が行われる。Workerは、検出された問題点をGitLabのマージリクエストに投稿する。具体的には、マージリクエスト全体の概要や、関連するコードの行に、問題の深刻度(バグ、セキュリティ、パフォーマンス、エラー処理、提案など)、重要度スコア(致命的、重要、中程度、軽微)、そして修正案が具体的に示されるインラインコメントが付与される。

最後の7番目のステップでは、GitLabのコミットステータスが更新される。レビューで「致命的」な問題が指摘された場合、そのマージリクエストはコードの統合(マージ)をブロックする設定にすることも可能で、これにより問題のあるコードが本番環境に入るのを防ぐことができる。

CodeRiftによって検出される問題点(ファインディング)は、ファイル名、行番号、深刻度、スコア、タイトル、コメント、修正案といった詳細な情報を持つ。AIがその指摘に至った思考プロセス(analysis_chain)や、問題を自動修正するためのプロンプト(ai_fix_prompt)も含まれるため、開発者は問題の原因を理解し、迅速に修正できるようになる。

汎用的な大規模言語モデルをそのまま使うのではなく、CodeRiftがこのような構造化されたパイプラインを採用しているのには理由がある。汎用AIはコードの差分だけを見てしまうため、ファイル間の関係性や文脈を理解せず、正確な指摘が難しい。また、プロジェクト固有のルール適用、重複する指摘の排除、コスト管理、誤検出の検証といった機能も不足していた。CodeRiftは、TOMLルール、AST解析、専門AIエージェント、誤検出の検証といった段階的な処理を組み合わせることで、これらの課題を全て解決し、より正確で実用的なレビュー結果を生み出している。

CodeRiftは、プロジェクトごとにレビュー設定を細かくカスタマイズできる。例えば、.coderift/context.mdファイルに、プロジェクトのアーキテクチャのガイドラインや、特定のコード規約などを記述できる。この情報はAIエージェントへの指示(プロンプト)に追加され、エージェントはそれを基にプロジェクト固有の規約違反を指摘できるようになる。

このようにCodeRiftは、自動化された精密な分析と柔軟なカスタマイズ性により、開発チームのコード品質向上とレビュープロセスの効率化に大きく貢献するツールと言えるだろう。

関連コンテンツ

関連IT用語

関連ITニュース