feat(issue): expose suspect commit in sentry issue view
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 58/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- typescript
調査の方向性
まず、既存の sentry issue view のフィールド選択と人間が読みやすい出力を、特に culprit がどのように扱われているかに重点を置いて追跡します。latest-event route に続けてプロジェクトスコープの committers エンドポイントを使用し、committers が存在しない場合の 404 レスポンスを考慮します。suspectCommit が --fields で動作し、culprit の隣に表示され、利用できない場合は null を返せば完了です。
索引モデルが issue の本文から書いたものです。
説明
The issue page shows a Suspect Commit block, but no CLI command surfaces it. For triage — human or agent — "who does Sentry think broke this" is among the first things you want, and today it is only reachable by hand-constructing an undocumented API call.
Today
sentry issue view returns 30 top-level fields including culprit, seerFixabilityScore, trace and the whole latest event. None of them carry the suspect commit. sentry issue list has no such field either. Searching the source, suspect commit appears exactly twice, both docstrings in code-mappings about enabling the feature:
packages/cli/src/commands/code-mappings/upload.ts:173
packages/cli/src/lib/api/code-mappings.ts:6
committers appears nowhere.
The data is available
It just takes two calls and an undocumented, event-level, project-scoped route:
$ sentry api /api/0/issues/7670740039/events/latest/ # to get an event id
$ sentry api /api/0/projects/{org}/{project}/events/{event_id}/committers/
which returns:
Sergiy Dybskiy
c28baa9 | api-gateway: auth, quota, rate limits, routing | 2026-07-14T17:05:00Z
matching the Suspect Commit block in the UI exactly.
Two things make this hard to find. The route is event-level, not issue-level, so every issue-scoped path you would guess first 404s — silently, per #1423. And committers is absent from sentry schema, so it cannot be discovered through the documented path either (#1424).
Proposal
Add the suspect commit to sentry issue view, resolved from the latest event so the caller does not have to make the two-step call:
$ sentry issue view API-GATEWAY-5 --json --fields shortId,suspectCommit
{
"shortId": "API-GATEWAY-5",
"suspectCommit": {
"id": "c28baa9...",
"message": "api-gateway: auth, quota, rate limits, routing",
"author": { "name": "Sergiy Dybskiy", "email": "..." },
"dateCreated": "2026-07-14T17:05:00Z"
}
}
and a line in the human-readable output alongside culprit. null when there are no committers — note the endpoint currently 404s rather than returning an empty array when none are found, so that needs handling rather than surfacing as an error.
Related: getsentry/sentry#80771 asks for the same data in the public API.
Version
0.43.0-dev.1786559401, checked against origin/main @ 47ad7e4e1.
- 主要言語
- TypeScript
- スター
- 121
- フォーク
- 14
- 平均マージ
- 23時間 54分
- マージ済み PR(30日)
- 103
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
getsentry/cli のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 65/100
-
bug jared
-
jared
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
似ている issue
-
blocklist removal
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
MetaMask/eth-phishing-detect#296544 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
pastelsky/bundlephobia#1122 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
category/development priority/P2 scope/file-operations scope/testing type/enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
Enatega Customer and Rider app: Add-ons price is not visible to customer after order is placed. オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100