Skip to content

터미널에서 실행되는 AI 기반 Git 커밋 메시지 생성 및 코드 리뷰 도구입니다.

Notifications You must be signed in to change notification settings

cskwork/git-commit-manager

Repository files navigation

Git Commit Manager

AI 기반 Git 커밋 메시지 생성 및 코드 리뷰 도구

빠른 설치

🚀 원클릭 설치 (추천)

macOS/Linux

# 전체 설치 (대화형)
./install.sh

# 빠른 설치 (자동)
./quick-install.sh

Windows

# 배치 파일 (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 파일을 통한 기본 설정 및 동작 사용자화
  • 🔄 중복 처리 방지: 동일한 변경사항에 대한 중복 분석 자동 방지
  • 🎛️ 자동 리뷰 토글: 필요에 따라 자동 코드 리뷰 활성화/비활성화

상세 설치 가이드

1. 저장소 클론 및 설치

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

2. LLM 프로바이더 설정

Ollama (로컬 모델) - 추천

# Ollama 설치
curl -fsSL https://ollama.ai/install.sh | sh

# 추천 모델 설치 (자동으로 제안됨)
ollama pull gemma3:1b

OpenRouter

  1. OpenRouter에서 API 키 발급
  2. 환경변수 설정:
export OPENROUTER_API_KEY='your-api-key'

Google Gemini

  1. Google AI Studio에서 API 키 발급
  2. 환경변수 설정:
export GEMINI_API_KEY='your-api-key'

3. 환경변수 설정 (선택사항)

프로젝트 루트에 .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 저장소 경로 (기본값: 현재 디렉토리)

watch 명령어

실시간으로 변경사항을 감시하고 분석합니다.

analyze 명령어

현재 변경사항을 분석하고 커밋 메시지를 제안합니다.

review 명령어

  • -f, --file: 특정 파일만 리뷰

작동 방식

  1. 변경사항 감지: watchdog을 사용하여 파일 시스템 변경 모니터링
  2. Git 분석: GitPython으로 변경사항 추출 및 diff 생성
  3. 청크 분할: 컨텍스트 제한을 고려하여 변경사항을 작은 단위로 분할
  4. AI 분석: 선택한 LLM으로 커밋 메시지 생성 및 코드 리뷰 수행
  5. 결과 표시: Rich 라이브러리로 보기 좋게 결과 출력

주의사항

  • Git 저장소에서만 작동합니다
  • 큰 변경사항은 자동으로 청크로 분할되어 처리됩니다
  • API 키가 필요한 서비스는 사용 전 설정이 필요합니다
  • .git/, __pycache__/ 등의 디렉토리는 자동으로 무시됩니다

문제 해결

"유효한 Git 저장소가 아닙니다" 오류

현재 디렉토리가 Git 저장소인지 확인하세요:

git init

API 키 오류

환경변수가 올바르게 설정되었는지 확인하세요:

echo $OPENROUTER_API_KEY
echo $GEMINI_API_KEY

Ollama 연결 오류

Ollama 서비스가 실행 중인지 확인하세요:

ollama list

라이선스

MIT License

About

터미널에서 실행되는 AI 기반 Git 커밋 메시지 생성 및 코드 리뷰 도구입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published