研发协作
需要在当前 PR 描述中追加 GitHub issue 与…
当被要求把 GitHub issue(及自动解析出的 Linear ticket)关联到当前 PR 描述时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
需要在当前 PR 描述中追加 GitHu特定
解决思路
- 解析 PR 编号:若用户未提供,运行 `gh pr view --json number,body -q '.number'`;若当前分支没有 PR,停止并告知用户。
- 从输入 URL 中提取 issue 编号与 repo(owner/repo);若输入是裸 #1234 且 PR 在同一仓库,则使用当前仓库。
- 从 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 body,确保是追加而不是覆盖:运行 `gh pr view <pr-number> --json body -q '.body'`。
- 构造新 body:若原 body 为空,只使用 `#### Issues` 区块;否则在其后空一行再追加;若已存在 `#### Issues`,则替换该区块而不是新增第二个。格式为 `#### Issues` 下写 `* Resolves: #<n>` 和 `* Resolves: <linear-key>`。
- 用 heredoc 更新 PR body 以保留换行:运行 `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(例如刚创建),只添加 GitHub issue 引用,并告知用户缺少 Linear key。
适用边界 · 注意事项
- 当前分支没有 PR,且用户也未提供 PR 编号时。
- 未安装并认证 `gh` CLI,或无法访问对应 GitHub 仓库/issue/PR 时。
- 需要修改的不是 PR 描述,而是评论、commit message 或其他位置时。