SuperAPI AI 工具集

commit-message

编程与开发

查看项目

更新于 10-16 10:55

技能介绍

用途

该技能用于从 GitHub 拉取请求(PR)及其关联的 Trac 工单,生成 WordPress Core Subversion 的提交信息(commit message)。它依据官方「WordPress Core Commit Message Format」规范组织输出,最终只输出格式化后、可直接复制的提交信息文本。

主要能力

  • 读取 PR 信息:通过 gh pr view 获取 PR 标题、正文、编号与 URL;若提供了 PR 编号则使用该编号,否则默认使用当前分支的 PR。
  • 提取 Trac 工单:从 PR 描述中查找以 Trac ticket: 开头的行,解析其中的工单 URL 并取出工单编号;若引用了多个工单,则识别被修复的主工单,其余作为 See #... 引用;若未找到工单,则向用户询问。
  • 获取工单详情:始终使用 WordPress Trac MCP 工具获取工单详情,包括组件字段、摘要、描述及讨论中的相关工单引用。组件字段将逐字用作提交信息前缀(除非组件为 General,此时省略前缀)。
  • 探索变更集:始终使用 WordPress Trac MCP 工具获取变更集详情,包括有助于说明关系的 diff;当本次提交直接延续、回退或修复前一次变更集时,添加 Follow-up to rNNNNN 行。
  • 构建 Props 名单:从 PR 的机器人评论中提取以 Props 开头的行;若无该评论,则从 PR 作者、评审者与 Trac 工单参与者中构建。GitHub 用户名通过官方查询 API 批量解析为 WordPress.org 用户名,无法解析的会被标记以便人工处理,未验证的用户名不会写入 Props 行。
  • 生成提交信息:按官方格式指南组织首行摘要、描述、Developed in、Follow-up to、Props 与工单引用等部分。

使用方式

以技能方式调用,可传入 PR 编号作为 $0 参数。执行过程中会调用 gh 命令、WordPress Trac MCP 工具,以及 WordPress.org 的用户名查询接口:

gh pr view [pr-number] --json title,body,number,url --template '{{.title}}\n---\nPR Number: {{.number}}\nPR URL: {{.url}}\n---\n{{.body}}'
gh pr view [pr-number] --json comments --jq '.comments[] | select(.author.login == "github-actions" and (.body | test("Core Committers: Use this line as a base for the props when committing in SVN:"))) | .body'
curl -s -X POST https://profiles.wordpress.org/wp-json/wporg-github/v1/lookup/ -H 'Content-Type: application/json' -d '{"github_user":["USERNAME1","USERNAME2"]}'

输出要求:只输出提交信息文本,使用 markdown 代码块方便复制,不附加其他说明。唯一例外是当有贡献者无法解析为 WordPress.org 用户名时,在代码块后以简短说明列出,供提交者手动处理。

提交信息格式要点

  • 首行摘要:单行、无换行,约 50 字符、最多 70 字符,以工单组件作前缀(General 时省略),使用祈使语气,以句号结尾。
  • 描述:简洁,通常两到四句;不重述 diff 或实现细节;与摘要间以空行分隔;不手动换行;代码或钩子用反引号包裹;# 加数字会自动链接到 Trac 工单,因此该形式仅用于 Trac 工单引用,GitHub issue 与 PR 需写完整 URL。
  • Developed in 行:Developed in: {PR URL},位于描述末尾、Follow-up to 行之前,前后各需空行。
  • Follow-up to 行(可选):Follow-up to r12345, r67890.,变更集编号统一使用 r 前缀,位于 Developed in 之后。
  • Props 行:Props username1, username2.,用户名前不加 @,Props 后不加冒号,以逗号加空格分隔,以句号结尾,使用 WordPress.org 用户名。
  • 工单引用:在 Props 下方单独一行,Fixes #12345. 关闭工单,See #12345. 仅引用;多个工单如 Fixes #123, #456. See #789.

适用场景

适用于 WordPress Core 贡献者与提交者,在将 GitHub PR 合并进 SVN 时快速产出符合规范的提交信息,同时整理贡献者 Props 与相关工单、变更集引用。

限制

依赖 gh CLI、WordPress Trac MCP 工具与 WordPress.org 用户名查询接口。GitHub 用户名到 WordPress.org 用户名的解析可能失败,此类用户不会被写入 Props 行,而需人工核实。未在 PR 或工单中找到 Trac 工单时需由用户补充。