SuperAPI AI 工具集

ado-create-pr

编程与开发

查看项目

更新于 10-15 12:23

技能介绍

用途

ado-create-pr 用于在 Azure DevOps 中完成从提交到创建拉取请求的完整流程:提交更改、推送分支,并打开或更新一个 Azure DevOps 拉取请求。当用户想要打开、更新或起草 PR,且项目托管在 Azure DevOps 上时使用。

主要能力

  • 遵循约定式提交(Conventional Commits)格式生成 PR 标题,标题不超过 72 字符。
  • 按模板生成完整描述,包含 Summary、Changes、Breaking Changes、Test Plan、Work Items 等分段。
  • 默认以草稿(draft)形式创建 PR。
  • 检测分支上是否已存在活动 PR,若存在则进入更新模式,在原 PR 上编辑而非替换。
  • 从分支名和提交信息中识别工作项 ID(如 AB#<id>、#<id> 或 feature/1234- 形式的数字前缀),并通过 MCP 工具显式关联工作项。
  • 可选地解析并添加用户指定的评审人。
  • 完成后输出 PR 的网页 URL,并汇总分支到目标分支、草稿状态、已关联工作项和已添加评审人。

使用方式

该技能通过 Azure DevOps MCP 工具执行所有 ADO 操作,不使用 az / az devops CLI。若当前会话未加载 Azure DevOps MCP 工具,则停止并询问用户是否回退到 az CLI。

工作流程分为 10 步:

  1. 暂存并提交:遵循 ado-commit 技能,使用相同的约定式提交格式、AI 署名尾注和 AB#<id> 工作项尾注规则。若当前在默认分支(main / master),先切换到特性分支,默认命名如 user/<short-topic> 或 feature/<topic>,已知工作项 ID 时可加前缀 feature/1234-<topic>。
  2. 推送:执行 git push -u origin "$(git branch --show-current)"。
  3. 收集 PR 上下文:读取相对基础分支的完整 diff(git diff origin/<default-branch>...HEAD),而非仅最后一次提交。
  4. 识别仓库、项目和工作项:从 origin 远程 URL 解析项目和仓库名,调用 repo_get_repo_by_name_or_id 获取仓库 ID,扫描分支名和提交信息获取工作项 ID。
  5. 检查是否已有 PR:调用 repo_list_pull_requests_by_repo_or_project,传入 repositoryId、status: "active"、sourceRefName。有结果则进入更新模式。
  6. 生成标题和描述:标题使用约定式提交格式;描述使用给定模板,保留 AB#<id> 引用。
  7. 创建或更新 PR:创建时调用 repo_create_pull_request,默认 isDraft: true;更新时调用 repo_update_pull_request。sourceRefName 和 targetRefName 需要完整的 refs/heads/ 前缀。
  8. 关联工作项:调用 wit_link_work_item_to_pull_request,每个工作项调用一次。
  9. 评审人(可选):若用户指定了评审人,通过 core_get_identity_ids 解析身份 ID,再调用 repo_update_pull_request_reviewers 添加。
  10. 反馈:打印 PR 网页 URL,汇总分支到目标分支、草稿状态、已关联工作项和已添加评审人。

适用场景

  • 项目托管在 Azure DevOps 上,需要提交代码并创建 PR。
  • 需要更新已有 PR 的标题或描述。
  • 需要以草稿形式起草 PR。
  • 需要将 PR 与 Azure DevOps 工作项关联。
  • 需要为 PR 添加指定评审人。

限制

  • 所有 ADO 操作必须通过 Azure DevOps MCP 工具完成,不使用 az / az devops CLI;若未加载 MCP 工具,需用户确认是否回退到 az CLI。
  • 默认创建草稿 PR,除非用户另有说明。
  • 不自动分配用户未提及的评审人。
  • 更新已有 PR 时,尊重已有内容,仅替换过时或错误的部分。
  • 不跳过预提交钩子。
  • 每次提交都必须通过 Assistant-model 尾注标注 AI 协助。
  • PR 标题应概括整个分支,不拼接各提交主题。

相关 Azure DevOps 工具

技能还列出了按子任务分组的可选工具,仅在需要时使用,不默认运行:

  • 定位仓库:core_list_projects、repo_list_repos_by_project。
  • 检查分支:repo_list_branches_by_repo、repo_get_branch_by_name、repo_create_branch。
  • 选择工作项:wit_my_work_items、search_workitem、wit_get_work_item / wit_get_work_items_batch_by_ids。
  • 检查变更:repo_get_pull_request_changes、repo_search_commits、repo_get_file_content。
  • 获取 PR:repo_get_pull_request_by_id。
  • 额外关联:wit_add_artifact_link、wit_add_work_item_comment。
  • 评论与投票:repo_list_pull_request_threads / repo_list_pull_request_thread_comments、repo_create_pull_request_thread、repo_reply_to_comment、repo_vote_pull_request。
  • CI 信号:pipelines_get_build_status、pipelines_get_build_log。