Commit Graph

1 Commits

Author SHA1 Message Date
Surponess 4176555d37 变更文件清单
1. shortcuts/pr/pr.go — 核心逻辑
+diff 命令替换:

旧实现:与 +files 完全相同,调用 /pulls/{id}/files(只返回文件列表)
新实现:两步调用
GET /v1/{owner}/{repo}/pulls/{id}/versions → 取最新版本 ID
GET /v1/{owner}/{repo}/pulls/{id}/versions/{version_id}/diff → 获取逐行 diff
新增参数:

--file / -f — 过滤特定文件的 diff
--stat — 仅显示统计摘要
新增函数:

getLatestVersionID() — 获取 PR 最新版本 ID
formatDiffStat() — 提取增删统计摘要
2. internal/output/formatter.go — Diff 渲染
isDiffData() — 通过检测 files[].sections 区分 diff 数据和普通文件列表
printDiffTable() — 以 git diff 风格渲染:diff --git 头、hunk header、增删行
修改 printTable() 路由,自动检测并走 diff 渲染分支
3. shortcuts/pr/pr_test.go — 新增 5 个测试
测试用例	验证内容
TestPRDiffFetchesVersionThenDiff	两步调用完整流程
TestPRDiffWithFileFilter	--file 参数传递 filepath 查询参数
TestPRDiffStatMode	--stat 模式只输出统计
TestPRDiffFailsWhenNoVersions	无版本时返回友好错误
TestPRDiffFailsWhenPRNotFound	PR 不存在时正确处理 404
4. Skill 文档更新
SKILL.md — 更新 +diff 描述、新增使用示例、更新注意事项
gitlink-pr-files.md — 完整重写,明确 +files 和 +diff 的区别
2026-05-25 11:36:49 +08:00