Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitWatcher

GitWatcher 是一个自动化 Git 仓库监控系统,可以监控仓库更新并通过邮件发送通知。系统采用前后端分离架构,前端基于 Vue 3 + Element Plus 开发,后端基于 Flask 开发。

📖 项目概述

GitWatcher 旨在帮助团队和开发者实时监控 Git 仓库的更新情况,当发现新提交时,自动发送格式化的邮件通知。系统支持 AI 驱动的更新日志处理,可以对提交记录进行翻译和总结,生成精美的 HTML 邮件。

核心价值

  • 自动化监控:无需手动检查仓库更新,系统自动完成
  • 及时通知:新提交立即通知,确保团队同步
  • 智能处理:AI 辅助处理更新日志,提供更好的阅读体验
  • 灵活配置:支持多种配置选项,适应不同需求
  • 多语言支持:支持中文、繁体中文和英文

适用场景

  • 开源项目维护者监控贡献情况
  • 团队协作中监控核心仓库更新
  • 依赖库更新监控
  • CI/CD 流程中的仓库状态监控

🌟 功能特性

1. 自动化仓库监控

  • 监控机制:定时检查 Git 仓库的 HEAD 提交,与本地记录对比
  • 频率配置:支持自定义监控频率(分钟、小时、天)
  • 并行处理:多仓库同时监控,提高效率
  • 超时处理:设置合理的超时时间,避免阻塞
  • 失败重试:监控失败时自动重试,确保可靠性

2. 邮件通知系统

  • SMTP 配置:支持主流邮件服务商(Gmail、Outlook、企业邮箱等)
  • 邮件模板:可发送精美的 HTML 邮件,由AI功能生成
  • 发送机制:异步发送,不影响监控流程
  • 通知条件:可配置通知触发条件
  • 发送记录:保存邮件发送记录,便于查询

3. AI 驱动的更新日志处理

  • 更新日志翻译:支持将提交信息翻译成多种语言
  • 更新日志总结:AI 自动生成提交记录摘要
  • 多 AI 提供商支持:可配置不同的 AI 服务提供商
  • 自定义提示词:支持自定义 AI 处理的提示词
  • 处理记录:保存 AI 处理记录,便于调试

4. HTML 邮件生成

  • 响应式设计:适配不同设备的邮件客户端
  • 样式定制:支持自定义邮件样式
  • 动态内容:支持动态插入仓库信息、提交记录等
  • 预览功能:支持邮件预览

5. 多语言支持

  • 支持语言:简体中文 (zh-CN)、繁体中文 (zh-TW)、英文 (en)
  • 动态切换:系统内支持实时切换语言
  • 翻译管理:提供翻译文件管理功能
  • 自动检测:支持根据浏览器语言自动选择

6. 仓库管理

  • 添加仓库:支持添加多个 Git 仓库
  • 编辑配置:可修改仓库的监控配置
  • 删除仓库:支持删除不需要监控的仓库
  • 手动触发:支持手动触发仓库更新检查
  • 状态查看:实时查看仓库监控状态

7. 系统设置管理

  • 监控配置:设置默认监控频率、超时时间等
  • AI 配置:管理 AI 提供商和 API 密钥
  • SMTP 配置:设置邮件服务器信息
  • 系统参数:配置系统级别的参数
  • 保存配置:配置自动保存,重启后生效

8. 用户账户管理

  • 用户登录:基于 JWT 的身份认证
  • 密码修改:支持用户修改密码
  • 头像更新:支持上传和更新用户头像
  • 权限控制:基于角色的权限管理
  • 用户列表:支持查看和管理用户

9. 项目重置功能

  • 一键重置:支持将项目恢复到初始状态
  • 重置范围:可选择重置的数据范围
  • 安全提示:重置前提供安全提示
  • 重置记录:保存重置记录

10. 备份和恢复功能

  • 自动备份:支持定期自动备份配置
  • 手动备份:支持手动触发备份
  • 备份管理:查看和管理备份文件
  • 恢复功能:支持从备份文件恢复配置
  • 跨版本支持:支持不同版本间的备份恢复

11. 日志管理功能

  • 日志级别:支持多种日志级别(DEBUG、INFO、WARNING、ERROR)
  • 日志查询:支持按时间、级别、关键词查询
  • 日志导出:支持导出日志文件
  • 实时日志:支持查看实时日志
  • 日志清理:支持自动清理旧日志

🛠️ 技术栈

前端技术栈

技术 版本 用途
Vue 3 ^3.3.4 渐进式 JavaScript 框架
Vite ^4.4.5 下一代前端构建工具
Element Plus ^2.3.8 基于 Vue 3 的企业级 UI 组件库
Vue Router ^4.2.4 Vue 官方的路由管理器
Pinia ^2.1.6 Vue 官方的状态管理库
Vue I18n ^9.2.2 Vue 官方的国际化插件
Axios ^1.5.0 基于 Promise 的 HTTP 客户端

后端技术栈

技术 版本 用途
Flask ^2.3.2 Python Web 框架
Flask-RESTful ^0.3.10 Flask 扩展,用于构建 REST API
Flask-JWT-Extended ^4.5.3 JWT 认证扩展
Flask-Migrate ^4.0.5 数据库迁移扩展
Flask-SQLAlchemy ^3.0.5 ORM 扩展
APScheduler ^3.10.1 任务调度库
GitPython ^3.1.32 Git 操作库
SQLite 3.37.0 轻量级数据库
python-dotenv ^1.0.0 环境变量管理
requests ^2.31.0 HTTP 客户端库

开发工具

  • VS Code:推荐的代码编辑器
  • ESLint:代码质量检查工具
  • Prettier:代码格式化工具
  • Python 虚拟环境:隔离 Python 依赖
  • Git:版本控制系统

📦 安装和配置

环境要求

  • Node.js:18.x 或更高版本
  • Python:3.8 或更高版本
  • Git:2.0 或更高版本
  • 操作系统:Linux、macOS、Windows

1. 克隆仓库

git clone https://github.com/Warm-winter/gitwatcher.git
cd gitwatcher

2. 后端安装和配置

2.1 创建和激活虚拟环境

# Linux/macOS
cd backend
python3 -m venv venv
source venv/bin/activate

# Windows
cd backend
python -m venv venv
venv\Scripts\activate

2.2 安装依赖

pip install -r requirements.txt

2.3 数据库迁移

flask db upgrade

2.4 启动后端服务

cd backend/
source venv/bin/activate
flask run --host=0.0.0.0 --port=9528

后端服务将运行在 http://localhost:9528

3. 前端安装和配置

3.1 安装依赖

cd ../frontend
npm install

或使用 yarn:

yarn install

3.2 配置环境变量

创建 .env 文件,配置 API 地址:

VITE_API_BASE_URL=http://localhost:9528/api

3.3 启动开发服务器

npm run dev

或使用 yarn:

yarn dev

前端应用将运行在 http://localhost:5174

3.4 构建生产版本

npm run build

或使用 yarn:

yarn build

构建产物将生成在 dist 目录中。

📁 项目结构

gitwatcher/
├── backend/           # 后端应用
│   ├── app/           # 后端核心代码
│   │   ├── __init__.py  # 应用初始化
│   │   ├── ai_processing.py  # AI 处理模块
│   │   ├── api/       # API 路由
│   │   ├── core/      # 核心功能
│   │   ├── git_utils.py  # Git 工具函数
│   │   ├── models/    # 数据模型
│   │   ├── routes/    # Web 路由
│   │   └── tasks.py   # 定时任务
│   ├── config.py      # 配置文件
│   ├── requirements.txt # Python 依赖
│   ├── run.py         # 后端启动脚本
│   └── venv/          # Python 虚拟环境
├── frontend/          # 前端应用
│   ├── public/        # 静态资源
│   ├── src/           # 前端源代码
│   │   ├── assets/    # 资源文件
│   │   ├── components/ # Vue 组件
│   │   ├── locales/   # 多语言配置
│   │   ├── router/    # 路由配置
│   │   ├── store/     # 状态管理
│   │   ├── utils/     # 工具函数
│   │   ├── views/     # 页面组件
│   │   ├── App.vue    # 根组件
│   │   └── main.js    # 入口文件
│   ├── .eslintrc.js   # ESLint 配置
│   ├── .prettierrc.js # Prettier 配置
│   ├── index.html     # HTML 模板
│   ├── package.json   # npm 依赖
│   └── vite.config.js # Vite 配置
└── README.md          # 项目说明文档

🚀 使用说明

1. 访问应用

开发模式下,在浏览器中访问:http://localhost:5174

2. 登录系统

使用默认管理员账户登录:

  • 默认用户名:admin
  • 默认密码:admin

3. 主要功能使用

3.1 添加仓库

  1. 登录后,点击左侧菜单的「仓库管理」
  2. 点击「添加仓库」按钮
  3. 填写仓库信息:
    • 仓库名称:自定义名称
    • 仓库 URL:Git 仓库的 URL
    • 监控频率:选择监控频率
    • 通知邮箱:接收通知的邮箱地址
  4. 点击「保存」按钮

3.2 配置系统设置

  1. 点击左侧菜单的「系统设置」
  2. 配置 SMTP 邮件服务器:
    • SMTP 服务器地址
    • SMTP 端口
    • 发件人邮箱
    • 发件人密码/授权码
  3. 配置 AI 提供商:
    • 选择 AI 提供商
    • 输入 API 密钥
  4. 点击「保存设置」按钮

3.3 查看监控日志

  1. 点击左侧菜单的「日志管理」
  2. 查看系统日志和监控日志
  3. 可按状态、时间范围过滤日志
  4. 点击日志条目查看详细信息

3.4 手动触发监控

  1. 在「仓库管理」页面
  2. 找到需要手动触发的仓库
  3. 点击「手动检查」按钮
  4. 系统将立即检查该仓库的更新情况

🌐 多语言支持

切换语言

  1. 点击页面右上角的语言切换按钮
  2. 选择需要的语言(简体中文、繁体中文、英文)
  3. 系统将立即切换到所选语言

添加新语言

  1. frontend/src/locales/ 目录下创建新的语言文件(如 ja.json
  2. 复制现有语言文件的内容,翻译为目标语言
  3. frontend/src/i18n.js 中添加新语言的配置
  4. 重新构建前端应用

📝 开发指南

代码规范

前端代码规范

  • 使用 ESLint 进行代码质量检查
  • 使用 Prettier 进行代码格式化
  • 遵循 Vue 3 的最佳实践
  • 组件命名使用 PascalCase
  • 变量和函数命名使用 camelCase
  • 文件命名使用 kebab-case

后端代码规范

  • 遵循 PEP 8 代码风格
  • 使用 Flask 最佳实践
  • 函数和变量命名使用 snake_case
  • 类命名使用 PascalCase
  • 注释清晰,说明函数用途和参数

开发流程

  1. 创建分支:git checkout -b feature/feature-name
  2. 开发功能:实现所需功能
  3. 测试:确保功能正常工作
  4. 代码检查:
    • 前端:npm run lint
    • 后端:使用 flake8 或其他工具检查
  5. 提交代码:git commit -m 'Add feature: feature-name'
  6. 推送到远程:git push origin feature/feature-name
  7. 创建 Pull Request

分支管理

  • main:主分支,用于发布稳定版本
  • develop:开发分支,用于集成新功能
  • feature/*:功能分支,用于开发新功能
  • bugfix/*: bug 修复分支,用于修复问题
  • release/*:发布分支,用于准备发布新版本

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

MIT许可证摘要

MIT 许可证是一种宽松的开源许可证,允许您:

  • 自由使用、复制、修改、合并、发布、分发、再许可和销售软件副本
  • 在软件及其文档中保留版权和许可声明
  • 无需承担任何担保责任

完整许可证文本请参见 LICENSE 文件。

📞 联系方式

📋 更新日志

v1.0.0 (2025-12-13)

功能特性

  • ✅ 自动化仓库监控
  • ✅ 邮件通知系统
  • ✅ AI 驱动的更新日志翻译和总结
  • ✅ HTML 邮件生成
  • ✅ 多语言支持
  • ✅ 仓库管理功能
  • ✅ 系统设置管理
  • ✅ 用户账户管理
  • ✅ 项目重置功能
  • ✅ 备份和恢复功能
  • ✅ 日志管理功能

技术栈

  • 前端:Vue 3, Element Plus, Vite, Vue Router, Pinia, Vue I18n, Axios
  • 后端:Flask, SQLite, Flask-Migrate, JWT, APScheduler, GitPython

享受使用 GitWatcher! 🎉

About

自动化Git仓库监控系统,监控仓库更新并通过邮件发送通知

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages