Project / Apr 29, 2024
RiddleSolver Git提交解析器
一个 Git 提交信息解析工具,能将晦涩的提交信息转化为清晰、标准的总结
- Role
- Solo project: idea, code, UI, iteration
- Stack / Topics
- CLIPythonGitAIUtility
项目概述
RiddleSolver 是一个 Git 提交解析工具。它会读取本地或远程仓库的提交记录,用 OpenAI API 把零散、难读的 commit message 整理成更清楚的变更总结。
它能做什么
RiddleSolver 读一个仓库的提交记录,把一堆零散难读的 commit message 整理成一份说人话的变更总结。本地仓库能读,远程 GitHub 仓库不用克隆也能读。你可以按作者、日期或分支筛,重复提交会被去掉。
底层是个 Python 写的 CLI,调 OpenAI API 做总结,调 GitHub API 拉远程仓库,本地加了缓存避免重复拉。认证、API key、缓存策略都走配置命令管。
安装与使用
# 通过pip安装
pip install --upgrade riddlesolver
# 基本用法
riddlesolver <仓库路径> [选项]
# 示例:分析本地仓库
riddlesolver /path/to/local/repo
# 示例:分析指定日期范围的远程仓库
riddlesolver https://github.com/owner/repo -s 2023-01-01 -e 2023-01-31
# 示例:分析特定分支
riddlesolver /path/to/local/repo -b feature-branch 开发集成
RiddleSolver提供了结构良好的API,方便开发者将其功能集成到自己的项目中:
from riddlesolver import fetch_commits, generate_summary, save_summary_to_file
from riddlesolver.config import load_config_from_file
from datetime import datetime
# 使用示例
repo_path = "https://github.com/username/repo.git"
start_date = datetime(2023, 1, 1)
end_date = datetime(2023, 12, 31)
config = load_config_from_file()
batched_commits = fetch_commits(repo_path, start_date, end_date)
summary = generate_summary(batched_commits, config)
save_summary_to_file(summary, "summary.md") 除了 CLI,还配了一个 Streamlit 界面,方便可视化查看结果。输出格式是标准化的,也比较容易接进别的项目。
这个项目解决的是一个很具体的问题:很多提交信息只有作者当时看得懂,过一段时间就很难追。RiddleSolver 会按仓库、作者、日期或分支整理提交记录,适合用来补周报、写版本说明,或者回看某段时间到底改了什么。