SuperAPI AI 工具集

pr-create

编程与开发

查看项目

更新于 10-15 10:10

技能介绍

用途

pr-create 用于把当前工作区中的提交和/或本地改动整理成一个 Pull Request。它会评估当前 Git 状态、确定基础分支、在需要时创建主题分支、提交改动、推送分支,并通过 GitHub CLI 打开 PR。

主要能力

  • 评估当前状态:并行执行 git status、git log --oneline -10、git branch --show-current、git remote -v,判断当前分支名、是否存在未提交改动(已暂存、未暂存或未跟踪)、是否存在未推送的提交。
  • 检查符号链接仓库:扫描 external/ 目录中解析为独立 git 仓库且存在改动的符号链接目录,为这些仓库创建匹配分支、提交、推送并打开配套 PR。非符号链接的真实目录(如 external/ag-shared)会被忽略。
  • 识别基础分支:默认基础为 latest;若分支明确派生自 bX.Y.Z 发布分支且非 latest,则使用该发布分支;若存在歧义,会询问用户。
  • 确保主题分支:若当前位于 latest 或 bX.Y.Z 分支,则创建新主题分支。分支命名遵循 git-conventions:若参数含 JIRA 工单(如 AG-12345),使用 ag-12345/<descriptive-slug>;否则使用 <initials>/<descriptive-slug>。
  • 提交改动:审查 git diff、git diff --staged、git status,优先暂存具体文件而非 git add -A,并按 git-conventions 编写提交信息。若无未提交改动且无未推送提交,则告知用户无内容可提交并停止。
  • 推送分支:使用 git push -u origin <branch-name> 设置上游。
  • 创建 PR:使用 gh pr create --base <BASE_BRANCH> --title "<title>" --body "...",遵循 git-conventions;若关联 JIRA,在正文中包含 "Fix #AG-XXXX"。
  • 报告结果:输出 PR URL 与简要摘要;若创建了符号链接仓库的配套 PR,一并列出。

使用方式

该技能通过命令 /pr-create 调用,可附带参数 ${ARGUMENTS}:

  • JIRA 工单号(如 AG-12345):用于分支命名、提交前缀和 PR 标题。
  • 改动描述:用于分支 slug、提交信息和 PR 标题。
  • --base <branch>:覆盖基础分支检测。

示例:

  • /pr-create:从当前状态和改动推断一切。
  • /pr-create AG-12345 Add tooltip delay support:关联 JIRA 的 PR。
  • /pr-create Fix axis label overlap for long text:无 JIRA 的 PR。
  • /pr-create --base b13.0.0:指定目标发布分支。

若用户提供 help 命令选项,则解释如何使用该命令,并立即退出,不继续执行后续步骤。

前置条件

  • 必须可用 Git CLI 与 GitHub CLI(gh)。
  • 用户必须已通过 gh 认证(gh auth status)。
  • 仓库必须存在名为 origin 的远程。

工作流程

  1. 评估当前状态:并行收集上下文,确定当前分支、未提交改动、未推送提交。
  2. 检查符号链接仓库:扫描 external/ 下的符号链接目录,对存在未提交或未推送改动的仓库创建匹配分支、提交、推送并打开 PR,记录 PR URL。若尚无主题分支,可推迟到第 4 步之后、第 5 步之前执行;关键要求是符号链接仓库的 PR 在外层仓库 PR 之前创建。
  3. 识别基础分支:检查当前分支是否派生自 bX.Y.Z 发布分支,默认基础为 latest,歧义时询问用户,结果存为 BASE_BRANCH。
  4. 确保主题分支:若在 latest 或 bX.Y.Z 分支上,则按 git-conventions 创建并切换到新主题分支;若已在主题分支上则继续使用。
  5. 提交改动(如有):审查改动,暂存相关文件,按 git-conventions 编写提交信息并提交。若无改动且无未推送提交,告知用户并停止。
  6. 推送分支:git push -u origin <branch-name>。
  7. 创建 PR:使用 gh pr create,指定基础分支、标题和正文,遵循 git-conventions;若关联 JIRA,正文包含 "Fix #AG-XXXX"。
  8. 报告结果:输出 PR URL 与摘要,并列出符号链接仓库的配套 PR。

适用场景

  • 需要从当前本地改动快速创建 PR 的日常开发流程。
  • 涉及多个符号链接仓库、需要同时创建配套 PR 的复杂改动。
  • 需要按 JIRA 工单或描述自动生成分支名、提交信息和 PR 标题的团队规范场景。
  • 需要指定发布分支作为基础分支的 PR。

限制

  • 依赖 Git CLI 与 GitHub CLI(gh),且用户必须已通过 gh 认证。
  • 仓库必须存在名为 origin 的远程。
  • 符号链接仓库处理仅针对 external/ 目录下的符号链接目录,非符号链接的真实目录会被忽略。
  • 基础分支识别在歧义时需要用户确认。
  • 若无未提交改动且无未推送提交,则不会创建 PR。
  • 具体 git-conventions 内容需参考 .rulesync/skills/git-conventions/SKILL.md,本资料未提供其细节。