gh-weekly:用AI自动生成GitHub周报的开源工具
为什么你需要自动化的代码提交报告
作为开发者,你是否经历过这样的场景:
-
每周五下午,对着满屏的Git提交记录发愁:”这周到底做了什么?” -
团队会议上被问及项目进展时,只能含糊地说”优化了一些功能” -
花数小时整理周报,结果领导只看最后两行总结
代码贡献≠可读报告。每天我们产出大量代码提交,但这些碎片化信息无法直观反映工作价值。这就是我开发gh-weekly的初衷——一个能将GitHub提交记录自动转化为专业周报的开源工具。
“优秀的工程师不只写代码,更要有效传达工作价值”——Linux创始人Linus Torvalds
gh-weekly是什么?它能做什么
gh-weekly是一个Python命令行工具,通过AI智能分析你(或团队)的GitHub提交历史,生成结构化中文周报:
graph LR
A[GitHub提交记录] --> B(gh-weekly抓取)
B --> C[AI智能分析]
C --> D[生成中文周报]
D --> E{输出选项}
E --> F[终端显示]
E --> G[文本文件]
E --> H[剪贴板]
核心功能亮点
-
智能分析引擎
-
自动识别上周所有代码提交(默认时间范围) -
理解技术术语与业务价值的关联 -
将”修复#123 bug”转化为”优化支付接口稳定性”
-
-
AI写作定制
# 生成向上管理风格的报告 ./gh-weekly.py 风格:向上管理,突出业务价值 # 生成技术深度分析 ./gh-weekly.py 技术细节分析,包含实现方案
-
精准过滤系统
# 只关注核心项目 ./gh-weekly.py --filter "core|main" # 排除测试代码 ./gh-weekly.py --exclude "test|demo"
-
跨平台AI支持
-
默认使用DeepSeek API -
兼容OpenAI、OpenRouter等主流AI服务 -
支持本地部署的LLM接口
-
手把手安装教程
准备阶段:系统要求
组件 | 要求 | 检测命令 |
---|---|---|
Python | 3.6+ | python --version |
GitHub CLI | 最新版 | gh --version |
终端环境 | Bash/Zsh | 无需检测 |
步骤1:安装必要组件
# 安装GitHub CLI (macOS)
brew install gh
# 安装GitHub CLI (Linux)
sudo apt update && sudo apt install gh
# 认证GitHub账户
gh auth login
步骤2:配置Python环境
# 克隆仓库
git clone https://github.com/yourname/gh-weekly.git
cd gh-weekly
# 安装依赖
pip install openai
步骤3:设置AI服务密钥
# 方式1:使用DeepSeek(推荐)
export DEEPSEEK_API_KEY="sk-your-key-here"
# 方式2:使用OpenAI
export OPENAI_API_KEY="sk-your-key"
export OPENAI_BASE_URL="https://api.openai.com/v1"
export OPENAI_MODEL="gpt-4"
实战演练:5种使用场景
场景1:基础周报生成
./gh-weekly.py
输出示例:
📊 本周重点进展:
1. 用户认证系统升级至OAuth 2.1标准
2. 订单处理模块性能提升40%
3. 修复支付接口并发问题
场景2:向上管理报告
./gh-weekly.py 风格:战略价值呈现,业务影响优先
输出特点:
-
突出工作与业务目标的关联 -
量化技术改进的商业价值 -
使用管理层易懂的术语
场景3:技术深度复盘
./gh-weekly.py 包含实现细节 --chars 1000
输出特点:
-
解释技术方案选择原因 -
包含关键算法优化点 -
注明技术风险与应对
场景4:多项目过滤
./gh-weekly.py --filter "payment|auth" --exclude "legacy"
适合场景:
-
跨项目组负责人只需关注核心模块 -
排除已归档项目的干扰提交
场景5:自动化日报
# 每日8:00自动生成昨日报告
0 8 * * * cd /path/to/gh-weekly && ./gh-weekly.py 日报 > ~/daily_report.txt
高级技巧:写出更好的周报
风格定制公式
[语气词] + [专业领域] + [报告类型]
示例:
"严谨的技术架构分析报告"
"活泼的团队进度简报"
"深度的性能优化专项"
过滤表达式技巧
模式 | 示例 | 说明 |
---|---|---|
逻辑或 | `”core | main”` |
排除项 | --exclude "test" |
排除test目录 |
正则 | "feat(.*)" |
匹配特性分支 |
字符数控制策略
# 微信友好版(300字内)
./gh-weekly.py --chars 300
# 完整版(800-1000字)
./gh-weekly.py --chars 1000
支持的主流AI服务对比
服务商 | 配置方式 | 优势 | 适用场景 |
---|---|---|---|
DeepSeek | export DEEPSEEK_API_KEY |
中文优化好,性价比高 | 日常周报 |
OpenAI | export OPENAI_API_KEY |
理解复杂场景 | 技术深度分析 |
OpenRouter | export OPENAI_BASE_URL |
支持多模型 | 多风格测试 |
本地LLM | 自定义API地址 | 数据不出境 | 企业敏感项目 |
真实用户案例
案例1:前端团队周会效率提升
问题背景:
-
每周五花2小时整理提交记录 -
业务方抱怨”看不懂技术术语”
解决方案:
# 自动化生成业务视角报告
./gh-weekly.py 风格:非技术语言,突出用户体验改进
效果:
-
周报准备时间降至5分钟 -
产品经理主动要求接入周报系统
案例2:开源项目维护
问题背景:
-
社区贡献分散在多仓库 -
版本发布说明难整理
解决方案:
# 跨仓库收集核心改进
./gh-weekly.py --filter "core|plugin" --exclude "docs"
效果:
-
自动生成版本发布草稿 -
贡献者活跃度提升30%
常见问题解答(FAQ)
Q1: 会泄露私有代码吗?
完全不会。gh-weekly:
-
只获取提交消息(commit message) -
不访问实际代码内容 -
支持本地AI部署方案
Q2: 支持GitLab等平台吗?
当前仅支持GitHub,因为:
-
使用GitHub CLI标准化接口 -
90%开源项目托管在GitHub -
可通过GitHub Mirror兼容其他平台
Q3: 如何保证报告准确性?
三重校验机制:
-
原始commit信息保留(使用 --raw
查看) -
AI生成后显示数据来源(如#2622) -
关键数据人工复核开关(开发中)
Q4: 能分析多长时间跨度?
默认设置:
-
最近7天(符合周报需求) -
支持自定义日期范围(开发中) -
历史数据分析需企业版
技术原理揭秘
数据处理流程
sequenceDiagram
participant G as GitHub
participant C as gh-weekly
participant A as AI服务
participant U as 用户
U->>C: 执行命令
C->>G: 通过gh CLI获取提交
G-->>C: 返回原始数据
C->>C: 过滤/预处理
C->>A: 发送结构化数据
A-->>C: 返回分析报告
C->>U: 输出最终周报
智能分析核心
-
上下文理解
-
识别技术术语(如Raft-Log) -
关联提交与业务模块
-
-
价值提炼
# 伪代码示例 def extract_value(message): if "feat" in message: return "新功能:" + message elif "perf" in message: return "性能优化:" + message
-
风格适配
-
通过few-shot学习匹配风格提示 -
动态调整术语深度
-
开始你的高效周报之旅
今日行动建议
-
立即体验
git clone https://github.com/yourname/gh-weekly cd gh-weekly ./gh-weekly.py
-
进阶配置
# 设置永久环境变量 echo 'export DEEPSEEK_API_KEY="sk-your-key"' >> ~/.bashrc # 创建周报自动化任务 crontab -e # 添加:0 18 * * 5 cd /path/to/gh-weekly && ./gh-weekly.py > weekly_report.md
-
加入社区
-
提交issue报告问题 -
贡献filter扩展插件 -
分享你的周报模板
-
“工具的价值不在于它多先进,而在于它让人多高效” ——计算机科学家Donald Knuth
停止手动整理提交日志,让gh-weekly成为你的智能技术翻译官,把代码价值转化为职业影响力。