gitlink-cli/doc/changes/workflow-review-queue-delta.md

42 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# PR 审查队列快照差异
## 变更说明
恢复并完善现有 `workflow +review-queue` 工作流注册,新增 `--previous` 队列快照比较能力。维护者可以保存一次 JSON 输出,在下一次扫描时只查看新增、已解决、优先级变化、风险变化和未变化数量,不必重新阅读整个队列。
这是为已经合并的维护类 Skill 提供的第二条前置基础能力维护者雷达可以把变化项直接变成今日待办PR 拓扑分析可以识别队列变化后仍然存在的关系热点,代码审查和集成 Skill 仍然保留各自的代码与合并判断职责。本 PR 不把队列排序算法升级为任何一个 Skill 的替代品。
## 使用方式
先生成基线快照:
```bash
gitlink-cli workflow +review-queue \
--owner Gitlink --repo gitlink-cli --format json > queue-previous.json
```
再次扫描并比较:
```bash
gitlink-cli workflow +review-queue \
--owner Gitlink --repo gitlink-cli \
--previous queue-previous.json --format markdown
```
`changes` 中的条目按 PR 编号匹配;没有编号的本地输入才回退到规范化标题。比较只读本地快照,不会写入远程仓库。
## 等待效率信号
队列结果现在同时记录 `created_at`、`updated_at`、`activity_source`、`age_hours`、`waiting_hours`、`stale`、`review_state`、`reviewers` 和 `waiting_on`。通过 `--as-of` 可固定计算时刻,通过 `--stale-after-hours` 可按仓库 SLA 调整阈值;默认阈值为 72 小时。真实列表响应没有更新时间时,使用创建时间计算等待时长,并通过 `activity_source=created_at_fallback` 明确证据来源;没有 reviewer 的 open PR 标记为 `unassigned` 并归为等待维护者分配,已请求 Review 的 PR 才归为等待 reviewer。
GitLink 的列表接口可能在 `state=open` 响应中混入 closed PR。客户端优先按官方数值字段 `pull_request_status`0=open、1=merged、2=closed二次过滤同时兼容字符串字段 `pull_request_staus`;状态缺失或不匹配的条目不会进入 open 队列。标题、作者、分支和创建时间同时兼容真实响应的 `name`、`issue.author`、`pull_request_base/head`、`pr_full_time/pr_created_unix` 字段。
## 兼容性与验证
- 不传 `--previous` 时原有输出和优先级排序保持不变。
- `changes` 是可选 JSON 字段,旧消费者可以忽略。
- 非法快照会给出明确错误,不会静默生成不完整差异。
- 真实 API 回归验证确认 open 队列不再包含 closed PR标题、作者、时间、SLA 和责任字段均可解释。
- `go test ./shortcuts/workflow -run 'TestAnalyzeReviewQueue|TestCompareReviewQueue|TestReadReviewQueue|TestFetchReviewQueue|TestRenderReviewQueue' -count=1` 通过。
- `go build ./...``git diff --check` 通过。