__ __ __ ___ ______ _ __
/ / ____ _____ __ __ / / / /___ ____ ____/ (_)__ / ____/___ ____ ___ ____ ___ (_) /_
/ / / __ `/_ / / / / / / /_/ / __ \/ __ \/ __ / / _ \ ______ / / / __ \/ __ `__ \/ __ `__ \/ / __/
/ /___/ /_/ / / /_/ /_/ / / __ / /_/ / /_/ / /_/ / / __/ /_____/ / /___/ /_/ / / / / / / / / / / / / /_
/_____/\__,_/ /___/\__, / /_/ /_/\____/\____/\__,_/_/\___/ \____/\____/_/ /_/ /_/_/ /_/ /_/_/\__/
/____/
Lazy Hoodie: Commit
귀찮은 커밋 메시지 작성은 AI에게 맡기고, 변경사항 검토와 개발에 집중하세요.
Lazy Hoodie: Commit은 Git의 staged 변경사항만 분석해 커밋 메시지를 생성하고, VS Code Source Control 입력창에 자동으로 채워주는 확장 프로그램입니다. 생성된 메시지는 사용자가 검토한 뒤 직접 커밋하므로, 확장 프로그램이 임의로 커밋을 실행하지 않습니다.
주요 기능
- Source Control 패널에서 버튼 한 번으로 커밋 메시지 생성
git diff --cached 기반으로 실제 커밋 대상만 분석
- Conventional Commits 또는 일반 커밋 형식 지원
- 한국어 및 영어 메시지 생성
- 여러 staged 파일의 대표 변경을 제목으로 요약
- 여러 파일의 주요 변경사항을 본문의 불릿 목록으로 정리
- 사용자 정의 커밋 규칙 지원
- 큰 diff의 전송 길이 제한
- VS Code SecretStorage를 이용한 provider별 API 키 보관
- 생성 결과를 Source Control 입력창에 삽입하고 최종 커밋은 사용자에게 맡김
Provider 지원 현황
| Provider |
상태 |
비고 |
| Google Gemini |
지원 |
현재 실제 메시지 생성 가능 |
| OpenAI |
예정 |
설정 항목만 제공 |
| Anthropic Claude |
예정 |
설정 항목만 제공 |
현재 버전에서는 Gemini를 선택해야 실제 커밋 메시지를 생성할 수 있습니다.
요구 사항
- Visual Studio Code 1.90.0 이상
- Git이 설치되어 있고 터미널에서
git 명령을 사용할 수 있어야 함
- Git 저장소가 VS Code workspace로 열려 있어야 함
- Google Gemini API 키
- 커밋할 변경사항이 staging area에 추가되어 있어야 함
시작하기
1. Gemini 선택
VS Code 설정을 엽니다.
Ctrl + ,
설정 검색창에서 Lazy Hoodie를 검색한 다음 Provider를 Gemini로 변경합니다.
settings.json에서 직접 설정할 수도 있습니다.
{
"lazyHoodie.commit.provider": "gemini"
}
2. API 키 저장
Google AI Studio에서 Gemini API 키를 발급받습니다.
VS Code 명령 팔레트를 엽니다.
Ctrl + Shift + P
다음 명령을 실행합니다.
Lazy Hoodie: Set AI Provider API Key
입력창에 Gemini API 키를 입력하세요. 입력 내용은 비밀번호 형태로 가려지며, 일반 settings.json이 아닌 VS Code SecretStorage에 저장됩니다.
3. 변경사항 stage
Source Control 패널에서 커밋할 파일의 + 버튼을 누르거나 터미널에서 git add를 실행합니다.
git add src/example.ts
모든 변경사항을 stage하려면 다음 명령을 사용할 수 있습니다.
git add .
AI에는 staged diff가 전달됩니다. 비밀키, 개인정보 또는 외부 전송이 허용되지 않은 코드가 포함되지 않았는지 생성 전에 확인하세요.
4. 커밋 메시지 생성
Source Control 패널 상단의 반짝이 아이콘을 누릅니다.
명령 팔레트에서도 실행할 수 있습니다.
Lazy Hoodie: Generate Commit Message
생성이 완료되면 메시지가 Source Control 커밋 입력창에 자동으로 들어갑니다. 내용을 검토하고 필요하면 수정한 뒤 직접 커밋하세요.
생성 예시
단일 변경사항은 간결한 제목으로 생성할 수 있습니다.
fix(auth): 만료된 토큰의 재발급 처리 수정
여러 파일이 stage된 경우 대표 변경을 제목으로 작성하고 주요 내용을 본문에 정리합니다.
feat(board): 게시판 라우팅 구조 개선
- 상세 라우트에 브레드크럼 설정 추가
- 공통 라우트 메타데이터 타입 정리
- 관련 컴포넌트의 경로 참조 수정
서로 관련된 파일은 하나의 의미 있는 변경으로 묶습니다. 단순히 파일명을 나열하는 대신 무엇이 바뀌었는지를 설명하도록 요청합니다.
설정
Ctrl + ,을 누르고 Lazy Hoodie를 검색하거나 settings.json에서 직접 설정할 수 있습니다.
| 설정 |
기본값 |
설명 |
lazyHoodie.commit.provider |
openai |
사용할 AI provider. 현재 실제 호출은 gemini만 지원 |
lazyHoodie.commit.models.gemini |
빈 문자열 |
Gemini 모델 ID. 비워두면 확장의 기본 모델 사용 |
lazyHoodie.commit.models.openai |
빈 문자열 |
향후 OpenAI provider에서 사용할 모델 ID |
lazyHoodie.commit.models.claude |
빈 문자열 |
향후 Claude provider에서 사용할 모델 ID |
lazyHoodie.commit.language |
english |
생성 언어: english 또는 korean |
lazyHoodie.commit.format |
conventional |
conventional 또는 plain 형식 |
lazyHoodie.commit.includeBody |
false |
단일 파일 변경에도 커밋 본문을 생성할지 여부 |
lazyHoodie.commit.multiFileBody |
true |
여러 파일 변경을 대표 제목과 불릿 목록으로 생성 |
lazyHoodie.commit.subjectMaxLength |
72 |
권장 커밋 제목 최대 길이 |
lazyHoodie.commit.instructions |
빈 문자열 |
자유 형식의 추가 지침 한 개 |
lazyHoodie.commit.rules |
[] |
순서대로 적용할 사용자 정의 규칙 목록 |
lazyHoodie.commit.maxDiffCharacters |
30000 |
AI provider에 전달할 staged diff의 최대 문자 수 |
권장 설정 예시
{
"lazyHoodie.commit.provider": "gemini",
"lazyHoodie.commit.models.gemini": "",
"lazyHoodie.commit.language": "korean",
"lazyHoodie.commit.format": "conventional",
"lazyHoodie.commit.includeBody": false,
"lazyHoodie.commit.multiFileBody": true,
"lazyHoodie.commit.subjectMaxLength": 72,
"lazyHoodie.commit.maxDiffCharacters": 30000,
"lazyHoodie.commit.rules": [
"제목에 마침표를 사용하지 않는다.",
"scope는 변경된 최상위 기능명을 사용한다.",
"구현 세부사항보다 사용자에게 미치는 영향을 우선한다.",
"본문 불릿은 최대 5개로 작성한다."
]
}
Conventional Commits
format을 conventional로 설정하면 다음 형태로 메시지를 생성합니다.
<type>(optional-scope): <subject>
기본으로 사용하는 type은 다음과 같습니다.
| Type |
용도 |
feat |
새로운 기능 |
fix |
버그 수정 |
docs |
문서 변경 |
style |
동작에 영향을 주지 않는 포맷 변경 |
refactor |
기능 변화 없는 코드 구조 개선 |
perf |
성능 개선 |
test |
테스트 추가 또는 수정 |
build |
빌드 시스템 또는 의존성 변경 |
ci |
CI 설정 변경 |
chore |
기타 유지보수 작업 |
revert |
이전 변경 되돌리기 |
명령
| 명령 |
설명 |
Lazy Hoodie: Generate Commit Message |
staged 변경사항으로 커밋 메시지 생성 |
Lazy Hoodie: Set AI Provider API Key |
현재 선택한 provider의 API 키 저장 또는 교체 |
Lazy Hoodie: Clear AI Provider API Key |
현재 선택한 provider의 저장된 API 키 삭제 |
API 키는 provider별로 따로 저장됩니다. Provider를 변경한 뒤 키 설정 명령을 실행하면 해당 provider의 키를 관리할 수 있습니다.
변경사항 처리 방식
Lazy Hoodie: Commit은 working tree 전체가 아닌 staging area만 분석합니다.
파일 수정
↓ git add
Staging Area
↓ Lazy Hoodie: Generate Commit Message
커밋 메시지 입력창
↓ 사용자 검토 및 커밋
Git Commit
- staged된 수정 파일: 변경된 줄 분석
- staged된 새 파일: 추가된 내용 분석
- staged된 삭제 파일: 삭제된 내용 분석
- staged된 이름 변경: Git diff에 포함된 rename 정보 분석
- staged되지 않은 파일: 분석 대상에서 제외
diff가 maxDiffCharacters보다 크면 앞부분만 provider에 전달합니다. 이 경우 완료 알림에 원본 diff가 잘렸다는 안내가 표시되므로 생성 결과를 특히 주의해서 검토하세요.
개인정보와 보안
- API 키는 VS Code SecretStorage에 provider별로 저장합니다.
- API 키를
settings.json, 프롬프트 또는 로그에 기록하지 않습니다.
- 실제 커밋은 자동으로 실행하지 않습니다.
- 선택한 AI provider에는 staged diff, staged 파일명, 커밋 설정 및 사용자 규칙이 전송됩니다.
- 민감한 파일을 stage했다면 생성 버튼을 누르기 전에 staging area에서 제외하세요.
- API 사용량, 요금, 데이터 처리 정책은 선택한 provider의 정책을 따릅니다.
문제 해결
No staged changes found
커밋할 파일이 staging area에 없습니다. Source Control에서 파일 옆의 + 버튼을 누르거나 다음 명령을 실행하세요.
git add <file>
Provider가 Gemini인지 확인한 다음 명령 팔레트에서 아래 명령을 실행하세요.
Lazy Hoodie: Set AI Provider API Key
OpenAI provider is not implemented yet 또는 Claude provider is not implemented yet
현재 버전에서는 Gemini만 실제 호출을 지원합니다. 설정에서 provider를 Gemini로 변경하세요.
Source Control 입력창에 메시지가 들어가지 않음
- VS Code 내장 Git 확장이 활성화되어 있는지 확인하세요.
- 현재 workspace가 Git 저장소인지 확인하세요.
- 여러 workspace가 열려 있다면 staged 변경사항이 있는 저장소를 선택하세요.
- Extension Development Host로 테스트 중이라면 코드를 다시 컴파일하고 창을 재실행하세요.
diff가 너무 커서 생성 결과가 부정확함
서로 관련된 변경사항끼리 나누어 커밋하는 것이 가장 좋습니다. 필요하면 lazyHoodie.commit.maxDiffCharacters 값을 늘릴 수 있지만, 요청 크기와 provider 사용량도 함께 증가할 수 있습니다.
로컬 개발
저장소를 내려받은 뒤 의존성을 설치합니다.
npm install
타입 검사와 컴파일을 실행합니다.
npm run check
npm run compile
프로젝트 폴더를 VS Code로 열고 F5를 누르면 Extension Development Host가 실행됩니다.
Run Lazy Hoodie: Commit
소스 변경을 계속 감시하려면 다음 명령을 사용할 수 있습니다.
npm run watch
로드맵
- OpenAI provider 구현
- Anthropic Claude provider 구현
- 생성 결과 미리보기 및 재생성
- 커밋 메시지 후보 여러 개 제안
- 프로젝트별 규칙 파일 지원
- 테스트 및 Marketplace 배포 자동화
License
MIT