Skip to content

Repository files navigation

Git周报生成器

一个自动化的Git提交记录分析和周报生成工具,支持使用大模型(硅基流动API)生成专业的周报,并支持定时任务和手动执行。

功能特性

  • 自动读取Git提交记录 - 支持指定时间范围、作者过滤
  • 智能周报生成 - 使用硅基流动API生成专业的Markdown格式周报
  • 定时任务支持 - 支持Windows和Linux平台,可配置每周自动生成
  • 手动执行 - 支持命令行手动触发周报生成
  • 多项目支持 - 可同时管理多个项目的周报生成
  • 灵活配置 - 通过YAML配置文件管理所有设置
  • 跨平台 - 支持Windows和Linux系统
  • 一键打包 - 支持打包为可执行文件,无需Python环境

安装

方式一:使用打包版本(推荐,无需Python环境)

如果你不想安装Python环境,可以直接使用打包好的可执行文件:

  1. 下载打包版本

    • Windows: 下载 git-report.exe
    • Linux: 下载 git-report 二进制文件
  2. 配置

    # 复制配置文件模板
    cp config.yaml.example config.yaml
    # 编辑配置文件,填入API密钥和项目路径
  3. 运行

    # Windows
    git-report.exe generate
    
    # Linux
    ./git-report generate

📦 打包说明: 详细的打包步骤请参考 BUILD.md

方式二:从源码安装(需要Python环境)

1. 克隆或下载项目

git clone https://github.com/Deep-Octopus/GitCommit2Report.git
cd gitcommit2report

2. 安装依赖

pip install -r requirements.txt

3. 配置

复制配置文件模板并修改:

Windows:

copy config.yaml.example config.yaml

Linux/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"

使用方法

命令行工具

项目提供了命令行接口,支持以下命令:

1. 手动生成周报

生成所有项目的周报:

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"

2. 启动定时任务

启动定时任务调度器(前台运行):

python main.py schedule

在后台运行(适合作为服务):

python main.py schedule --background

3. 测试API连接

python main.py test

4. 列出所有项目

python main.py list-projects

定时任务配置

定时任务使用Cron表达式格式:分 时 日 月 星期

示例:

  • 0 9 * * 1 - 每周一上午9点
  • 0 18 * * 5 - 每周五下午6点
  • 0 9 1 * * - 每月1号上午9点

Windows系统定时任务

在Windows上,你也可以使用Windows任务计划程序:

  1. 打开"任务计划程序"
  2. 创建基本任务
  3. 设置触发器(例如:每周一)
  4. 设置操作:启动程序
    • 程序:python
    • 参数:main.py generate
    • 起始于:项目目录路径

Linux系统定时任务

在Linux上,可以使用systemd服务或crontab:

使用systemd(推荐)

创建服务文件 /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:

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忽略文件

配置说明

API配置

  • base_url: 硅基流动API的基础URL
  • api_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格式,包含以下内容:

  • 时间范围
  • 工作概述
  • 主要工作内容(按功能模块分类)
  • 代码统计(提交数、文件数、代码行数等)
  • 贡献者信息
  • 提交记录摘要

注意事项

  1. API密钥安全: 请妥善保管你的API密钥,不要将包含密钥的config.yaml提交到版本控制系统
  2. Git仓库路径: 确保配置的Git仓库路径正确且可访问
  3. 权限问题: 确保程序有读取Git仓库的权限
  4. 网络连接: 生成周报需要网络连接以调用API
  5. 时区设置: 确保时区配置正确,特别是定时任务

故障排除

API连接失败

  • 检查API密钥是否正确
  • 检查网络连接
  • 使用 python main.py test 测试连接

Git读取失败

  • 确认Git仓库路径正确
  • 确认有读取权限
  • 检查Git仓库是否损坏

定时任务不执行

  • 检查项目配置中的enabled是否为true
  • 检查schedule格式是否正确
  • 查看系统日志或程序输出

许可证

MIT License

贡献

欢迎提交Issue和Pull Request!

About

一个自动化的Git提交记录分析和周报生成工具,支持使用大模型(硅基流动API)生成专业的周报,并支持定时任务和手动执行。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages