← ClaudeAtlas

project-prlisted

현재 브랜치 기반으로 GitHub PR을 생성한다. 이슈 연결·Co-Authored-By 자동 포함. 어느 GitHub 프로젝트에서나 사용 가능. 트리거 키워드: "PR 만들어줘", "PR 생성", "풀리퀘스트", "/project-pr"
Kyungjong-kim/claude-code-harness · ★ 0 · AI & Automation · score 70
Install: claude install-skill Kyungjong-kim/claude-code-harness
# Project PR 현재 브랜치의 변경사항으로 PR을 생성한다. ## Step 0 — 사전 확인 (git 레포 · 인증 · PR 중복) ```bash # git 레포 확인 (S73) if ! git rev-parse --is-inside-work-tree > /dev/null 2>&1; then echo "⚠ 현재 디렉터리가 git 저장소가 아닙니다. 프로젝트 루트로 이동 후 다시 실행하세요." exit 1 fi # 인증 확인 — 토큰 만료 vs 미로그인 분기 (S80) AUTH_OUTPUT=$(gh auth status 2>&1) if echo "$AUTH_OUTPUT" | grep -qi "not logged"; then echo "⚠ GitHub CLI 미인증 — gh auth login 후 재실행" exit 1 elif echo "$AUTH_OUTPUT" | grep -qi "expired\|token\|invalid"; then echo "⚠ GitHub CLI 토큰 만료 — gh auth refresh 실행 후 재실행" exit 1 fi # 현재 브랜치 및 base 브랜치 감지 CURRENT_BRANCH=$(git branch --show-current) DEFAULT_BRANCH=$(git remote show origin 2>/dev/null | grep "HEAD branch" | awk '{print $NF}') BASE_BRANCH="${DEFAULT_BRANCH:-develop}" # CLAUDE.md에 base 브랜치 규칙이 있으면 그것을 우선 사용 grep -iE "base.*브랜치|PR.*base|develop|main" CLAUDE.md 2>/dev/null | head -3 echo "현재 브랜치: $CURRENT_BRANCH / base 브랜치: $BASE_BRANCH" # 원격 upstream 존재 여부 확인 (S33) if ! git rev-parse --abbrev-ref "@{upstream}" > /dev/null 2>&1; then echo "⚠ 원격 브랜치가 없습니다. 먼저 push하세요:" echo " git push -u origin $CURRENT_BRANCH" exit 1 fi # 현재 브랜치에 이미 PR이 있는지 확인 gh pr list --head "$CURRENT_BRANCH" --json number,url,state 2>/dev/null ``` | 결과 | 처리 | |------|------| | git 레포 아님 | 안내 후 중단 | | `⚠ 미인증` | `gh auth login` 안내 후 중단 | | `⚠ 토큰 만료` | `gh auth refresh` 안내 후 중단 | | 원격 브랜치 없음 | `git push -u origin <브랜치>` 안내 후 중단 | | `현재 브랜치 == base 브랜치` | "작업 브랜치에서 실행해야 합니다. 현재 브랜치가 base 브랜치입니다." 안내 후 중단 | | PR 목록에 항목