基于AI的Git提交分析和总结库。分析提交历史,自动生成Pull Request草稿、变更日志和提交摘要。
- 한국어 (Korean) - 韩语文档
- English - 英文文档
- 中文 (Chinese) - 当前文档
- 日本語 (Japanese) - 日语文档
- AI驱动的提交分析: 支持OpenAI、Claude、Gemini、Perplexity、DeepSeek
- 自动PR草稿生成: 基于提交历史创建PR模板
- 多语言支持: 韩语、英语、中文、日语
- GitHub模板检测: 自动应用现有PR模板
- CLI工具: 命令行直接使用
repositories {
maven { url = uri("https://jitpack.io") }
}
dependencies {
// 使用特定版本
implementation("com.github.hj4645:commit-chronicle:1.0.0")
// 或自动使用最新版本
implementation("com.github.hj4645:commit-chronicle") // 最新发布版本
// 或
implementation("com.github.hj4645:commit-chronicle:latest") // 最新发布版本
}<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<!-- 使用特定版本 -->
<dependency>
<groupId>com.github.hj4645</groupId>
<artifactId>commit-chronicle</artifactId>
<version>1.0.0</version>
</dependency>
<!-- 或自动使用最新版本 -->
<dependency>
<groupId>com.github.hj4645</groupId>
<artifactId>commit-chronicle</artifactId>
<version>latest</version> <!-- 最新发布版本 -->
</dependency>
</dependencies>添加依赖后,可以设置别名来使用CLI。
macOS/Linux:
# 一键设置别名
echo "alias cch='java -jar \$(find ~/.gradle/caches -name \"*commit-chronicle*\" -type f | grep \"\\.jar\$\" | head -1)'" >> ~/.zshrc && source ~/.zshrc
# 或分步设置
JAR_PATH=$(find ~/.gradle/caches -name "*commit-chronicle*" -type f | grep "\.jar$" | head -1)
echo "alias cch='java -jar $JAR_PATH'" >> ~/.zshrc
source ~/.zshrcWindows (PowerShell):
# 查找JAR文件路径
$jarPath = Get-ChildItem -Path "$env:USERPROFILE\.gradle\caches" -Recurse -Name "*commit-chronicle*.jar" | Select-Object -First 1
$fullPath = Join-Path "$env:USERPROFILE\.gradle\caches" $jarPath
# 设置别名
echo "function cch { java -jar `"$fullPath`" @args }" >> $PROFILE
. $PROFILE查找JAR文件路径:
# macOS/Linux
find ~/.gradle/caches -name "*commit-chronicle*" -type f | grep "\.jar$"
# Windows (PowerShell)
Get-ChildItem -Path "$env:USERPROFILE\.gradle\caches" -Recurse -Name "*commit-chronicle*.jar"设置别名:
# macOS/Linux
alias cch="java -jar /实际/jar/文件/路径/commit-chronicle-1.0.0.jar"
# Windows (PowerShell)
function cch { java -jar "C:\实际\jar\文件\路径\commit-chronicle-1.0.0.jar" @args }首次运行时会启动交互式设置:
cch settings设置过程:
-
语言选择
- 한국어 (Korean)
- English
- 中文 (Chinese)
- 日本語 (Japanese)
-
AI模型选择
- OpenAI (gpt-4o, gpt-4o-mini, gpt-4-turbo)
- Claude (claude-3-5-haiku-20241022, claude-3-haiku-20240307, claude-3-5-sonnet-20241022, claude-3-sonnet-20240229, claude-3-7-sonnet-20250219)
- Gemini (gemini-2.5-pro, gemini-2.0-flash, gemini-2.5-flash)
- Perplexity (llama-3.1-sonar-large-128k-online, llama-3.1-sonar-small-128k-online)
- DeepSeek (deepseek-chat, deepseek-coder)
-
API密钥输入
- 输入所选AI模型的API密钥
-
分析设置
- 默认分析期间(天数,默认:7天)
- 最大提交数(默认:50个)
设置示例:
Update current settings
Select setting to update:
Selected: Language
Select language (current: en):
Selected: 中文 (Chinese)
Language updated to: zh (AI responses will use this language)
Select setting to update:
Selected: AI Provider
Select AI provider (current: openai):
Selected: OpenAI (API Key ✓)
Select model for openai (current: gpt-4o):
Selected: GPT-4o (Latest)
API key for openai (current: ***):
Selected: Keep existing API key
Select setting to update:
Selected: Analysis Settings
Enter default days for analysis (current: 7, press Enter to keep current): 14
Enter default commit limit (current: 50, press Enter to keep current): 100
Analysis settings updated - Days: 14, Limit: 100
Select setting to update:
Selected: Done
Configuration saved successfully
# 使用默认设置(配置的期间和提交数)
cch summarize
# 使用选项
cch summarize -d 14 -l 100 # 14天,最多100个提交
cch summarize --days 7 --limit 50 # 7天,最多50个提交
cch summarize --path /path/to/repo # 特定仓库路径# 为当前分支生成PR草稿
cch pr
# 使用选项
cch pr -d 7 -l 20 # 7天,最多20个提交
cch pr --path /path/to/repo # 特定仓库路径# 更改设置(交互式菜单)
cch settings
# 查看帮助
cch settings --help
cch --help设置菜单中可以使用键盘方向键选择选项:
- ↑/↓ 箭头: 选择选项
- Enter: 确认选择
- Esc: 返回上一级菜单
设置菜单结构:
Main Menu
├── Language (语言设置)
├── AI Provider (AI模型设置)
│ ├── Provider Selection
│ ├── Model Selection
│ └── API Key Input
├── Analysis Settings (分析设置)
│ ├── Default Days
│ └── Commit Limit
└── Done (完成)
设置本地保存在 ~/.commit-chronicle/config.json:
{
"apiKey": "your-api-key",
"providerType": "openai",
"locale": "zh",
"defaultDays": 7,
"defaultLimit": 50
}配置持久性:
- 一次设置后会持续保持
- 不同项目使用相同设置
- 可随时通过
cch settings更改
PR模板(按优先级排序):
.github/pull_request_template_[locale].md # 多语言支持
.github/pull_request_template.md
.github/PULL_REQUEST_TEMPLATE.md
.github/PULL_REQUEST_TEMPLATE/pull_request_template.md
docs/pull_request_template.md
docs/PULL_REQUEST_TEMPLATE.md
pull_request_template.md
PULL_REQUEST_TEMPLATE.md
多语言模板示例:
.github/pull_request_template_ko.md(韩语).github/pull_request_template_en.md(英语).github/pull_request_template_zh.md(中文).github/pull_request_template_ja.md(日语)
- 自动检测: 在上述路径中自动查找模板文件
- 语言优先级: 优先应用与配置语言匹配的模板
- 回退处理: 如果没有对应语言模板则使用默认模板
- 动态应用: AI自动生成符合模板结构的内容
| 提供商 | 模型 |
|---|---|
| OpenAI | gpt-4o, gpt-4o-mini, gpt-4-turbo |
| Claude | claude-3-5-haiku-20241022, claude-3-haiku-20240307, claude-3-5-sonnet-20241022, claude-3-sonnet-20240229, claude-3-7-sonnet-20250219 |
| Gemini | gemini-2.5-pro, gemini-2.0-flash, gemini-2.5-flash |
| Perplexity | llama-3.1-sonar-large-128k-online, llama-3.1-sonar-small-128k-online |
| DeepSeek | deepseek-chat, deepseek-coder |
commit-chronicle/
├── core/
│ ├── api/ # 接口和模型
│ └── impl/ # 实现
├── cli/ # CLI工具
└── build.gradle.kts # 构建配置
- 한국어 (ko)
- English (en)
- 中文 (zh)
- 日本語 (ja)
- API密钥安全存储在用户主目录
- JAR文件中不包含敏感信息
- 每个用户独立的配置管理
MIT License
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Issues: GitHub Issues
- Documentation: Wiki