mcpField
G
gh-update-pr

gh-update-pr

github.com/lwlee2608开发1194 次安装1 天前更新
代码仓库

关于 gh-update-pr

一个通过 REST API 更新 GitHub PR 标题或描述的技能,适用于 `gh pr edit` 因弃用的 GraphQL 字段而失效时。它提供安全构造请求内容和验证更新的步骤。

主要功能

  1. 01通过 `gh api` REST 接口更新
  2. 02使用 `jq --arg` 安全构造 JSON
  3. 03先获取当前 PR 上下文
  4. 04省略未更改的字段
  5. 05验证响应 URL 和更新字段

适用场景

  1. 01不使用 `gh pr edit` 修改 PR 标题
  2. 02通过 REST API 更新 PR 描述
  3. 03避免陈旧字段覆盖 PR 内容

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/lwlee2608/agent-skills --skill gh-update-pr

安装后在 Claude Code 中输入/gh-update-pr确认已加载。

详细介绍

通过 REST API 更新 PR

由于 GitHub 弃用 Projects Classic(projectCards GraphQL 字段错误),gh pr edit 已无法正常工作。请改用 REST API。gh pr view 和 gh pr create 仍可正常使用,只有 gh pr edit 受到影响。

规则

  1. 绝不要使用 gh pr edit 更新 PR 标题或正文。它会报 GraphQL 错误。
  2. 使用 gh api 调用 REST 端点。始终通过 jq --arg 管道传递 JSON,以避免 shell 注入:
    jq -n --arg title "..." --arg body "..." '{title: $title, body: $body}' | \
      gh api repos/{owner}/{repo}/pulls/{number} -X PATCH --input - --jq '.html_url'
    
  3. 更新前先获取当前 PR 的上下文:
    gh pr view --json number,url,baseRefName
    
  4. 省略未更改的字段。 如果只更新标题,就不要在 JSON 负载中包含 body,反之亦然。包含未更改的字段可能会用过时的内容覆盖它。

验证步骤

  1. 发送 PATCH 请求后,确认返回的是 PR 的 html_url(而非错误)。
  2. 运行 gh pr view --json title,body,并确认更新后的字段与预期一致。

需要留意的常见错误

  • 只更改一个字段,却同时包含标题和正文。 这可能会用过时或空白的内容覆盖另一个字段。只包含要更新的字段。
  • 在没有跟踪分支的 Git 仓库外运行命令。 gh pr view 需要仓库上下文。如果失败,请显式传入 --repo owner/repo。
  • 忘记提取 owner/repo/number。 始终先通过 gh pr view 获取这些值,不要硬编码或自行假设。

评论

支持 Markdown