> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Sentry 統合

> 自動エラートリアージと修復のためにDevinをSentryに接続します

<div id="overview">
  ## 概要
</div>

Sentry は、[MCP Marketplace](/ja/work-with-devin/mcp) で利用できる公式の MCP 統合です。OAuth 認証を利用して、Devin が Sentry プロジェクトにアクセスできるようにし、issue の詳細、スタックトレース、イベントのブレッドクラムなどを照会できます。

接続すると、Webhook を通じて自動エラートリアージを設定したり、Sentry エラーをバッチ処理する定期的な修復セッションをスケジュールしたりできます。

<div id="enable-the-sentry-mcp">
  ## Sentry MCPを有効にする
</div>

<Steps>
  <Step title="MCP Marketplaceを開く">
    **Settings > MCP Marketplace** に移動し、**Sentry** を見つけます。
  </Step>

  <Step title="OAuthフローを完了する">
    **Enable** をクリックし、プロジェクトにアクセスできる Sentry アカウントで認証します。これにより、Devin に Sentry の issue、イベント、スタックトレースへの読み取り権限が付与されます。
  </Step>

  <Step title="接続を確認する">
    セッションを開始し、いずれかのプロジェクトの最近の issue を一覧表示するよう Devin に依頼して、接続をテストします。接続を確認するには、MCP Marketplace で **Test listing tools** をクリックすることもできます。
  </Step>
</Steps>

<div id="capabilities">
  ## 機能
</div>

Sentry MCP を有効にすると、Devin は任意のセッション内で次の操作を実行できます。

| 機能              | 説明                                         |
| :-------------- | :----------------------------------------- |
| issue の詳細を照会    | issue のメタデータ、ステータス、担当者、イベント数を表示            |
| 完全なスタックトレースを取得  | 任意のイベントの完全なスタックトレースにアクセス                   |
| イベントのブレッドクラムを確認 | エラーに至るまでのユーザー操作とシステムイベントを表示                |
| リリースタグを確認       | issue がどのリリースで発生または解決されたかを確認               |
| issue のステータスを更新 | issue を解決済みまたは無視としてマークしたり、チームメンバーに割り当てたりする |
| 担当者とタグを管理       | issue の担当者、タグ、ブックマークを更新                    |
| アラートを設定         | アラートルールと通知設定を表示・管理                         |

<div id="auto-triage-pipeline-webhook-driven">
  ## 自動トリアージパイプライン (Webhook 駆動)
</div>

Sentry のアラートを Devin に直接接続すると、新しい本番エラーを自動でトリアージできます。これは、Sentry Internal Integration を使ってブリッジサービスに Webhook を配信し、そのブリッジサービスから Devin API を呼び出す構成です。

<Steps>
  <Step title="Sentry Internal Integration を作成する">
    Sentry ダッシュボードで **Settings > Developer Settings > Custom Integrations** に移動し、**Create New Integration > Internal Integration** をクリックします。

    以下のように設定します:

    * **Name:** `Devin Auto-Triage`
    * **Webhook URL:** ブリッジサービスのエンドポイント (例: `https://your-domain.com/sentry-webhook`)
    * **Alert Rule Action:** **on** に切り替える — これにより、この integration をアラートルールのアクションとして利用できるようになります
    * **Permissions:** **Issue & Event** と **Project** の読み取りアクセス
  </Step>

  <Step title="アラートルールを作成する">
    プロジェクトの **Alerts > Create Alert Rule > Issue Alert** に移動します:

    * **When:** 新しい issue が作成されたとき
    * **If:** issue のイベント数が **1 時間**で **50** を超えたとき (トラフィックに応じて調整してください)
    * **Then:** **Devin Auto-Triage** 経由で通知を送信する
  </Step>

  <Step title="Webhook ハンドラーをデプロイする">
    Sentry のアラートペイロードを受信し、Devin セッションを開始する小さなハンドラーを構築します。**Settings > Service Users** で [サービスユーザー](/ja/api-reference/v3/overview) を作成し、`ManageOrgSessions` permission を付与します (API 経由でセッションを一覧表示または絞り込みしたい場合は、`ViewOrgSessions` も追加してください) 。API トークンは `DEVIN_API_KEY`、組織 ID は `DEVIN_ORG_ID`、Sentry Internal Integration の **Client Secret** は `SENTRY_CLIENT_SECRET` として、ハンドラーの環境変数に保存します。

    ```javascript theme={null}
    const express = require('express');
    const crypto = require('crypto');
    const app = express();
    app.use(express.json({
      verify: (req, _res, buf) => { req.rawBody = buf; },
    }));

    function verifySignature(req) {
      const signature = req.headers['sentry-hook-signature'];
      if (!signature) return false;
      const expected = crypto
        .createHmac('sha256', process.env.SENTRY_CLIENT_SECRET)
        .update(req.rawBody)
        .digest('hex');
      if (signature.length !== expected.length) return false;
      return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected));
    }

    app.post('/sentry-webhook', async (req, res) => {
      if (!verifySignature(req)) return res.status(401).send('Bad signature');

      const event = req.body.data?.event;
      if (!event) return res.sendStatus(200);

      const orgId = process.env.DEVIN_ORG_ID;
      const response = await fetch(
        `https://api.devin.ai/v3/organizations/${orgId}/sessions`, {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${process.env.DEVIN_API_KEY}`,
          'Content-Type': 'application/json',
        },
        body: JSON.stringify({
          prompt: [
            `A Sentry alert fired for a new issue: "${event.title}"`,
            `Culprit: ${event.culprit}`,
            `Sentry URL: ${event.web_url}`,
            ``,
            `Use the Sentry MCP to pull the full stack trace and breadcrumbs.`,
            `Identify the root cause, fix the issue, and open a PR with a`,
            `regression test.`,
          ].join('\n'),
          tags: ['sentry-auto-triage', `project:${event.project}`],
        }),
      });

      const { session_id } = await response.json();
      console.log(`Started Devin session ${session_id} for: ${event.title}`);
      res.sendStatus(200);
    });

    app.listen(3000);
    ```

    これを、HTTPS トラフィックを受信できる任意の環境にデプロイします。たとえば Cloudflare Worker、AWS Lambda、または小規模な VPS です。Sentry Internal Integration の webhook URL をこのハンドラーに向けてください。
  </Step>

  <Step title="パイプラインをテストする">
    Sentry でテストアラートをトリガーするか (一時的にしきい値を下げてもかまいません) 、その後 [app.devin.ai](https://app.devin.ai) で `sentry-auto-triage` タグ付きの新しいセッションを確認します。
  </Step>
</Steps>

<Note>
  上記のコードでは、各セッションに `sentry-auto-triage` と Sentry プロジェクト名のタグを付けています。これにより、Devin ダッシュボードでこれらのセッションを絞り込んだり、`tags` クエリパラメータを使って [API 経由で取得](/ja/api-reference/v3/sessions/organizations-sessions) したりできます。セッションの一覧取得には、サービスユーザーに `ViewOrgSessions` permission が必要です。permissions テーブルの完全版については、[API overview](/ja/api-reference/v3/overview) を参照してください。
</Note>

<div id="scheduled-batch-remediation">
  ## 定期的な一括修復
</div>

個別のアラートにその都度対応する代わりに、未解決の Sentry エラーをまとめて取得し、それぞれに対して修正用のセッションを起動する定期実行の [Devin](/ja/work-with-devin/advanced-capabilities) セッションをスケジュールできます。

<Steps>
  <Step title="スケジュールを作成する">
    **Settings > [Schedules](/ja/product-guides/scheduled-sessions)** に移動し、**Create schedule** をクリックします。

    * **Name**: `Daily Sentry remediation`
    * **Frequency**: 毎日午前 6:00 (スタンドアップまでに修正 PR を用意できるようにするため)
    * **Agent**: Devin — これにより、Devin はエラーごとに個別のセッションを起動できるため、修正を並列に進められます
    * **Prompt**:

    ```
    Sentry MCP を利用して、payments-api プロジェクトで過去
    24 時間に発生した未解決エラーを、イベント数の多い順にすべて取得してください。
    `wontfix` または `expected-behavior` のタグが付いたエラーはスキップしてください。

    上位 5 件のエラーについて:
    1. 完全なスタックトレースと breadcrumbs を取得する
    2. repo 内の関連するソースファイルを見つける
    3. 根本原因を特定する
    4. 修正とリグレッションテストを含む PR を作成するための Devin セッションを開始し、
       PR の説明に Sentry issue の URL を含める

    すべてのエラーと対応する PR の要約を Slack に投稿してください。
    ```
  </Step>

  <Step title="レビューして調整する">
    1 週間実行したら、対象範囲を調整します。

    * **エラー数を増減する**: マージ可能な修正の数に応じて調整します
    * **プロジェクトまたはタグで絞り込む**: codebase の特定の領域に絞って対応します
    * **[Knowledge](/ja/product-guides/knowledge) を追加する**: エラー処理の規約を追加して、Devin の修正がチームのパターンに合うようにします
  </Step>
</Steps>

<Tip>
  影響の大きいエラー (1 時間あたり 50 件超のイベント) には webhook ベースのトリアージを、発生頻度が低い多数の問題には定期的な一括修復を組み合わせてください。これにより、緊急性の高いエラーと継続的に発生するエラーの両方に対応できます。
</Tip>

<div id="related-resources">
  ## 関連リソース
</div>

* [詳細なチュートリアル: Sentry エラーの自動トリアージ](/ja/use-cases/gallery/api-sentry-auto-triage)
* [詳細なチュートリアル: 日次の Sentry エラー修正](/ja/use-cases/gallery/scheduled-sentry-remediation)
* [MCP Marketplace ドキュメント](/ja/work-with-devin/mcp)
* [Devin API リファレンス](/ja/api-reference/overview)
