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/HEAD | GET | 只在未传 -B 时调 |
| 创建 PR | ${API}/repos/{base_repo}/-/pulls | POST | 请求体含 base / head / head_repo / title / body |