跳转到内容

cnb-rs pr comment ​

cnb-rs pr comment <NUMBER> [flags]

在 PR 上添加一条评论;用 --view <COMMENT_ID> 查看单条评论;或用 --edit-last 编辑当前用户在该 PR 上的最近一条评论。参考 gh pr comment 的设计:单命令 + flag,不开 4 个 CRUD 子命令组(issue comment 走的路线)。

列举评论:使用 pr view --comments;查看单条评论:使用 pr comment <NUMBER> --view <COMMENT_ID>。

CNB API 没有 delete_pull_comment,所以本命令不提供 --delete-last(与 gh pr comment 略有不同)。

选项 ​

  • <NUMBER>:PR 编号(必填)
  • --view <COMMENT_ID>:查看指定 ID 的评论;与 --body / --body-file / --edit-last / --work-mode 互斥
  • -b, --body <BODY>:评论正文;与 --body-file 互斥
  • -F, --body-file <FILE>:从文件读评论正文;- 表示从 stdin 读;与 --body 互斥
  • --edit-last:编辑当前用户在该 PR 上最近一条评论(按 created_at 取最新),找不到则报错
  • --work-mode:开启 NPC 工作模式(评论中需 @ NPC;授予其写代码 / 推分支 / 发 PR 权限,需开发者及以上权限);仅新增评论时可用,与 --view / --edit-last 互斥

新增或编辑评论时至少需要传 -b 或 -F 之一;--view 模式不需要正文。

继承的全局选项:

  • --repo <REPO>:指定仓库路径(格式:group/repo)
  • --domain <DOMAIN>:指定目标域名(默认:cnb.cool)
  • --json:--view 模式原样输出 PullRequestComment JSON

输出约定 ​

  • 新增 / 编辑:stderr 输出结果提示,stdout 输出 PR URL
    • 新增:✓ 已在 PR #N 上发表评论 (id=...)
    • 编辑:✓ 已编辑 PR #N 上的评论 (id=...)
  • 查看:stdout 输出作者、创建时间、更新时间、正文,以及非空的 statuses;--json 时原样输出 PullRequestComment JSON

示例 ​

bash
# 添加一条评论
$ cnb-rs pr comment 42 -b "LGTM,可以合"
✓ 已在 PR #42 上发表评论 (id=2055934518850809856)
https://cnb.cool/org/repo/-/pulls/42

# @ NPC 并开启工作模式
$ cnb-rs pr comment 42 --work-mode -b "@npc/CodeBuddy(deepseek-v4.1-flash) 请修复评审意见并推送分支"

# 从文件读 body(适合多行 markdown)
$ cnb-rs pr comment 42 -F review.md

# 从 stdin 读(适合 pipe)
$ echo "ship it" | cnb-rs pr comment 42 -F -

# 查看单条评论(加 --json 可原样输出 PullRequestComment JSON)
$ cnb-rs pr comment 42 --view 2055934518850809856
作者: alice
创建时间: 2026-09-16T10:00:00Z
更新时间: 2026-09-16T10:05:00Z

LGTM,可以合

# 编辑当前用户最近一条评论(typo 补救常用)
$ cnb-rs pr comment 42 --edit-last -b "(edited) LGTM,建议把 X 改成 Y 再合"
✓ 已编辑 PR #42 上的评论 (id=2055934518850809856)
https://cnb.cool/org/repo/-/pulls/42

# 不传 body 报错(exit 1)
$ cnb-rs pr comment 42
错误: 请通过 -b/--body 或 -F/--body-file 提供评论正文

API 调用 ​

模式API方法说明
新增${API}/repos/{repo}/-/pulls/{n}/commentsPOST默认行为
--view${API}/repos/{repo}/-/pulls/{n}/comments/{cid}GET查看单条评论
--edit-last 找最近一条${API}/user + ${API}/repos/{repo}/-/pulls/{n}/commentsGET × 2用 tokio::join! 并发拿当前用户 + 评论列表
--edit-last patch${API}/repos/{repo}/-/pulls/{n}/comments/{cid}PATCH命中最近一条后编辑

--edit-last 总共 3 个 API 调用,前两个并发。

关联命令 ​

pr close / pr reopen 也接受 -c "评论" 选项,在状态变更前先发评论,参考各自文档。pr comment 是独立的「只发评论」命令,不切状态。

另请参阅 ​

Released under the MIT License.