-
Notifications
You must be signed in to change notification settings - Fork 2
Review Stacks: 「No reviewer」バケットを3区分に分割する #286
Copy link
Copy link
Open
Description
背景
Review Stacks の Review Queue 側で表示している「No reviewer(レビュアー未アサイン)」には、実際には性質の異なる複数のケースが混在している。
原因: pull_request_reviewers テーブルは GitHub GraphQL の reviewRequests(現在開いているレビュー依頼)をスナップショット洗い替えしているため、reviewer が approve すると行が消え、hasAnyReviewer=false になって No reviewer バケットに落ちてしまう。
関連コード:
app/routes/\$orgSlug/workload/+functions/stacks.server.ts:42-52—hasAnyReviewerの EXISTS サブクエリapp/routes/\$orgSlug/workload/+functions/aggregate-stacks.ts:144-156— unassigned バケット生成batch/db/mutations.ts:137-171— snapshot 方式の upsert
実データ(jtc, open PR 209件)
No reviewer バケットは 165件 (79%)。内訳:
| 区分 | 件数 | 割合 |
|---|---|---|
| 真にレビュアー未アサイン(review 記録ゼロ) | 78 | 47% |
| Approved 済み(≥1 APPROVED review あり) | 49 | 30% |
| レビュー済みだが approve なし(COMMENTED/CHANGES_REQUESTED のみ) | 38 | 23% |
現状のラベルは半分以上ミスリード。実質「レビュー依頼が今開いていない PR」を指している。
提案
バケットを3区分に分割する:
- Unassigned(真に未アサイン) — 誰かをアサインする必要あり
- Approved, awaiting merge — マージ待ち。作者スタック側の警告に回すほうが価値がある(マージ詰まり検知)
- Reviewed, changes pending(changes_requested / commented のみ) — 作者が対応後に再依頼すべき
実装方針
stacks.server.tsのクエリにpull_request_reviewsを JOIN し、PR ごとの最新 review state 情報を付与aggregate-stacks.tsの unassigned 分岐を 3区分に拡張- UI (
pr-block.tsxの amber "no reviewer" ラベル、insight 文言) を更新 - 「Approved awaiting merge」は author stack 側で別色の警告として表示することを検討
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels