gh-issues¶
Skill 简介¶
gh-issues 是一个基于 OpenClaw 平台的强大自动化工具,旨在帮助开发者高效管理和解决 GitHub 上的问题(Issues)。在日常开发中,开发者常常需要处理大量的 GitHub Issues,包括筛选、分配、修复、提交 Pull Requests(PR)以及处理 PR 审核评论等。这些任务繁琐且耗时,而 gh-issues 通过自动化流程将这些工作大幅简化。它能够自动获取 GitHub Issues,生成子代理(sub-agents)来实施修复方案,并自动创建 PR,最终监控和解决 PR 审核中的评论问题。通过这种方式,gh-issues 极大地提升了开发效率,让开发者能够将更多精力集中在代码编写和功能实现上。
该 Skill 的设计初衷是减少开发者在处理 GitHub Issues 时的人工操作次数。它不仅支持从指定的 GitHub 仓库中获取 Issues,还能根据用户提供的过滤条件(如标签、里程碑、指派者等)精准定位问题。此外,gh-issues 还支持在 Fork 模式下进行操作,确保代码变更在用户自己的 Fork 仓库中进行,最终通过 PR 合并到源仓库。
主要功能¶
gh-issues 提供了以下核心功能:
1. 自动获取 GitHub Issues¶
gh-issues 可以根据用户提供的参数自动从指定的 GitHub 仓库中获取 Issues。它支持多种过滤条件,例如:
- 标签过滤:通过 --label 参数指定标签,例如 --label bug 或 --label enhancement。
- 里程碑过滤:通过 --milestone 参数指定里程碑标题,例如 --milestone v1.0。
- 指派者过滤:通过 --assignee 参数指定指派者,例如 --assignee @me 表示指派给自己。
- 状态过滤:通过 --state 参数指定 Issues 的状态,例如 --state open 表示只获取打开的 Issues。
2. Fork 模式支持¶
gh-issues 支持 Fork 模式,用户可以通过 --fork 参数指定自己的 Fork 仓库。Issues 的代码变更将在 Fork 仓库中进行,最终通过 PR 合并到源仓库。这对于需要保护源仓库或进行代码审查的场景非常有用。
3. 持续监控与自动处理¶
通过 --watch 参数,gh-issues 可以持续监控新的 Issues 和 PR 审核评论,并根据预设的规则自动处理。例如,用户可以设置每隔 5 分钟检查一次新的 Issues,并通过 --interval 5 参数进行配置。
4. 模拟运行模式¶
gh-issues 提供了 --dry-run 参数,允许用户在不实际执行任何操作的情况下,查看将会处理哪些 Issues。这对于调试和确认过滤条件非常有用。
5. 定时任务支持¶
通过 --cron 参数,gh-issues 可以以定时任务的方式运行,自动获取 Issues 并生成子代理进行处理,而无需人工干预。这对于需要定期处理 Issues 的场景非常方便。
6. 通知功能¶
gh-issues 支持通过 Telegram 频道发送最终 PR 摘要,用户可以通过 --notify-channel 参数指定 Telegram 频道 ID。这使得用户可以及时了解 PR 的处理状态和结果。
使用场景¶
1. 日常开发中的 Issues 管理¶
在日常开发中,开发者需要频繁处理大量的 GitHub Issues。gh-issues 可以帮助开发者自动筛选、分配和修复这些问题,减少人工操作,提高工作效率。
2. 持续集成与持续部署(CI/CD)¶
在 CI/CD 流程中,gh-issues 可以作为自动化工具的一部分,自动获取和修复代码中的问题,并提交 PR 进行代码审查和合并。这有助于实现更高效的持续集成和持续部署。
3. 团队协作与代码审查¶
在团队协作中,gh-issues 可以帮助团队成员自动处理 PR 审核评论,确保代码变更符合团队的标准和规范。通过通知功能,团队成员可以及时了解 PR 的处理状态,促进更高效的协作。
4. 自动化运维¶
对于需要定期进行系统维护和更新的场景,gh-issues 可以通过定时任务的方式,自动获取和修复系统中的问题,确保系统的稳定性和安全性。
5. 开源项目管理¶
在开源项目中,gh-issues 可以帮助项目维护者自动处理大量的 Issues 和 PR,减轻维护负担,提高项目管理的效率。
如何使用¶
1. 安装与配置¶
首先,确保你已经安装了 OpenClaw 平台,并且拥有有效的 GitHub 访问令牌(GH_TOKEN)。然后,按照以下步骤进行配置:
-
安装必要的工具:
bash sudo apt-get update sudo apt-get install curl git # 安装 GitHub CLI(可选,如果需要使用 `gh` 命令) sudo apt-get install gh -
配置 GH_TOKEN:
bash export GH_TOKEN="your_github_personal_access_token" # 或者将 GH_TOKEN 添加到 ~/.openclaw/openclaw.json 文件中 echo '{"skills.entries": {"gh-issues": {"apiKey": "your_github_personal_access_token"}}}' > ~/.openclaw/openclaw.json
2. 基本命令示例¶
以下是一个基本的命令示例,用于获取指定仓库中的 Issues 并进行处理:
/gh-issues owner/repo --label bug --limit 5 --fork user/repo --watch --interval 5 --notify-channel -1002381931352
- owner/repo:指定要获取 Issues 的仓库。
- --label bug:只获取标签为
bug的 Issues。 - --limit 5:每次获取最多 5 个 Issues。
- --fork user/repo:指定 Fork 仓库。
- --watch:持续监控新的 Issues 和 PR 审核评论。
- --interval 5:每隔 5 分钟检查一次。
- --notify-channel -1002381931352:将最终 PR 摘要发送到指定的 Telegram 频道。
3. 模拟运行¶
如果只想查看将会处理哪些 Issues,可以使用 --dry-run 参数:
/gh-issues owner/repo --label bug --dry-run
这将显示一个包含匹配 Issues 的表格,但不会进行任何实际的操作。
示例¶
示例 1:基本使用¶
/gh-issues my-org/my-repo --label enhancement --limit 10 --fork my-fork/my-repo --watch --interval 10
这个命令将从 my-org/my-repo 仓库中获取标签为 enhancement 的 Issues,最多获取 10 个,并将代码变更推送到 my-fork/my-repo Fork 仓库。同时,它会每隔 10 分钟检查一次新的 Issues 和 PR 审核评论。
示例 2:模拟运行¶
/gh-issues my-org/my-repo --label bug --dry-run
这个命令将模拟运行,只显示将会获取和处理哪些标签为 bug 的 Issues,而不会进行任何实际的操作。
总结¶
gh-issues 是一个功能强大且灵活的自动化工具,专为 GitHub Issues 管理而设计。它通过自动化流程,帮助开发者更高效地处理 Issues、提交 PR 并监控审核评论,极大地提升了开发效率。无论是在日常开发、CI/CD 流程、团队协作还是开源项目管理中,gh-issues 都能发挥重要作用。对于需要频繁处理 GitHub Issues 的开发者来说,gh-issues 是一个不可或缺的工具。