Skip to content

Repository files navigation

🔔 GitHub 项目监控

把仓库里的每一次重要变化,准时送到 AstrBot 会话。

AstrBot Plugin Version

Push 概要 · Commit 明细 · Issue / PR 动态 · 文字 / 卡片汇报


📖 这是什么?

一个面向 AstrBot 的 GitHub 仓库监控插件。它会定时读取 Repository Events,把新出现的 Push、Commit、Issue 和 Pull Request 活动整理后发送到指定会话。

首次轮询只建立基线,后续仅汇报新增活动;处理状态由 AstrBot 插件 KV 持久化,避免重复通知。


✨ 功能亮点

  • 🔄 多仓库轮询 - 用统一间隔持续检查多个 GitHub 仓库。
  • 🌿 分支筛选 - 默认仅监测 main,也可填写多个指定分支。
  • 🎛️ 自由选择内容 - Push、Commit、Issue、PR 可以任意组合或全部关闭。
  • 📝 文字汇报 - 按时间展示仓库、分支、SHA、作者、完整信息与直达链接。
  • 🖼️ 卡片汇报 - 支持「简约暗色卡片」和「终端风格」,同轮活动合并为一张长图。
  • 🤖 AI 变更摘要 - 根据 Commit、变更文件与 Patch 生成固定结构的简体中文变更摘要。
  • 🛡️ 自动降级 - AI、Compare 或卡片渲染异常时保留可用信息并回退到文字消息。
  • 💾 增量去重 - 记录已处理活动,插件重启后也不会重复推送旧消息。

🚀 三步启用

  1. 打开 AstrBot WebUI,进入本插件的配置页面。
  2. repositories 中填写仓库,在 notification_targets 中填写接收消息的群号。
  3. 选择监测分支、汇报内容与展示方式,保存配置。

仓库示例: openai/codex

消息目标示例: 123456

监测分支示例: maindevelop

保存后首次轮询只记录当前活动;仓库出现下一条受支持的活动时,插件才会发送汇报。 管理员可发送 /github_check 立即检查一次;新汇报仍按已配置的消息目标推送。


🧩 Push 与 Commit 怎么选?

Commit 是一条具体的版本记录;Push 是把一个或多个 Commit 推送到远程仓库的动作。插件将两者拆成独立选项,方便按需控制信息密度。

选择方式 汇报内容 是否调用模型
Push 分支、操作者、提交数量、时间、链接和 AI 摘要
Commit 每条 SHA、作者、时间、完整信息、链接和 AI 摘要
Push + Commit Commit 明细,并在其后附加一次 Push AI 摘要
两者都不选 不处理 Push 汇报,但仍记录活动

文字汇报示例

🔔 GitHub仓库更新通知

📁 仓库:owner/repository
🔗 链接:https://github.com/owner/repository

1. 提交 SHA: a1b2c3d
分支: main
作者: octocat
信息: feat: add repository monitor

🤖 AI 变更摘要: 新增仓库监控能力,并完善活动通知流程。

AI 摘要格式

摘要统一按以下纯文本结构生成,文字和卡片都会保留换行:

一句话总结:简短说明这次更新作用
主要更新:
- 更新了什么 1
- 更新了什么 2

一句话总结由模型控制在 30 个字内,主要更新通常输出 2–4 条;提示已要求不要输出 Markdown 加粗、编号或“主要影响”等额外章节。模型偶发不遵循时不会由程序强制截断。


⚙️ 配置项

配置项 说明 默认值
github_token GitHub Token;公开仓库可留空,私有仓库或高频轮询建议填写
poll_interval 轮询间隔,范围为 1–86400 秒 300
report_mode 文字汇报卡片汇报 文字汇报
card_style 简约暗色卡片终端风格,仅卡片模式生效 简约暗色卡片
monitored_branches 仅监测这些 Push 分支;配置值会去除首尾空白并区分大小写 ["main"]
report_event_types 多选 PushCommitIssuePR 全部选择
notification_targets 所有仓库共用的群号列表(运行时自动转换为 NapCat 群消息目标) []
repositories 仓库列表,每项使用 owner/repo 格式 []

Tip

全局目标每项只需填写群号,例如 123456;运行时会转换为 napcat:GroupMessage:123456。旧版 owner/repo | UMO 订阅格式仍然可用;配置了 notification_targets 时,以全局消息目标为准。


ℹ️ 运行规则

  • 同一仓库、同一轮检测到的活动会合并为一条文字消息或一张卡片。
  • Issue 与 PR 汇报支持新建、关闭、重新打开;PR 还会识别合并活动。
  • Compare 或模型不可用时显示“AI 摘要暂不可用”,Commit 基础明细仍会尽量保留。
  • AI 摘要使用“一句话总结 + 主要更新”格式;文字与卡片保留原始换行,摘要不做程序强制截断。
  • monitored_branches 默认只匹配 main;非字符串或空配置项会忽略,不支持通配符或正则。
  • monitored_branches 不监测任何 Push/Commit,但 Issue/PR 仍会汇报;被过滤 Push 会记为已处理,重新启用后不会补发。
  • 卡片生成失败时全部目标回退为文字;单个目标发送图片失败时只降级该目标。
  • 汇报类型全部取消后保持静默,但仍标记活动为已处理;重新启用不会补发旧活动。

👥 作者

AstrBot · 项目版本 v1.0.0


如果它让仓库动态更容易被看见,欢迎反馈与改进。

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages