关于 pr-link-issue
将 GitHub 问题和 Linear 工单引用添加到拉取请求描述中的工作流技能。它保留现有内容,并替换已有的 `#### Issues` 区块以避免重复。
主要功能
- 01查找当前分支的开放 PR
- 02读取 Linear 回链评论
- 03追加或替换 Issues 区块
- 04保留 PR 描述的其他内容
- 05提示缺少 Linear 工单键
适用场景
- 01为 PR 添加问题引用
- 02将 PR 关联到 Linear 工单
- 03更新已有的 Issues 区块
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ getsentry/ skills --skill pr-link-issue安装后在 Claude Code 中输入/pr-link-issue确认已加载。
详细介绍
在 PR 上关联 GitHub Issue 和 Linear Ticket
在 PR 描述中追加 Sentry 风格的 #### Issues 区块,同时引用 GitHub issue 和从该 issue 的 linear-linkback 评论中获取的 Linear ticket。
输入
<issue-url>— GitHub issue URL,例如https://github.com/<owner>/<repo>/issues/<n>。如果 PR 位于同一仓库,也可以只提供 issue 编号。- (可选)
<pr-number>— 默认使用当前分支对应的开放 PR。
步骤
-
解析 PR 编号 — 如果用户已提供,则跳过:
gh pr view --json number,body -q '.number'如果该分支不存在 PR,则停止并告知用户。
-
从输入 URL 中提取 issue 编号和仓库,或者接受当前仓库中的纯
#1234。 -
从 issue 的 linear-linkback 评论中获取 Linear ticket:
gh issue view <n> --repo <owner>/<repo> --json comments \ -q '.comments[] | select(.author.login=="linear-code") | .body' \ | grep -Eioe '[a-z]+-[0-9]+' | head -1如果没有匹配项,则改为询问用户 Linear key,或者省略它。
-
读取现有 PR 正文,以便追加内容而不是覆盖:
gh pr view <pr-number> --json body -q '.body' -
构建新的正文。如果正文为空,则只使用
#### Issues区块。否则,在空行后追加。不要重复添加——如果已经存在#### Issues,则替换该区块,而不是再添加一个。格式:
#### Issues * Resolves: #<n> * Resolves: <linear-key> -
使用 heredoc 更新 PR,以保留换行:
gh pr edit <pr-number> --body "$(cat <<'EOF' <new body> EOF )" -
通过输出最终 PR URL 确认:
gh pr view <pr-number> --json url -q '.url'
备注
- Linear linkback 评论由 GitHub 用户
linear-code发布。正文包含一个 Markdown 链接,其文本是 Linear key,例如PY-2357。 - 不同仓库的项目 key 各不相同(sentry-python 使用
PY-…,sentry-javascript 使用JS-…等)——正则表达式[a-z]+-[0-9]+可以匹配它们。 - 不要删除现有 PR 内容。始终先读取,再追加或替换。
- 如果 issue 尚无 Linear linkback(例如刚创建的 issue),则只添加 GitHub issue 引用,并告知用户缺少 Linear key。
评论
支持 Markdown