- workflow-version.json: 글로벌 워크플로우 버전 관리 - .claude/rules/: 팀 정책, Git 워크플로우 규칙 - .claude/skills/: init-project, create-mr, fix-issue, sync-team-workflow - .githooks/: commit-msg (Conventional Commits), post-checkout (hooksPath) - .editorconfig: 에디터 공통 설정
66 lines
1.8 KiB
Markdown
66 lines
1.8 KiB
Markdown
---
|
|
name: create-mr
|
|
description: 현재 브랜치에서 Gitea MR(Merge Request)을 생성합니다
|
|
allowed-tools: "Bash, Read, Grep"
|
|
argument-hint: "[target-branch: develop|main] (기본: develop)"
|
|
---
|
|
|
|
현재 브랜치의 변경 사항을 기반으로 Gitea에 MR을 생성합니다.
|
|
타겟 브랜치: $ARGUMENTS (기본: develop)
|
|
|
|
## 수행 단계
|
|
|
|
### 1. 사전 검증
|
|
- 현재 브랜치가 main/develop이 아닌지 확인
|
|
- 커밋되지 않은 변경 사항 확인 (있으면 경고)
|
|
- 리모트에 현재 브랜치가 push되어 있는지 확인 (안 되어 있으면 push)
|
|
|
|
### 2. 변경 내역 분석
|
|
```bash
|
|
git log develop..HEAD --oneline
|
|
git diff develop..HEAD --stat
|
|
```
|
|
- 커밋 목록과 변경된 파일 목록 수집
|
|
- 주요 변경 사항 요약 작성
|
|
|
|
### 3. MR 정보 구성
|
|
- **제목**: 브랜치의 첫 커밋 메시지 또는 브랜치명에서 추출
|
|
- `feature/ISSUE-42-user-login` → `feat: ISSUE-42 user-login`
|
|
- **본문**:
|
|
```markdown
|
|
## 변경 사항
|
|
- (커밋 기반 자동 생성)
|
|
|
|
## 관련 이슈
|
|
- closes #이슈번호 (브랜치명에서 추출)
|
|
|
|
## 테스트
|
|
- [ ] 빌드 성공 확인
|
|
- [ ] 기존 테스트 통과
|
|
```
|
|
|
|
### 4. Gitea API로 MR 생성
|
|
```bash
|
|
# Gitea remote URL에서 owner/repo 추출
|
|
REMOTE_URL=$(git remote get-url origin)
|
|
|
|
# Gitea API 호출
|
|
curl -X POST "GITEA_URL/api/v1/repos/{owner}/{repo}/pulls" \
|
|
-H "Authorization: token ${GITEA_TOKEN}" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"title": "MR 제목",
|
|
"body": "MR 본문",
|
|
"head": "현재브랜치",
|
|
"base": "타겟브랜치"
|
|
}'
|
|
```
|
|
|
|
### 5. 결과 출력
|
|
- MR URL 출력
|
|
- 리뷰어 지정 안내
|
|
- 다음 단계: 리뷰 대기 → 승인 → 머지
|
|
|
|
## 필요 환경변수
|
|
- `GITEA_TOKEN`: Gitea API 접근 토큰 (없으면 안내)
|