GitHub 仓库监控
GitHub 的邮件通知信噪比很低,重要的 Issue 和 Release 容易淹没在大量通知中。通过 Moltbot 的定时任务和 GitHub MCP 工具,你可以精确监控特定仓库的关键活动,只在有实质更新时才收到通知。
前置条件
- Moltbot 已部署并运行
- Telegram Bot 已配置
- 定时任务(Cron)已启用:参考 定时任务文档
- GitHub MCP 工具已配置:需要有效的 GitHub Token,具备读取目标仓库的权限
配置步骤
第一步:确定监控目标
明确你要监控哪些仓库以及关心哪些类型的活动:
| 活动类型 | 说明 | 适用场景 |
|---|---|---|
| Issue | 新建、关闭、评论 | 跟踪 Bug 报告和功能请求 |
| Pull Request | 新建、合并、Review | 关注代码变更 |
| Release | 新版本发布 | 依赖库更新 |
| Star / Fork | 仓库热度变化 | 开源项目运营 |
第二步:编写基础监控 Cron
yaml
cron:
- name: repo-watcher
schedule: "*/30 * * * *"
channel: telegram
prompt: |
用 GitHub 工具检查以下仓库过去 30 分钟的活动:
- steipete/moltbot
- langchain-ai/langchain
如果有新的 Issue、PR 或 Release,给我发一条消息。
如果没有任何更新,不要发送。关键细节:
"*/30 * * * *"表示每 30 分钟执行一次- 最后一句「没有更新就不发」是核心——避免每半小时收到「无事发生」的消息
- 监控间隔应与 prompt 中的时间窗口一致(30 分钟执行一次就检查过去 30 分钟)
第三步:优化通知格式
基础配置可用但信息密度不够。优化后的版本:
yaml
cron:
- name: repo-watcher
schedule: "*/30 * * * *"
channel: telegram
prompt: |
检查以下 GitHub 仓库过去 30 分钟的活动:
监控列表:
- steipete/moltbot(关注 Issue、PR、Release)
- langchain-ai/langchain(仅关注 Release)
- anthropics/anthropic-sdk-python(仅关注 Release)
输出格式:
- 每个有更新的仓库单独一段
- Issue/PR 显示标题、编号和链接
- Release 显示版本号和主要变更摘要
- 在开头用一句话总结更新数量
如果所有仓库都没有更新,不要发送任何消息。第四步:为不同仓库设置不同频率
活跃仓库和稳定仓库不需要相同的检查频率:
yaml
cron:
- name: active-repo-watcher
schedule: "*/15 * * * *"
channel: telegram
prompt: |
检查 steipete/moltbot 过去 15 分钟的新 Issue 和 PR...
如果没有更新,不要发送。
- name: dependency-release-watcher
schedule: "0 */6 * * *"
channel: telegram
prompt: |
检查以下依赖库过去 6 小时有没有新 Release:
- anthropics/anthropic-sdk-python
- openai/openai-python
- langchain-ai/langchain
如果没有更新,不要发送。进阶技巧
监控特定标签的 Issue
如果你只关心带有特定标签的 Issue(比如 bug 或 help-wanted),在 prompt 中明确指定:
yaml
prompt: |
检查 steipete/moltbot 仓库:
- 过去 1 小时内新建的标签为 "bug" 的 Issue
- 过去 1 小时内被标记为 "help-wanted" 的 Issue
只关注这些标签,忽略其他 Issue。
没有匹配的 Issue 就不要发送。结合记忆实现变更追踪
让 Moltbot 记住之前的状态,实现更智能的对比:
yaml
prompt: |
检查 steipete/moltbot 仓库的当前状态:
- 打开的 Issue 总数
- 打开的 PR 总数
- 最新的 Release 版本号
与记忆中上次记录的状态对比。如果有变化:
1. 报告具体变化(新增了哪些、关闭了哪些)
2. 更新记忆中的状态记录
如果没有变化,不要发送。竞品监控
监控竞争对手或同类项目的动态:
yaml
cron:
- name: competitor-watch
schedule: "0 9 * * 1-5"
channel: telegram
prompt: |
检查以下项目过去 24 小时的活动:
- [竞品仓库列表]
重点关注:新 Release、重大 Issue、路线图变更。
如果有值得关注的动态,生成简要分析。
没有重要更新就不发送。自动分类和优先级
在 prompt 中加入优先级判断:
yaml
prompt: |
...
对发现的更新按重要程度分类:
- 🔴 紧急:安全漏洞、破坏性变更
- 🟡 重要:新 Release、重大功能
- 🟢 一般:普通 Issue 和 PR
只推送 🔴 和 🟡 级别的更新。常见问题
GitHub API 限流怎么办? GitHub API 有每小时 5000 次请求的限制(使用 Token)。每 30 分钟检查 2-3 个仓库远低于这个限制。但如果你监控大量仓库,建议降低频率或分组轮询。
如何监控私有仓库? 确保你的 GitHub Token 具有 repo 权限即可。配置方式与公开仓库相同。
历史通知会重复吗? 通过在 prompt 中指定「过去 N 分钟」的时间窗口并让它与 Cron 间隔一致,可以避免重复。如果需要更精确的去重,可结合记忆系统记录已通知的 Issue/PR 编号。