📦 YiHui GITHUB MONITOR — YiHui GitHub 监控

v1.0.0

通过可配置的告警策略监控多个 GitHub 仓库的发布、PR 与安全事件,并利用定时 cron 任务发送低噪音通知。

0· 0·0 当前·0 累计
1yihui 头像by @1yihui (辉哥)
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
该技能的说明基本符合仓库监控用途,但若干运行与访问预期(状态文件位置、通知投递、GitHub/通知凭据)未声明——安装前应审查这些不符之处。
评估建议
此技能看似合法的 GitHub 监控器,但其声明功能与所需权限之间存在差距。安装前,请与作者或管理员确认以下要点: - 状态文件将存储于何处?优先选择工作区作用域、非 root 且由你控制的路径;禁止写入任意 /root 路径。 - 通知如何投递?询问平台提供何种 notify_target 映射,是否需提供 Slack/Telegram/Feishu/Discord 令牌;要求明确文档及最小权限令牌。 - 你是否提供 GitHub token?监控大量仓库通常需认证 token 以规避速率限制——仅授予 repo:public_repo 范围(或更窄)并定期轮换。 - 确认 agent 不会回填历史事件(SKILL.md 称不应回填);实测首次运行行为。 若作者能更新技能元数据,声明所需配置路径与环境变量(并允许配置非 root 状态路径),即可消除不匹配。若无法获得该保证,则视该技能为高风险,限制其文件系统与凭据访问。...
详细分析 ▾
用途与能力
名称/description 与 SKILL.md 一致:它是一个 GitHub 仓库监控器,轮询 GitHub API 并发送通知。然而,该 skill 需要持久化状态存储(建议在 /root/.openclaw/... 下配置 state_file 路径)并将通知投递到目标(telegram/slack/feishu/discord/channel),但 registry 元数据未声明任何必需的 config 路径或凭据。这些能力对该用途而言合理,但未声明文件系统访问和凭据存在不一致。
指令范围
SKILL.md 指示智能体读写持久状态(installed_at、last_checked_at、last_notified_at、pending_daily),并在首次运行时初始化状态。它还建议发送降级/恢复告警,并向多种渠道类型推送通知。这些内容属于监控器职责范围,但指令硬编码了 /root 下的示例路径,并假定智能体可以持久化并推送通知,却未说明如何获取 GitHub 或消息渠道的认证。该技能未要求读取无关系统文件或机密,但需要写入可能具有特权的文件系统路径。
安装机制
仅指令型技能,无安装规范或代码文件——磁盘安装风险极低。安装步骤本身不会下载或写入任何内容;运行时指令才会产生状态写入,这是 monitor 的预期行为。
凭证需求
Registry 元数据未声明任何必需的环境变量/凭据,但实际运行很可能需要:(a) GitHub token,以便在监控大量仓库时避开严格的公开速率限制;(b) 凭据或 channel token,用于向外部消息服务发送通知。SKILL.md 提到多种通知后端,却未给出任何关于其凭据的指导或声明要求。这种不一致可能导致代理在预期元数据之外存储或使用凭据,或尝试未经身份验证的调用,从而行为降级。
持久化与权限
该 skill 通过 state_file 请求持久化状态,并建议使用 /root/.openclaw/workspace/memory/... 下的路径,但未请求 always:true 或提升的平台权限。持久化状态对于去重和摘要生成是合理的,但在多租户系统中使用 /root 路径可能不合适。该 skill 未请求修改其他 skill 或系统设置。
安全有层次,运行前请审查代码。

运行时依赖

无特殊依赖

安装命令

点击复制
官方npx clawhub@latest install yihui-github-monitor
镜像加速npx clawhub@latest install yihui-github-monitor --registry https://cn.longxiaskill.com

技能文档

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 命中
  • 变更路径权重:
高:core/、gateway/、agent/、runtime/ 低:docs/、tests/、examples/

基线与通知窗口(关键) 在 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)
  • 文档/测试类(低优先)

详细模式(按需) 仅当用户明确说“看详情/展开/给清单”时,输出事件级详情并附链接。

数据来源ClawHub ↗ · 中文优化:龙虾技能库