详细分析 ▾
运行时依赖
安装命令
点击复制技能文档
name: github-monitor GitHub Monitor 用一条 cron 任务监控多仓库,自动去重、按严重级别路由、低噪音通知。
快速配置 收集项: repos: owner/repo 列表 policy_mode: major_only | balanced | verbose check_interval: 建议 2h timezone: 如 America/New_York daily_digest_time: 如 21:00 notify_target: 用户/频道 id state_file: 如 /root/.openclaw/workspace/memory/repo-watch/multi-repos.json
用一条独立 cron 任务监控所有仓库。
每仓库数据源 每次运行调用 GitHub public API:
- 最新 release
- 最近 50 条 commit(按运行窗口过滤)
- 最近合并的 PR(按运行窗口过滤)
策略模式 1) major_only 仅 P0 事件立即通知,跳过 P1/P2 P0 信号:
- 新 release
- PR 关键词命中:breaking|migration|security|auth
2) balanced(默认) P0/P1 立即通知,P2 进每日摘要 P1 关键词示例:gateway|config schema|tooling|memory|cron|session|channel|provider|search|index|install|auth flow
3) verbose P0/P1 立即,P2 也立即(或短窗口合并)
严重度评分建议 不只靠标题关键词,综合信号:
- 标题/正文关键词命中
- label 命中
- 变更路径权重:
基线与通知窗口(关键) 在 state 中记录游标,避免回填旧事件: installed_at: 首次运行时间 last_checked_at: 上次成功扫描时间 last_notified_at: 上次通知时间
规则:
- 首次安装,将三者初始化为当前时间,不发送历史事件。
- 每次仅评估 (last_checked_at, now] 区间内事件。
- 仅对晚于 last_notified_at 的事件发通知。
- 发送任何提醒/摘要后,设置 last_notified_at = now。
- 扫描成功后,设置 last_checked_at = now。
降噪
- 去重指纹:repo + event_type + event_id/hash
- 无新事件时静默
- 同一运行内告警按仓库合并为一条消息
- P2 摘要在 state 中排队(pending_daily)
可靠性
- 瞬态 API 失败指数退避重试
- 连续失败发一次降级提醒
- 恢复后发一次恢复提醒
- 成功运行结束时持久化 state
建议 OpenClaw cron 行为
- 一条任务管所有仓库(易横向扩展)
- 仅编辑列表即可增删仓库
- 重启后仍用同一 state 文件去重
输出模式(默认:简要影响摘要) 默认输出必须简洁、面向决策,而非逐事件长列表。固定结构: 本窗口结论(是否有关键变化) 对用户可能影响(3-5 条,按优先级) 建议动作(最多 3 条) 详情入口:回复“看详情”再展开事件清单
影响优先分组(推荐):
- 配置/兼容性风险(breaking、config schema、auth、gateway)
- 通知/渠道行为变化(telegram/slack/feishu/discord/channel)
- 会话与路由变化(session/dispatch/provider/tools)
- 稳定性/性能修复(timeout、race、retry)
- 文档/测试类(低优先)
详细模式(按需) 仅当用户明确说“看详情/展开/给清单”时,输出事件级详情并附链接。