SuperAPI AI 工具集

drupalorg-work-on-issue

智能体与模型

查看项目

更新于 10-16 00:29

技能介绍

用途:这是一个智能体工作流,用于通过 GitLab MR 向 Drupal.org 议题(issue)贡献代码。调用方式为 /drupalorg-work-on-issue <nid>,其中 nid 为议题编号。

主要能力与流程:

  1. 获取议题与 fork 信息:运行 drupalorg issue:show <nid> --format=llm 和 drupalorg issue:get-fork <nid> --format=llm,报告议题标题、状态、项目机器名,以及 fork 是否存在和可用分支。
  2. 目录检测:先读取当前目录的 CLAUDE.md,若其中记录了项目模块或仓库路径则自动 cd 过去;否则运行 git remote get-url origin 并询问用户。
  3. 分支选择:统计 issue:get-fork 输出中匹配 <nid>-* 的分支。恰好一个则自动选中;多个则列出让用户选择;没有则说明尚无分支并询问如何处理。
  4. 配置远程与检出:在项目模块目录中运行 drupalorg issue:setup-remote <nid> 和 drupalorg issue:checkout <nid> <branch>。setup-remote 会把远程 URL 设为 HTTPS,使用 SSH 认证的贡献者需改为 git@git.drupal.org:issue/<project>-<nid>.git,可用 git remote get-url drupalorg 检查。
  5. 检查 MR 状态:先 git diff origin/<default-branch>...HEAD 了解已有改动,再运行 drupalorg mr:list <nid> --format=llm。若存在 MR,则用 drupalorg mr:files、mr:diff、mr:status 查看文件、差异与流水线状态;失败时用 drupalorg mr:logs 获取日志。
  6. 工作循环:修改代码,若存在 vendor/bin/phpcs 则运行 vendor/bin/phpcs <module-path> 并修复违规;提交前用 git log --oneline -5 观察提交风格,仅暂存实际修改的文件,按项目风格提交并 git push;随后轮询 drupalorg mr:status,失败则取日志修复。

限制与注意:所有 git 与 drupalorg 命令必须在项目模块目录中运行,而非 Drupal 站点根目录。工作流在标记 [PAUSE] 的检查点暂停,等待用户确认。issue:setup-remote 是幂等的,可安全重复运行。读取结构化数据时应始终使用 --format=llm。若 fork 没有分支,说明贡献者尚未推送,需与用户讨论后再从上游项目创建新 MR。首次推送后需捕获 GitLab MR 创建 URL 并重新运行 mr:list 以获取新 MR 的 IID。资料未提供该工作流的安装方式、收费、平台支持或效果数据。