Ichizokuは日本唯一のSentry公認販売業者です。
日本語のドキュメント、動画、サポート窓口で日本のお客様のSentry活用を支援します。

【Sentry AIコードレビュー】現在ベータ版:本番環境での問題発生を減少

Article by: Lindsay Piper

a screenshot of a sentry error

これは防げたはずです。

screenshot of a sentry error

これも防ぐべきでした。

screenshot of a sentry error

これも同じです。

私たちは皆、PR(プルリクエスト)でタグ付けされるのが嫌いです。時間を取られ、必ず何かを見落とした時には責められ、そして「自分ならこうは書かなかった」という感覚が常につきまといます。LLM(大規模言語モデル)は、これをもっと簡単にしてくれると約束しました。私たちの代わりにやってくれると。しかし、ご覧のとおり、まだその段階には至っていません。

しかし、これこそが Sentry の本業です。私たちはバグを捕まえます、本番環境で。では、その専門性をコードレビューの段階に持ち込んだらどうでしょうか?天才的だと思いませんか?

そこで私たちは、AI コードレビューに新しい機能を追加しました。プルリクエストを開く際に、Sentry の Issue を取り込み、実際にバグを予測するのです。もちろん、すべてのエラーを防げるわけではありません。あなたが書いた(あるいはプロンプトで生成した)コード以外にも考慮すべき要因があまりに多すぎるからです。しかし、この機能を使えば、本番環境を停止させるような回避可能なミスを出荷してしまうことを防ぐことはできます。

 

 

Sentry のコンテキストをプルリクエストに持ち込む

AI ツールにおいては、コンテキストこそがすべてです。これは、Seer がベータ期間中に開発者たちの累計2年以上の時間を節約できた理由でもあります。私たちの AI コードレビューも同じアプローチを取りますが、それを出荷(デプロイ)前に行います。具体的には、あなたが触れたコードに対して Sentry のコンテキストや、そのコードに関する過去のシグナルを活用します。対象となるのは、関数の残りの部分、リポジトリ内で呼び出される関数、そして依存するクラスやオブジェクトです。

この「ライブのコードコンテキスト」と「現実世界での Issue 履歴」を組み合わせることで、フィードバックは曖昧な警告や一般的なリンティングの助言ではなく、具体的で実行可能なものになります。

 

 

最も重要なエラーを予測し、防ぐ

自動化された PR レビューは、たとえリポジトリ全体のコンテキストを持っていても、しばしば実際の問題をスタイル上の細かい指摘やベストプラクティスに埋もれさせてしまいます。その結果、開発者は「consider inlining」や「prefer async/await」といった注意の洪水の中から UnboundExecutionError を探し出さざるを得なくなるのです。

しかし、Sentry のコードレビューはそうではありません。PR がレビュー可能(ready for review)とマークされたときに実行され、実際に本番環境を壊すものだけにフォーカスします。

したがって、もしあなたが次のような変更を含む PR を開いた場合、以下のようになります。

インポート文の後に空行を追加したほうがよい、といったコメントは表示されません。

Sentry が返すのは、次のように 具体的で実際に役立つデバッグコメント です。

A screenshot of Cody's example bug detection

 

これがどのように動作するかは、次のとおりです。

 

 

 

AI コードレビューが @codydearkland のピンチを救った話

最近の Hackweek で、Cody は自分が開発していた新しい CLI に動的なインストルメンテーションルールを追加するため、PR をオープンしました。最初は 1 つの AI モデルだけをサポートしていましたが、他のモデルにも拡張したいと考えました。つまり、異なる構成や追加の SDK、さらにクライアント設定が必要になるということです。

即興的なセットアップや場当たり的にコードを手直しする過程で、彼は起動時に AI クライアントオブジェクトと一時的な API キーを管理するための異なるロジックを作成してしまいました。その結果、実際には無効であるにもかかわらず、常にそうマークされるわけではない状況が生じてしまったのです。

a screenshot of a Sentry PR comment that points out a potential bug

彼の API キーの扱い方は一貫性のないエラーハンドリングを生み出し、異なるモデルを使用した際にプロジェクト検出中にクラッシュを引き起こす原因となっていました。Cody が PR を開いたとき、Sentry がそれを検出し、彼は修正し、災難を回避できました。彼自身、その結果に「いいね(👍)」を付けたほどです。

 

 

 

その他の機能

 

より詳細な PR レビューを提供

同僚から「またデバッグログを残してるよ」とか「ここって !== のつもりだった?」といったコメントが付くレビュー、ありますよね。Sentry の PR レビューは、そうした部分を処理してくれます。

タイプミスや明らかなミス、定型的な修正は自動で検出するので、人間のレビュアーは「アーキテクチャが妥当かどうか」といった本質的な部分に集中できます。カフェインを摂りすぎたときにやらかすようなバカげたミスに気を取られずに済むのです。

その結果、レビューはより速く、より高品質になります。そして、「LGTM 👍」といった通りすがりの承認コメントだけで、初歩的なミスが見逃されることも減ります。

PR のコメントで @sentry review と入力するだけで、この機能を利用できます。

 

ユニットテストを自動生成

テストされていないコードは、バグに変異するまでの半減期が約5分ほどしかありません。そこで私たちは AI エージェントに有用なことをさせました。あなたのユニットテストを自動で書かせるのです。

PR に @sentry generate-test とコメントするだけです。

Sentry はコードを読み込み、リポジトリの構造をマッピングし、新しく追加されたすべてのコード行をカバーする実行可能なテストを生成します。プラグインは不要です。「このために新しいタブを開こう」といった手間も必要ありません。

例えば auth.js を更新する PR を開いた場合、@sentry generate-test と入力するだけで、有効期限切れのセッション、無効なトークン、さらには考えたくもない厄介なエッジケースまで含むユニットテストが得られます。

 

 

試すには

システムは壊れます。常に。プロダクション前でも、プロダクション後でも関係ありません。Sentry はあらゆる場所に潜んでおり、あなたの一日を台無しにする前に問題を捕捉します。そして、もし本当に爆発的なトラブルが起きても私たちはすぐそばにいて、あなたが冷静さを失わずに混乱をデバッグできるよう、状況を見えるように照らします。

AI コードレビュー(AI Code Review) は現在オープンベータ中で、すべての Sentry ユーザーが無料でお試しいただけます。

  • GitHub アプリ SentrySeer をインストールしてください。
  • 設定で GenAI 機能 と PR レビュー を有効化してください。

 

ドキュメントで詳細を確認し、実際の PR で試してみてください。そしてぜひ DiscordGitHub でご意見をお聞かせください。もし Sentry をまだお使いでない場合は、無料で始められます

 

 

Original Page : Sentry AI code review, now in beta: break production less

 


 

IchizokuはSentryと提携し、日本でSentry製品の導入支援、テクニカルサポート、ベストプラクティスの共有を行なっています。Ichizokuが提供するSentryの日本語サイトについてはこちらをご覧ください。またご導入についての相談はこちらのフォームからお気軽にお問い合わせください。

シェアする

Recent Posts