2.8 KiB
PR 审查队列快照差异
变更说明
恢复并完善现有 workflow +review-queue 工作流注册,新增 --previous 队列快照比较能力。维护者可以保存一次 JSON 输出,在下一次扫描时只查看新增、已解决、优先级变化、风险变化和未变化数量,不必重新阅读整个队列。
这是为已经合并的维护类 Skill 提供的第二条前置基础能力:维护者雷达可以把变化项直接变成今日待办,PR 拓扑分析可以识别队列变化后仍然存在的关系热点,代码审查和集成 Skill 仍然保留各自的代码与合并判断职责。本 PR 不把队列排序算法升级为任何一个 Skill 的替代品。
使用方式
先生成基线快照:
gitlink-cli workflow +review-queue \
--owner Gitlink --repo gitlink-cli --format json > queue-previous.json
再次扫描并比较:
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通过。