跳转到内容

cnb-rs pr reopen

cnb-rs pr reopen <NUMBER>... [flags]

重新打开已关闭(非合并)的 Pull Request。支持批量编号,逐个处理;任一失败累计计数,最后以非零退出码结束(与 cnb-rs issue reopen 一致的批量语义)。

选项

  • <NUMBER>...:PR 编号(必填,至少一个);支持空格分隔或逗号分隔多个编号
  • -c, --comment <STRING>:附一条重开评论(可选)。提供后会在每个 PR reopen 前先 POST 评论;评论失败不阻断 reopen(只在 stderr warn)

继承的全局选项:

  • --repo <REPO>:指定仓库路径(格式:group/repo
  • --domain <DOMAIN>:指定目标域名(默认:cnb.cool

输出约定

  • stderr:每成功一个打 ✓ 已重新打开 PR #N;失败的打 ✗ 重新打开 PR #N 失败:<err>;最后若有失败再打 错误: K 个 PR 重新打开失败
  • stdout:每个成功打开的 PR 输出一行完整 URL
  • 退出码:全部成功 → 0;任一失败 → 1

示例

bash
# 重新打开单个 PR
$ cnb-rs pr reopen 42
 已重新打开 PR #42
https://cnb.cool/org/repo/-/pulls/42

# 批量
$ cnb-rs pr reopen 42 43,44

# 附重开评论
$ cnb-rs pr reopen 42 -c "重新审视后发现这个特性仍需要"
 已重新打开 PR #42
https://cnb.cool/org/repo/-/pulls/42

# 已 merged 的 PR 不能 reopen(CNB 服务端拒绝)
$ cnb-rs pr reopen 271
 重新打开 PR #271 失败:{"errcode":...,"errmsg":"分支 release/v0.11.2 找不到"}
错误: 1 PR 重新打开失败

API 调用

步骤API方法说明
发评论(可选)${API}/repos/{repo}/-/pulls/{n}/commentsPOST仅在传了 -c 时调;失败不阻断 reopen
重新打开 PR${API}/repos/{repo}/-/pulls/{n}PATCHbody { state: "open" },逐个 PR 单独调一次

Known limitations

  • 不能 reopen 已 merged 的 PR:CNB 服务端会拒绝(通常报「分支找不到」之类的派生错误,因为分支可能已被删除)

迁移指南(从 pr update --state open

pr update --state flag 已在 P1 阶段移除(P0-2 时已加 deprecation warning)。请改用:

bash
# 旧
$ cnb-rs pr update 42 --state open

# 新
$ cnb-rs pr reopen 42

另请参阅

Released under the MIT License.