feat(pr): add merge readiness and branch helper shortcuts #319

Closed
ohanabi wants to merge 0 commits from ohanabi/gitlink-cli:feat/pr-readiness-shortcuts into master
Contributor

feat(pr): add merge readiness and branch helper shortcuts

PR 内容:

合并请求描述

本次合并请求增强 PR Shortcut 的合并前准备能力,新增 pr +branchespr +check-can-merge,将原本需要 Raw API 调用的可用分支获取、源/目标分支可合并检查
沉淀为标准 Shortcut。

相关Issue

关联Issue编号:暂无

变更内容

1. 增强了 PR 分支辅助能力

  • 新增 pr +branches
  • 映射 GET /:owner/:repo/pulls/get_branches
  • 用于获取创建 PR 或检查 PR 前可选择的源分支和目标分支。

2. 增强了 PR 合并准备检查能力

  • 新增 pr +check-can-merge
  • 映射 POST /:owner/:repo/pulls/check_can_merge
  • 支持 --head--base 参数。
  • --base 默认使用 master

3. 增强了远端 POST 检查安全保护

  • pr +check-can-merge 支持 --dry-run 预览请求。
  • 真实执行必须显式传入 --yes
  • dry-run 会输出 repository、method、path、payload 等信息,不调用远端 API。

4. 增强了测试覆盖

  • 覆盖 pr +branches 的 GET 方法和路径。
  • 覆盖 pr +check-can-merge 的 dry-run、缺少 --yes 保护、真实请求 payload、默
    认 base。
  • 覆盖两个新增命令的 HTTP 错误传播。

5. 完善了文档和 Skill

  • 更新 README 和 README.zh-CN 的 PR 示例。
  • 更新 skills/gitlink-pr,优先推荐 Shortcut 而不是 Raw API。
  • 更新 skills/gitlink-gatekeeper,将可合并检查纳入 PR 门禁采集流程。
  • 新增 doc/changes/pr-readiness-shortcuts.md 变更说明。

问题描述

现有 PR Shortcut 已支持 PR 列表、创建、查看、合并、文件、diff、review 等操作,但
获取 PR 可用分支和检查源/目标分支是否可合并仍需要使用 Raw API。Agent 或用户在创
建 PR、合并前检查、质量门禁流程中需要手动拼接 API 方法和路径,体验不统一。

问题复现步骤

  1. 查看 skills/gitlink-pr/SKILL.md
  2. 可以看到“检查是否可合并”和“获取可用分支”仍记录为 Raw API。
  3. 用户需要手动执行 gitlink-cli api POST /:owner/:repo/pulls/check_can_merge
  4. PR 门禁或合并前检查流程无法直接复用标准 PR Shortcut。

根本原因

PR Shortcut 命令组没有覆盖 GitLink 的 PR helper endpoints,导致部分合并前准备能
力仍停留在 Raw API 层,文档和 Agent Skill 也只能保留底层 API 示例。

修复方案

shortcuts/pr 中新增两个 Shortcut:

  • pr +branches:只读 GET 命令,用于获取 PR 可用分支。
  • pr +check-can-merge:POST 命令,用于检查 head 是否可合并到 base

其中 pr +check-can-merge 增加 --dry-run--yes 保护,避免 Agent 场景直接
执行远端 POST。同步补齐单元测试、i18n、README、中文 README、PR Skill、Gatekeeper
Skill 和 change note。

feat(pr): add merge readiness and branch helper shortcuts PR 内容: ## 合并请求描述 本次合并请求增强 PR Shortcut 的合并前准备能力,新增 `pr +branches` 和 `pr +check-can-merge`,将原本需要 Raw API 调用的可用分支获取、源/目标分支可合并检查 沉淀为标准 Shortcut。 ## 相关Issue 关联Issue编号:暂无 ## 变更内容 ### 1. 增强了 PR 分支辅助能力 - 新增 `pr +branches`。 - 映射 `GET /:owner/:repo/pulls/get_branches`。 - 用于获取创建 PR 或检查 PR 前可选择的源分支和目标分支。 ### 2. 增强了 PR 合并准备检查能力 - 新增 `pr +check-can-merge`。 - 映射 `POST /:owner/:repo/pulls/check_can_merge`。 - 支持 `--head` 和 `--base` 参数。 - `--base` 默认使用 `master`。 ### 3. 增强了远端 POST 检查安全保护 - `pr +check-can-merge` 支持 `--dry-run` 预览请求。 - 真实执行必须显式传入 `--yes`。 - dry-run 会输出 repository、method、path、payload 等信息,不调用远端 API。 ### 4. 增强了测试覆盖 - 覆盖 `pr +branches` 的 GET 方法和路径。 - 覆盖 `pr +check-can-merge` 的 dry-run、缺少 `--yes` 保护、真实请求 payload、默 认 base。 - 覆盖两个新增命令的 HTTP 错误传播。 ### 5. 完善了文档和 Skill - 更新 README 和 README.zh-CN 的 PR 示例。 - 更新 `skills/gitlink-pr`,优先推荐 Shortcut 而不是 Raw API。 - 更新 `skills/gitlink-gatekeeper`,将可合并检查纳入 PR 门禁采集流程。 - 新增 `doc/changes/pr-readiness-shortcuts.md` 变更说明。 ## 问题描述 现有 PR Shortcut 已支持 PR 列表、创建、查看、合并、文件、diff、review 等操作,但 获取 PR 可用分支和检查源/目标分支是否可合并仍需要使用 Raw API。Agent 或用户在创 建 PR、合并前检查、质量门禁流程中需要手动拼接 API 方法和路径,体验不统一。 ## 问题复现步骤 1. 查看 `skills/gitlink-pr/SKILL.md`。 2. 可以看到“检查是否可合并”和“获取可用分支”仍记录为 Raw API。 3. 用户需要手动执行 `gitlink-cli api POST /:owner/:repo/pulls/check_can_merge`。 4. PR 门禁或合并前检查流程无法直接复用标准 PR Shortcut。 ## 根本原因 PR Shortcut 命令组没有覆盖 GitLink 的 PR helper endpoints,导致部分合并前准备能 力仍停留在 Raw API 层,文档和 Agent Skill 也只能保留底层 API 示例。 ## 修复方案 在 `shortcuts/pr` 中新增两个 Shortcut: - `pr +branches`:只读 GET 命令,用于获取 PR 可用分支。 - `pr +check-can-merge`:POST 命令,用于检查 `head` 是否可合并到 `base`。 其中 `pr +check-can-merge` 增加 `--dry-run` 和 `--yes` 保护,避免 Agent 场景直接 执行远端 POST。同步补齐单元测试、i18n、README、中文 README、PR Skill、Gatekeeper Skill 和 change note。
ohanabi added 1 commit 2026-07-02 14:20:50 +08:00
wbtiger closed this pull request 2026-07-14 22:57:00 +08:00
wbtiger reopened this pull request 2026-07-14 23:02:15 +08:00
wbtiger closed this pull request 2026-07-14 23:05:40 +08:00

Pull request closed

Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Gitlink/gitlink-cli#319
No description provided.