一个自动化的Git提交记录分析和周报生成工具,支持使用大模型(硅基流动API)生成专业的周报,并支持定时任务和手动执行。
- ✅ 自动读取Git提交记录 - 支持指定时间范围、作者过滤
- ✅ 智能周报生成 - 使用硅基流动API生成专业的Markdown格式周报
- ✅ 定时任务支持 - 支持Windows和Linux平台,可配置每周自动生成
- ✅ 手动执行 - 支持命令行手动触发周报生成
- ✅ 多项目支持 - 可同时管理多个项目的周报生成
- ✅ 灵活配置 - 通过YAML配置文件管理所有设置
- ✅ 跨平台 - 支持Windows和Linux系统
- ✅ 一键打包 - 支持打包为可执行文件,无需Python环境
如果你不想安装Python环境,可以直接使用打包好的可执行文件:
-
下载打包版本
- Windows: 下载
git-report.exe - Linux: 下载
git-report二进制文件
- Windows: 下载
-
配置
# 复制配置文件模板 cp config.yaml.example config.yaml # 编辑配置文件,填入API密钥和项目路径
-
运行
# Windows git-report.exe generate # Linux ./git-report generate
📦 打包说明: 详细的打包步骤请参考 BUILD.md
git clone https://github.com/Deep-Octopus/GitCommit2Report.git
cd gitcommit2reportpip install -r requirements.txt复制配置文件模板并修改:
Windows:
copy config.yaml.example config.yamlLinux/Mac:
cp config.yaml.example config.yaml
chmod +x run.sh # 给启动脚本添加执行权限编辑 config.yaml,配置以下内容:
- API配置: 硅基流动API的地址、密钥和模型
- 项目配置: Git项目路径、定时任务计划、输出路径等
配置文件示例:
# 硅基流动API配置
api:
base_url: "https://api.siliconflow.cn/v1"
api_key: "your_api_key_here"
model: "deepseek-ai/DeepSeek-V3"
# 项目配置
projects:
- name: "我的项目"
path: "/path/to/your/project"
enabled: true
schedule: "0 9 * * 1" # 每周一上午9点
time_range:
days: 7
output_path: "./reports"项目提供了命令行接口,支持以下命令:
生成所有项目的周报:
python main.py generate生成指定项目的周报:
python main.py generate --project "项目名称"指定时间范围(过去N天):
python main.py generate --project "项目名称" --days 7指定输出路径:
python main.py generate --project "项目名称" --output "./custom_reports"启动定时任务调度器(前台运行):
python main.py schedule在后台运行(适合作为服务):
python main.py schedule --backgroundpython main.py testpython main.py list-projects定时任务使用Cron表达式格式:分 时 日 月 星期
示例:
0 9 * * 1- 每周一上午9点0 18 * * 5- 每周五下午6点0 9 1 * *- 每月1号上午9点
在Windows上,你也可以使用Windows任务计划程序:
- 打开"任务计划程序"
- 创建基本任务
- 设置触发器(例如:每周一)
- 设置操作:启动程序
- 程序:
python - 参数:
main.py generate - 起始于:项目目录路径
- 程序:
在Linux上,可以使用systemd服务或crontab:
创建服务文件 /etc/systemd/system/git-report.service:
[Unit]
Description=Git周报生成器
After=network.target
[Service]
Type=simple
User=your_user
WorkingDirectory=/path/to/gitcommit2report
ExecStart=/usr/bin/python3 /path/to/gitcommit2report/main.py schedule --background
Restart=always
[Install]
WantedBy=multi-user.target启动服务:
sudo systemctl enable git-report
sudo systemctl start git-report编辑crontab:
crontab -e添加任务(例如每周一9点执行):
0 9 * * 1 cd /path/to/gitcommit2report && python3 main.py generate
gitcommit2report/
├── src/
│ ├── __init__.py # 包初始化
│ ├── config.py # 配置管理
│ ├── git_reader.py # Git操作模块
│ ├── api_client.py # 硅基流动API客户端
│ ├── report_generator.py # 周报生成器
│ ├── scheduler.py # 定时任务调度器
│ ├── cli.py # 命令行接口
│ └── logger.py # 日志模块
├── main.py # 主入口
├── config.yaml.example # 配置文件模板
├── requirements.txt # Python依赖
├── git-report.spec # PyInstaller打包配置
├── build_windows.bat # Windows打包脚本
├── build_linux.sh # Linux打包脚本
├── BUILD.md # 打包说明文档
├── README.md # 说明文档
└── .gitignore # Git忽略文件
base_url: 硅基流动API的基础URLapi_key: 你的API密钥model: 使用的模型名称(如:deepseek-ai/DeepSeek-V3)
每个项目包含以下配置项:
name: 项目名称path: Git仓库的本地路径(绝对路径)enabled: 是否启用(true/false)schedule: Cron格式的定时任务计划time_range.days: 周报包含过去N天的提交output_path: 生成的周报保存路径template: 周报模板(可选,当前支持default)
default_time_range: 默认时间范围(天)default_output_path: 默认输出路径timezone: 时区(如:Asia/Shanghai)language: 周报语言(如:zh-CN)
生成的周报为Markdown格式,包含以下内容:
- 时间范围
- 工作概述
- 主要工作内容(按功能模块分类)
- 代码统计(提交数、文件数、代码行数等)
- 贡献者信息
- 提交记录摘要
- API密钥安全: 请妥善保管你的API密钥,不要将包含密钥的
config.yaml提交到版本控制系统 - Git仓库路径: 确保配置的Git仓库路径正确且可访问
- 权限问题: 确保程序有读取Git仓库的权限
- 网络连接: 生成周报需要网络连接以调用API
- 时区设置: 确保时区配置正确,特别是定时任务
- 检查API密钥是否正确
- 检查网络连接
- 使用
python main.py test测试连接
- 确认Git仓库路径正确
- 确认有读取权限
- 检查Git仓库是否损坏
- 检查项目配置中的
enabled是否为true - 检查
schedule格式是否正确 - 查看系统日志或程序输出
MIT License
欢迎提交Issue和Pull Request!