Skip to content

Repository files navigation

🚀 GitHub Monitor for Cloudflare Workers

Cloudflare Workers GitHub API Telegram Bot

一个运行在 Cloudflare Workers 上的无服务器 GitHub 仓库监控系统
无需服务器,零成本运行,通过 Telegram 实时接收代码更新通知

功能特性快速部署配置指南API 文档

📋 目录

✨ 功能特性

🔍 监控能力

  • 👀 多维监控 - 支持无限数量 GitHub 仓库,可指定监控特定分支
  • 📊 智能检测 - 自动识别新提交并过滤无关变更

🖥️ 可视化界面

  • 🎨 内置仪表盘 - 无需额外部署,直接访问 Worker 域名即可管理
  • 📱 响应式设计 - 完美适配桌面端和移动端
  • 📈 状态概览 - 实时显示检查时间、API 状态和运行日志

🔔 通知系统

  • 💬 Telegram 推送 - 实时发送提交详情(Commit Hash、作者、留言、链接)
  • ⏰ 定时报告 - 可选开启 Cron 定时任务执行汇总报告

🛡️ 安全可靠

  • 🔐 身份验证 - 基于会话管理和 SHA-256 密码加密
  • 💾 数据持久化 - 使用 Cloudflare KV 进行稳定数据存储

⚡ 性能优化

  • 🔑 GitHub Token 支持 - 显著提升 API 调用频率限制
  • 🌐 边缘计算 - 利用 Cloudflare 全球网络实现快速响应

🛠 本地开发

npm install
npm run dev              # 本地启动 wrangler dev
npm run typecheck        # TypeScript 校验
npm run test             # 跑全部测试
npm run deploy           # 部署到 Cloudflare Workers

需要 Node.js ≥ 20。

🚀 快速部署

方式 A:网页控制台部署(适合不安装 CLI 的用户)

⚠️ v2.0.0 起 worker 已重构为 TypeScript 多文件,不能直接复制单文件到网页控制台。 推荐使用方式 B(CLI)。如确需网页部署,请先 npm run deploy --dry-runwrangler deploy --dry-run 拿到 bundle 单文件再粘贴。

方式 B:Wrangler CLI 部署(开发者推荐)

🛠️ 点击展开命令行部署指南

1. 环境准备

# 安装 Wrangler CLI
npm install -g wrangler

# 登录 Cloudflare
wrangler login
  1. 项目配置
# 创建并配置 wrangler.toml
cat > wrangler.toml << EOF
name = "github-monitor"
main = "src/index.js"
compatibility_date = "2023-01-01"

[[kv_namespaces]]
binding = "STORAGE"
id = "your-kv-namespace-id-here"

[triggers]
crons = ["*/30 * * * *"]
EOF
  1. 创建 KV 命名空间
# 创建 KV 命名空间并获取 ID
npx wrangler kv:namespace create "GITHUB_MONITOR_KV"

# 将返回的 ID 替换到 wrangler.toml 中
  1. 部署应用
# 部署到 Cloudflare Workers
npx wrangler deploy

⚙️ 配置指南

  1. 首次登录与初始化

部署成功后,访问您的 Worker 域名:

https://github-monitor.your-name.workers.dev

· 🔐 默认密码: admin123 · ⚠️ 安全提示: 首次登录后,请立即在 系统设置 → 安全设置 中修改密码

  1. 必要配置参数

在仪表盘的 系统设置 中填入以下信息:

参数 说明 获取方式
Telegram Bot Token 机器人密钥 在 Telegram 联系 @BotFather 发送 /newbot 创建
Telegram Chat ID 接收消息的 ID 向您的机器人发送任意消息,然后访问 https://api.telegram.org/bot<TOKEN>/getUpdates 查看
GitHub Token (可选但推荐) API 令牌 GitHub Developer Settings 生成 Classic Token

⚠️ GitHub Token 权限

  • 只读监控:无需特殊权限(公开仓库)或 public_repo(私有仓库)
  • 「同步上游」与「Fork 此仓库」功能:需要 repopublic_repo 权限
ℹ️ 为什么需要 GitHub Token?

· 未认证请求: 每小时 60 次 API 调用限制 · 使用 Token 后: 每小时 5000 次 API 调用限制 · 适用场景: 频繁监控或大量仓库时必需

📡 API 接口

除了 Web 界面,系统还提供以下 REST API 端点:

端点 方法 描述 响应示例
/ GET 返回 Web 管理面板 HTML 页面
/check-updates GET 手动触发更新检查 {"success":true, "message":"检查完成", "checkedCount":5}
/health GET 健康检查接口 {"status":"ok", "timestamp":"..."}

❓ 常见问题

Q: 登录后显示 "Internal Server Error"?

A: 99% 的情况是因为没有正确绑定 KV Storage:

· 检查 Settings → Variables 中是否绑定了 KV · 确认变量名必须是 STORAGE(全大写) · 重新部署 Worker 应用

Q: 定时任务没有发送通知?

A: 请按以下步骤排查:

  1. ✅ Cloudflare 后台是否添加了 Cron Trigger
  2. ✅ Telegram Bot Token 和 Chat ID 是否正确配置
  3. ✅ 是否开启了"定时任务通知"开关
  4. ✅ 检查 Worker 日志是否有错误信息
Q: 如何重置管理员密码?

A: 如果忘记密码,可以通过以下方式重置:

  1. 进入 Cloudflare 后台的 KV 界面
  2. 找到 GITHUB_MONITOR_KV 命名空间
  3. 删除键名为 admin_password_hash 的条目
  4. 重新访问网页,密码将重置为 admin123

📄 许可证

本项目基于 MIT 许可证 开源。


如果这个项目对您有帮助,请给个 ⭐️ 星标支持!

由 Cloudflare Workers 提供支持 🌐

About

No description, website, or topics provided.

Resources

Stars

33 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages