Skip to content

Commit 78c915b

Browse files
committed
Readme Update
1 parent dcf55ef commit 78c915b

File tree

4 files changed

+656
-212
lines changed

4 files changed

+656
-212
lines changed

README.md

Lines changed: 166 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,27 @@
11
# Commit Chronicle
22

3-
AI를 활용한 Git 커밋 분석 및 요약 라이브러리입니다. 커밋 히스토리를 분석하여 Pull Request 초안, 변경 로그, 커밋 요약을 자동으로 생성합니다.
3+
[![JitPack](https://jitpack.io/v/hj4645/commit-chronicle.svg)](https://jitpack.io/#hj4645/commit-chronicle)
4+
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5+
[![Kotlin](https://img.shields.io/badge/kotlin-%237F52FF.svg?style=flat&logo=kotlin&logoColor=white)](https://kotlinlang.org/)
6+
[![GitHub Issues](https://img.shields.io/github/issues/hj4645/commit-chronicle.svg)](https://github.com/hj4645/commit-chronicle/issues)
7+
[![GitHub Stars](https://img.shields.io/github/stars/hj4645/commit-chronicle.svg)](https://github.com/hj4645/commit-chronicle/stargazers)
8+
[![CI](https://github.com/hj4645/commit-chronicle/workflows/JitPack%20Release/badge.svg)](https://github.com/hj4645/commit-chronicle/actions)
9+
10+
AI를 활용한 Git 커밋 분석 및 요약 라이브러리입니다. 커밋 히스토리를 분석하여 Pull Request 초안, 변경 로그, 커밋 요약을 자동 생성합니다.
11+
12+
## 🌐 다국어 문서
13+
14+
- **[한국어 (Korean)](README.md)** - 현재 문서
15+
- **[English](README_EN.md)** - English Documentation
16+
- **[中文 (Chinese)](README_ZH.md)** - 中文文档
17+
- **[日本語 (Japanese)](README_JA.md)** - 日本語ドキュメント
418

519
## 🚀 주요 기능
620

721
- **AI 기반 커밋 분석**: OpenAI, Claude, Gemini, Perplexity, DeepSeek 지원
822
- **PR 초안 자동 생성**: 커밋 히스토리 기반 PR 템플릿 생성
923
- **다국어 지원**: 한국어, 영어, 중국어, 일본어
1024
- **GitHub 템플릿 감지**: 기존 PR 템플릿 자동 적용
11-
- **브랜치 검증**: main/master 브랜치 경고 및 의미있는 커밋 필터링
1225
- **CLI 도구**: 명령줄에서 바로 사용 가능
1326

1427
## 📦 설치 방법
@@ -46,84 +59,148 @@ dependencies {
4659

4760
## 🛠️ 사용 방법
4861

49-
### CLI 사용법
62+
### 1. 라이브러리 설치 후 CLI 사용
5063

51-
#### 1. 초기 설정
64+
라이브러리를 dependency로 추가한 후, alias를 설정하여 CLI로 사용할 수 있습니다:
5265

5366
```bash
54-
java -jar commitchronicle-0.1.0.jar
67+
# Gradle 캐시에서 JAR 파일 경로 확인
68+
find ~/.gradle/caches -name "commitchronicle-0.1.0.jar" -type f
69+
70+
# alias 설정 (예시 - 실제 경로로 수정 필요)
71+
alias cch="java -jar ~/.gradle/caches/modules-2/files-2.1/com.github.hj4645/commit-chronicle/v0.1.0/*/commitchronicle-0.1.0.jar"
72+
73+
# 또는 직접 다운로드한 JAR 파일 사용
74+
alias cch="java -jar /path/to/commitchronicle-0.1.0.jar"
5575
```
5676

57-
첫 실행 시 대화형 설정이 시작됩니다:
58-
- 언어 선택 (한국어, English, 中文, 日本語)
59-
- AI 모델 선택 (OpenAI, Claude, Gemini, Perplexity, DeepSeek)
60-
- API 키 입력
77+
### 2. 초기 설정
6178

62-
#### 2. 커밋 요약 생성
79+
처음 실행 시 인터랙티브 설정이 시작됩니다:
6380

6481
```bash
65-
# 기본 설정으로 요약 (최근 7일, 최대 50개 커밋)
66-
java -jar commitchronicle-0.1.0.jar summarize
82+
cch settings
83+
```
6784

68-
# 옵션 지정
69-
java -jar commitchronicle-0.1.0.jar summarize -d 14 -l 100
70-
java -jar commitchronicle-0.1.0.jar summarize --path /path/to/repo
85+
**설정 과정:**
86+
87+
1. **언어 선택**
88+
- 한국어 (Korean)
89+
- English
90+
- 中文 (Chinese)
91+
- 日本語 (Japanese)
92+
93+
2. **AI 모델 선택**
94+
- OpenAI (gpt-4o, gpt-4o-mini, gpt-4-turbo)
95+
- Claude (claude-3-5-sonnet-20241022, claude-3-5-haiku-20241022)
96+
- Gemini (gemini-2.0-flash-exp, gemini-1.5-flash, gemini-1.5-pro)
97+
- Perplexity (llama-3.1-sonar-large-128k-online, llama-3.1-sonar-small-128k-online)
98+
- DeepSeek (deepseek-chat, deepseek-coder)
99+
100+
3. **API 키 입력**
101+
- 선택한 AI 모델의 API 키 입력
102+
103+
4. **분석 설정**
104+
- 기본 분석 기간 (일 단위, 기본값: 7일)
105+
- 최대 커밋 수 (기본값: 50개)
106+
107+
**설정 예시:**
108+
```
109+
Update current settings
110+
111+
Select setting to update:
112+
Selected: Language
113+
114+
Select language (current: en):
115+
Selected: 한국어 (Korean)
116+
Language updated to: ko (AI responses will use this language)
117+
118+
Select setting to update:
119+
Selected: AI Provider
120+
121+
Select AI provider (current: openai):
122+
Selected: OpenAI (API Key ✓)
123+
124+
Select model for openai (current: gpt-4o):
125+
Selected: GPT-4o (Latest)
126+
127+
API key for openai (current: ***):
128+
Selected: Keep existing API key
129+
130+
Select setting to update:
131+
Selected: Analysis Settings
132+
133+
Enter default days for analysis (current: 7, press Enter to keep current): 14
134+
135+
Enter default commit limit (current: 50, press Enter to keep current): 100
136+
Analysis settings updated - Days: 14, Limit: 100
137+
138+
Select setting to update:
139+
Selected: Done
140+
Configuration saved successfully
71141
```
72142

73-
#### 3. PR 초안 생성
143+
### 3. CLI 명령어 사용
144+
145+
#### 커밋 요약 생성
74146

75147
```bash
76-
# 현재 브랜치의 PR 초안 생성
77-
java -jar commitchronicle-0.1.0.jar pr
148+
# 기본 설정 사용 (설정된 기간과 커밋 수)
149+
cch summarize
78150

79151
# 옵션 지정
80-
java -jar commitchronicle-0.1.0.jar pr -d 7 -l 20
152+
cch summarize -d 14 -l 100 # 14일간, 최대 100개 커밋
153+
cch summarize --days 7 --limit 50 # 7일간, 최대 50개 커밋
154+
cch summarize --path /path/to/repo # 특정 저장소 경로
81155
```
82156

83-
#### 4. 설정 관리
157+
#### PR 초안 생성
84158

85159
```bash
86-
# 현재 설정 보기
87-
java -jar commitchronicle-0.1.0.jar settings --show
88-
89-
# 설정 변경
90-
java -jar commitchronicle-0.1.0.jar settings
160+
# 현재 브랜치의 PR 초안 생성
161+
cch pr
91162

92-
# 설정 초기화
93-
java -jar commitchronicle-0.1.0.jar settings --reset
163+
# 옵션 지정
164+
cch pr -d 7 -l 20 # 7일간, 최대 20개 커밋
165+
cch pr --path /path/to/repo # 특정 저장소 경로
94166
```
95167

96-
### 라이브러리 사용법
168+
#### 설정 관리
97169

98-
```kotlin
99-
import com.commitchronicle.git.GitAnalyzerFactory
100-
import com.commitchronicle.ai.factory.AISummarizerFactory
101-
import com.commitchronicle.ai.providers.openai.config.OpenAIConfig
102-
import com.commitchronicle.ai.AIProviderType
103-
import com.commitchronicle.language.Locale
170+
```bash
171+
# 설정 변경 (인터랙티브 메뉴)
172+
cch settings
173+
174+
# 도움말 보기
175+
cch settings --help
176+
cch --help
177+
```
104178

105-
// Git 분석기 생성
106-
val gitAnalyzer = GitAnalyzerFactory.create("/path/to/repo")
179+
### 4. 키보드 방향키 설정 방법
107180

108-
// AI 설정
109-
val aiConfig = OpenAIConfig(
110-
apiKey = "your-api-key",
111-
locale = Locale.KOREAN
112-
)
113-
val aiSummarizer = AISummarizerFactory.create(aiConfig, AIProviderType.OPENAI)
181+
설정 메뉴에서는 키보드 방향키를 사용하여 옵션을 선택할 수 있습니다:
114182

115-
// 커밋 분석
116-
val commits = gitAnalyzer.getCommits(7) // 최근 7일
117-
val summary = aiSummarizer.summarize(commits)
118-
val prDraft = aiSummarizer.generatePRDraft(commits)
183+
- **↑/↓ 화살표**: 옵션 선택
184+
- **Enter**: 선택 확인
185+
- **Esc**: 이전 메뉴로 돌아가기
119186

120-
println("요약: $summary")
121-
println("PR 초안: $prDraft")
187+
**설정 메뉴 구조:**
188+
```
189+
Main Menu
190+
├── Language (언어 설정)
191+
├── AI Provider (AI 모델 설정)
192+
│ ├── Provider Selection
193+
│ ├── Model Selection
194+
│ └── API Key Input
195+
├── Analysis Settings (분석 설정)
196+
│ ├── Default Days
197+
│ └── Commit Limit
198+
└── Done (완료)
122199
```
123200

124-
## 🔧 설정
201+
## 🔧 설정 파일
125202

126-
설정은 `~/.commit-chronicle/config.json`에 저장됩니다:
203+
설정은 `~/.commit-chronicle/config.json`로컬 저장됩니다:
127204

128205
```json
129206
{
@@ -135,10 +212,44 @@ println("PR 초안: $prDraft")
135212
}
136213
```
137214

138-
## 🤖 지원 AI 모델
215+
**설정 지속성:**
216+
- 한 번 설정하면 계속 유지됩니다
217+
- 다른 프로젝트에서도 동일한 설정 사용
218+
- 필요시 `cch settings`로 언제든 변경 가능
219+
220+
## 🔧 GitHub 템플릿 자동 감지
221+
222+
### 지원하는 템플릿 경로
223+
224+
**PR 템플릿 (우선순위 순):**
225+
```
226+
.github/pull_request_template_[locale].md # 다국어 지원
227+
.github/pull_request_template.md
228+
.github/PULL_REQUEST_TEMPLATE.md
229+
.github/PULL_REQUEST_TEMPLATE/pull_request_template.md
230+
docs/pull_request_template.md
231+
docs/PULL_REQUEST_TEMPLATE.md
232+
pull_request_template.md
233+
PULL_REQUEST_TEMPLATE.md
234+
```
235+
236+
**다국어 템플릿 예시:**
237+
- `.github/pull_request_template_ko.md` (한국어)
238+
- `.github/pull_request_template_en.md` (영어)
239+
- `.github/pull_request_template_zh.md` (중국어)
240+
- `.github/pull_request_template_ja.md` (일본어)
241+
242+
### 템플릿 적용 방식
243+
244+
1. **자동 감지**: 위 경로에서 템플릿 파일을 자동으로 찾습니다
245+
2. **언어별 우선순위**: 설정된 언어에 맞는 템플릿을 우선 적용
246+
3. **폴백 처리**: 해당 언어 템플릿이 없으면 기본 템플릿 사용
247+
4. **동적 적용**: AI가 템플릿 구조에 맞춰 내용을 자동 생성
248+
249+
## 🤖 지원하는 AI 모델
139250

140-
| 제공업체 | 모델 |
141-
|---------|------|
251+
| 프로바이더 | 모델 |
252+
|-------------|--------|
142253
| OpenAI | gpt-4o, gpt-4o-mini, gpt-4-turbo |
143254
| Claude | claude-3-5-sonnet-20241022, claude-3-5-haiku-20241022 |
144255
| Gemini | gemini-2.0-flash-exp, gemini-1.5-flash, gemini-1.5-pro |
@@ -150,7 +261,7 @@ println("PR 초안: $prDraft")
150261
```
151262
commit-chronicle/
152263
├── core/
153-
│ ├── api/ # 인터페이스 및 모델
264+
│ ├── api/ # 인터페이스와 모델
154265
│ └── impl/ # 구현체
155266
├── cli/ # CLI 도구
156267
└── build.gradle.kts # 빌드 설정
@@ -173,7 +284,7 @@ commit-chronicle/
173284

174285
MIT License
175286

176-
## 🤝 기여하기
287+
## 🤝 기여
177288

178289
1. Fork the repository
179290
2. Create your feature branch (`git checkout -b feature/amazing-feature`)

0 commit comments

Comments
 (0)