From ce8db5912e1025c2d5d9c8bd523dfe5cdbc76a77 Mon Sep 17 00:00:00 2001 From: laurencewannamaker Date: Sun, 5 Jul 2026 23:08:23 +0000 Subject: [PATCH] =?UTF-8?q?feat(pr):=20=E6=96=B0=E5=A2=9E=20pr=20+commits?= =?UTF-8?q?=20=E8=AF=BB=20PR=20=E6=8F=90=E4=BA=A4=E5=88=97=E8=A1=A8?= =?UTF-8?q?=EF=BC=88=E7=AB=AF=E7=82=B9=E5=AE=9E=E6=B5=8B=E5=BF=BD=E7=95=A5?= =?UTF-8?q?=E5=88=86=E9=A1=B5=E5=8F=82=E6=95=B0=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- doc/changes/list-all-pagination.md | 2 ++ internal/i18n/locales/en-US.json | 1 + internal/i18n/locales/zh-CN.json | 1 + shortcuts/pr/pr.go | 20 ++++++++++++++++++++ 4 files changed, 24 insertions(+) diff --git a/doc/changes/list-all-pagination.md b/doc/changes/list-all-pagination.md index 6048934..36a8329 100644 --- a/doc/changes/list-all-pagination.md +++ b/doc/changes/list-all-pagination.md @@ -55,6 +55,8 @@ issue 讨论上下文;现接 `/v1/:owner/:repo/issues/:number/journals` (资源键 `journals`,生产实测分页 + --all 合并通过), 复用 --number/--id 语义。 +- 新增 `pr +commits` 子命令:读 PR 的提交列表(commits 端点); + 生产实测该端点同样忽略 page/limit 始终全量,故不暴露分页 flag。 - 新增 `pr +comments` 子命令:读 PR 评论流 (`/v1/:owner/:repo/pulls/:number/journals`)。生产实测该端点 忽略 page/limit 始终返回全量,故不暴露分页 flag(避免假分页语义)。 diff --git a/internal/i18n/locales/en-US.json b/internal/i18n/locales/en-US.json index 89b508e..af61dc0 100644 --- a/internal/i18n/locales/en-US.json +++ b/internal/i18n/locales/en-US.json @@ -56,6 +56,7 @@ "cmd.pr.close.short": "Close a pull request", "cmd.pr.comment.short": "Add a comment to a pull request", "cmd.pr.comments.short": "List comments on a pull request", + "cmd.pr.commits.short": "List commits on a pull request", "cmd.pr.create.short": "Create a pull request", "cmd.pr.diff.short": "Show diff for a pull request", "cmd.pr.files.short": "List changed files in a pull request", diff --git a/internal/i18n/locales/zh-CN.json b/internal/i18n/locales/zh-CN.json index 2a30ef9..af3aac9 100644 --- a/internal/i18n/locales/zh-CN.json +++ b/internal/i18n/locales/zh-CN.json @@ -56,6 +56,7 @@ "cmd.pr.close.short": "关闭拉取请求", "cmd.pr.comment.short": "给拉取请求添加评论", "cmd.pr.comments.short": "列出 PR 的评论", + "cmd.pr.commits.short": "列出 PR 的提交", "cmd.pr.create.short": "创建拉取请求", "cmd.pr.diff.short": "显示拉取请求 diff", "cmd.pr.files.short": "列出拉取请求中的变更文件", diff --git a/shortcuts/pr/pr.go b/shortcuts/pr/pr.go index 5e9e01e..a4129e9 100644 --- a/shortcuts/pr/pr.go +++ b/shortcuts/pr/pr.go @@ -439,6 +439,26 @@ func Shortcuts(translators ...*i18n.Translator) []*common.Shortcut { return ctx.Output(env) }, }, + { + Name: "commits", + Description: tr.T("cmd.pr.commits.short"), + Flags: []common.Flag{ + {Name: "id", Short: "i", Usage: tr.T("flag.pr.id"), Required: true}, + }, + Run: func(ctx *common.RuntimeContext) error { + if err := ctx.ResolveOwnerRepo(); err != nil { + return err + } + id, _ := ctx.RequireArg("id") + // The pulls commits endpoint ignores page/limit and always + // returns the full list, so no pagination flags are exposed. + env, err := ctx.CallAPI("GET", fmt.Sprintf("%s/pulls/%s/commits", ctx.RepoPath(), id), nil) + if err != nil { + return err + } + return ctx.Output(env) + }, + }, { Name: "comments", Description: tr.T("cmd.pr.comments.short"),