跳转到内容

cnb-rs pr create

cnb-rs pr create [flags]

创建 Pull Request。

默认从当前 Git 分支向远程仓库的 HEAD 分支发起 PR;标题与描述默认取最新 commit message 的 title / body 部分,贴近 gh pr create --fill 的体验。所有参数均可通过选项显式覆盖。

选项

  • -B, --base-branch <BRANCH>:目标分支(默认:远程仓库的 HEAD 分支)
  • -H, --head-branch <BRANCH>:源分支(默认:当前 Git 分支)
  • -R, --remote-repo <OWNER/REPO>:目标仓库路径(默认:当前仓库,用于跨仓库 PR)
  • -t, --title <TITLE>:PR 标题(默认:最新 commit message 的首行)
  • -b, --body <BODY>:PR 描述(默认:最新 commit message 首行之后的 body 部分)
    • 显式传 -b "" 会使用用户值(哪怕空),不会 fallback 到 commit body
    • commit body 首行为空行时(惯例:title\n\nbody)会被 trim_start 掉,避免 PR 描述开头出现多余空行

继承的全局选项:

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

输出约定

  • stderr:人类可读的成功提示 ✓ 已创建 PR #42: feat: 新增登录功能
  • stdout:脚本可消费的完整 PR URL,与 pr close / pr merge / pr comment add 保持一致,可直接接 | xargs gh pr 或脚本能消费

示例

bash
# 从当前分支向默认分支发起 PR(标题 + 描述都从 commit message 拿)
$ cnb-rs pr create
 已创建 PR #42: feat: 新增登录功能
https://cnb.cool/org/repo/-/pulls/42

# 指定目标分支,标题/描述仍走 commit message 默认值
$ cnb-rs pr create --base-branch main

# 标题 / 描述都显式指定
$ cnb-rs pr create -t "feat: 新增登录功能" -b "详细描述..."

# 跨仓库 PR(fork 往上游提 PR)
$ cnb-rs pr create -R upstream/repo -B main -H feature-branch

# 只改描述,标题仍走 commit message 第一行
$ cnb-rs pr create -b "补一个详细背景到 body。"

API 调用

步骤API方法说明
推断默认目标分支(可选)${API}/repos/{base_repo}/-/git/branches/HEADGET只在未传 -B 时调
创建 PR${API}/repos/{base_repo}/-/pullsPOST请求体含 base / head / head_repo / title / body

另请参阅

Released under the MIT License.