snp-batch-validation/.claude/skills/create-mr/SKILL.md
htlee cfc80bbb0d feat: Gitea 팀 프로젝트 워크플로우 구조 적용
- .claude/rules/: 팀 정책, Git 워크플로우, 코드 스타일, 네이밍, 테스트 규칙
- .claude/skills/: init-project, sync-team-workflow, create-mr, fix-issue
- .claude/settings.json: deny 규칙 + hooks
- .claude/workflow-version.json: v1.2.0 적용
- .githooks/: commit-msg(grep -P→-E macOS 호환), pre-commit, post-checkout
- .editorconfig, .sdkmanrc, .mvn/settings.xml (Nexus 미러)
- .gitignore: .claude/ 팀 파일 추적 전환
- CLAUDE.md: 프로젝트 루트로 이동

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 22:00:24 +09:00

1.8 KiB

name description allowed-tools argument-hint
create-mr 현재 브랜치에서 Gitea MR(Merge Request)을 생성합니다 Bash, Read, Grep [target-branch: develop|main] (기본: develop)

현재 브랜치의 변경 사항을 기반으로 Gitea에 MR을 생성합니다. 타겟 브랜치: $ARGUMENTS (기본: develop)

수행 단계

1. 사전 검증

  • 현재 브랜치가 main/develop이 아닌지 확인
  • 커밋되지 않은 변경 사항 확인 (있으면 경고)
  • 리모트에 현재 브랜치가 push되어 있는지 확인 (안 되어 있으면 push)

2. 변경 내역 분석

git log develop..HEAD --oneline
git diff develop..HEAD --stat
  • 커밋 목록과 변경된 파일 목록 수집
  • 주요 변경 사항 요약 작성

3. MR 정보 구성

  • 제목: 브랜치의 첫 커밋 메시지 또는 브랜치명에서 추출
    • feature/ISSUE-42-user-loginfeat: ISSUE-42 user-login
  • 본문:
    ## 변경 사항
    - (커밋 기반 자동 생성)
    
    ## 관련 이슈
    - closes #이슈번호 (브랜치명에서 추출)
    
    ## 테스트
    - [ ] 빌드 성공 확인
    - [ ] 기존 테스트 통과
    

4. Gitea API로 MR 생성

# 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 접근 토큰 (없으면 안내)