From 7b6be10b5e5b7b2eaddbedebd4c157f954adfcf1 Mon Sep 17 00:00:00 2001 From: htlee Date: Mon, 23 Mar 2026 13:52:35 +0900 Subject: [PATCH] =?UTF-8?q?chore:=20=ED=8C=80=20=EC=9B=8C=ED=81=AC?= =?UTF-8?q?=ED=94=8C=EB=A1=9C=EC=9A=B0=20=EB=B6=80=ED=8A=B8=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=EB=9E=A9=20-=20.claude/skills/create-mr/SKILL.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .claude/skills/create-mr/SKILL.md | 64 +++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 .claude/skills/create-mr/SKILL.md diff --git a/.claude/skills/create-mr/SKILL.md b/.claude/skills/create-mr/SKILL.md new file mode 100644 index 0000000..71029c5 --- /dev/null +++ b/.claude/skills/create-mr/SKILL.md @@ -0,0 +1,64 @@ +--- +name: create-mr +description: 현재 브랜치에서 Gitea MR(Merge Request)을 생성합니다 +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 접근 토큰 (없으면 안내)