SuperAPI AI 工具集

github-comment-cleanup

编程与开发

查看项目

更新于 11-08 05:13

技能介绍

用途

GitHub Comment Cleanup 是一个自动化插件,用于在 GitHub 仓库中按计划执行注释清理。它本身不包含清理规则,而是加载 comment-cleanup 技能,在有配置的每个仓库上开启一次清理会话,并最多为该仓库打开一个 Pull Request。默认按周运行。

主要能力

  • 按 cron 计划(默认每周)对配置的仓库执行清理。
  • 每次运行先记录上一轮会话的结果:若产生了 PR,则记录每个文件的原始与清理后指纹;若为 NO_CHANGES,记录原始指纹;若失败则不记录,相关文件会在后续运行中再次被处理。
  • 当该仓库此前打开的 PR 仍处于打开状态,或上一轮会话仍在运行时,跳过该仓库。
  • 对默认分支做浅克隆,按 git blob SHA 为候选文件建立指纹。已有记录且未变化的文件直接跳过,不读取内容;无注释的文件直接记录;有变化的文件优先于从未见过的文件排队,再按路径排序。
  • 单次最多排队 50 个文件(max_files 可设 1–50,默认 50),并受 max_bytes 限制,超出部分留待后续运行。
  • 启动一个会话,加载 comment-cleanup 技能并在首条消息中传入排队路径;代理负责编辑、运行 verify_comment_only.py、提交、推送并创建 PR。

使用方式

通过 plugin-spec 接口创建自动化。插件源为:

{
  "source": "github:OpenHands/extensions",
  "repo_path": "plugins/github-comment-cleanup",
  "ref": "main"
}

ref 在插件未正式发布期间为 main;发布后可改用对应的 release tag,例如 v<extensions-version>。本地 Agent Canvas 开发可用本地路径作为 source。

请求模板示例包含 name、plugin、config 与 trigger 字段。config 可设置 repos、include、exclude、max_files、max_bytes、branch_prefix、pull_request_mode;trigger 使用 cron 类型,例如 "0 9 * * 1" 配合时区 UTC。创建前应先询问用户需要清理哪些仓库,以及是否需要包含或排除某些路径。include 与 exclude 为 fnmatch 通配符,其中 * 也会匹配 /。权威配置 schema 位于 plugins/github-comment-cleanup/.plugin/plugin.json 的 automation.config_schema,创建前应按其校验用户提供的值。

运行要求

  • 需要一个具备 contents 和 pull requests 写权限的 GITHUB_PERSONAL_ACCESS_TOKEN 密钥;在 OpenHands Cloud 与 Enterprise 上,若缺少该密钥则使用已连接的 GitHub 集成。
  • 在 OpenHands Cloud 与 Enterprise 上需要自动化 KV 存储;没有该存储的本地 Agent Canvas 改用文件保存状态。
  • 入口为 scripts 中的 python3 plugin_runner.py main.py。
  • 代理配置为 default,次级插件为空列表。清理会话从与插件相同的来源和已解析提交加载 skills/comment-cleanup,确保技能与脚本版本一致。
  • 状态结构见 references/state-schema.md;删除某仓库的键可强制完整重新检查。

适用场景与限制

适用于希望定期、以低干扰方式清理代码注释并生成可审查 PR 的 GitHub 仓库,尤其适合需要控制单次处理规模和避免重复处理已检查文件的场景。限制包括:仅处理 GitHub 仓库;单次最多 50 个文件;同一仓库同时最多一个未关闭 PR;需要相应权限的令牌或集成;自动化调度与 KV 存储能力依赖所在平台。