AI 기반 Git 커밋 메시지 생성 및 코드 리뷰 도구
# 전체 설치 (대화형)
./install.sh
# 빠른 설치 (자동)
./quick-install.sh
# 배치 파일 (CMD)
install.bat
# PowerShell (추천)
.\install.ps1
pip install -r requirements.txt
pip install -e .
gcm watch # 실행
- 🔍 실시간 변경사항 감시: Git 저장소의 파일 변경을 자동으로 감지
- 🤖 AI 커밋 메시지 생성: 변경사항을 분석하여 적절한 커밋 메시지 제안
- 📝 코드 리뷰: 변경된 코드에 대한 AI 기반 리뷰 제공
- 🔧 다양한 LLM 지원: Ollama (로컬), OpenRouter, Google Gemini
- 🎯 스마트 모델 선택: 설치된 Ollama 모델 자동 감지 및 추천
- 🌐 다국어 지원: 한국어, 영어, 일본어, 중국어, 스페인어, 프랑스어, 독일어
- ⚙️ 유연한 설정: .env 파일을 통한 기본 설정 및 동작 사용자화
- 🔄 중복 처리 방지: 동일한 변경사항에 대한 중복 분석 자동 방지
- 🎛️ 자동 리뷰 토글: 필요에 따라 자동 코드 리뷰 활성화/비활성화
git clone https://github.com/yourusername/git-commit-manager.git
cd git-commit-manager
pip install -e .
또는 requirements.txt 사용:
pip install -r requirements.txt
python setup.py install
# Ollama 설치
curl -fsSL https://ollama.ai/install.sh | sh
# 추천 모델 설치 (자동으로 제안됨)
ollama pull gemma3:1b
- OpenRouter에서 API 키 발급
- 환경변수 설정:
export OPENROUTER_API_KEY='your-api-key'
- Google AI Studio에서 API 키 발급
- 환경변수 설정:
export GEMINI_API_KEY='your-api-key'
프로젝트 루트에 .env
파일 생성:
# 기본 LLM 프로바이더 및 모델 설정
DEFAULT_PROVIDER=ollama
DEFAULT_MODEL=gemma3:1b
# API 키
OPENROUTER_API_KEY=your-openrouter-key
GEMINI_API_KEY=your-gemini-key
# 고급 설정
DEBOUNCE_DELAY=3.0 # 파일 변경 후 대기 시간(초)
COMMIT_MESSAGE_LANGUAGE=korean # 커밋 메시지 언어
AUTO_CODE_REVIEW=true # 자동 코드 리뷰 활성화
설정 가능한 언어: korean, english, japanese, chinese, spanish, french, german
AI의 응답을 커스터마이징하려면 다음 환경변수를 설정할 수 있습니다:
# 커밋 메시지 프롬프트 커스터마이징
CUSTOM_COMMIT_SYSTEM_PROMPT_KOREAN="당신은 Git 커밋 메시지 전문가입니다..."
CUSTOM_COMMIT_USER_PROMPT_KOREAN="다음 변경사항에 대한 커밋 메시지를 작성해주세요:\n\n{changes_summary}"
# 코드 리뷰 프롬프트 커스터마이징
CUSTOM_REVIEW_SYSTEM_PROMPT_KOREAN="당신은 시니어 개발자로서 코드를 리뷰합니다..."
CUSTOM_REVIEW_USER_PROMPT_KOREAN="파일: {file_path}\n변경 유형: {change_type}\n\n{diff_content}\n\n위 코드를 리뷰해주세요."
주의사항:
- 사용자 프롬프트에는 반드시 필요한 플레이스홀더를 포함해야 합니다
- 커밋 메시지:
{changes_summary}
- 코드 리뷰:
{file_path}
,{change_type}
,{diff_content}
- 커밋 메시지:
- 영어 버전은
_KOREAN
을_ENGLISH
로 변경하여 설정
.env.example
파일을 참고하여 필요한 설정을 복사하세요.
저장소의 변경사항을 실시간으로 감시하고 자동으로 커밋 메시지와 코드 리뷰를 생성합니다:
# Ollama 사용 (기본, 모델 자동 선택)
gcm watch
# 특정 모델 지정
gcm watch -p ollama -m codellama
# OpenRouter 사용
gcm watch -p openrouter -m openai/gpt-3.5-turbo
# Gemini 사용
gcm watch -p gemini -m gemini-pro
# 특정 저장소 경로 지정
gcm watch -r /path/to/repo
현재 변경사항을 분석하여 커밋 메시지를 생성합니다:
gcm analyze
변경된 코드에 대한 리뷰를 수행합니다:
# 모든 변경사항 리뷰
gcm review
# 특정 파일만 리뷰
gcm review -f src/main.py
gcm config
-p, --provider
: LLM 프로바이더 선택 (ollama, openrouter, gemini) - 미지정시 .env의 DEFAULT_PROVIDER 사용-m, --model
: 사용할 모델 이름 - 미지정시 .env의 DEFAULT_MODEL 사용-r, --repo
: Git 저장소 경로 (기본값: 현재 디렉토리)
실시간으로 변경사항을 감시하고 분석합니다.
현재 변경사항을 분석하고 커밋 메시지를 제안합니다.
-f, --file
: 특정 파일만 리뷰
- 변경사항 감지: watchdog을 사용하여 파일 시스템 변경 모니터링
- Git 분석: GitPython으로 변경사항 추출 및 diff 생성
- 청크 분할: 컨텍스트 제한을 고려하여 변경사항을 작은 단위로 분할
- AI 분석: 선택한 LLM으로 커밋 메시지 생성 및 코드 리뷰 수행
- 결과 표시: Rich 라이브러리로 보기 좋게 결과 출력
- Git 저장소에서만 작동합니다
- 큰 변경사항은 자동으로 청크로 분할되어 처리됩니다
- API 키가 필요한 서비스는 사용 전 설정이 필요합니다
.git/
,__pycache__/
등의 디렉토리는 자동으로 무시됩니다
현재 디렉토리가 Git 저장소인지 확인하세요:
git init
환경변수가 올바르게 설정되었는지 확인하세요:
echo $OPENROUTER_API_KEY
echo $GEMINI_API_KEY
Ollama 서비스가 실행 중인지 확인하세요:
ollama list
MIT License