Loading...
Loading...
GitHub CLI(gh)를 활용한 GitHub 플랫폼 상호작용 가이드. 다음 상황에서 사용: (1) GitHub 이슈 생성, 조회, 수정 시, (2) Pull Request 생성, 리뷰, 병합 시, (3) GitHub 릴리스 생성 및 관리 시, (4) 레이블, 마일스톤 등 프로젝트 관리 시, (5) GitHub Actions 워크플로우 실행 및 결과 조회 시, (6) 'gh', 'issue', 'pull request', 'PR', 'release', 'label', 'workflow', 'run' 키워드가 포함된 작업 시
npx skill4agent add dalestudy/skills githubgh api# ❌ gh api - 임의의 REST/GraphQL 엔드포인트 호출 가능 (권한 제어 불가)
gh api repos/{owner}/{repo}/issues
gh api graphql -f query='{ viewer { login } }'
# ✅ 구체적 서브커맨드 사용 (allowed-tools로 권한 제한 가능)
gh issue list
gh pr list
gh release listgh apiallowed-toolsgh issuegh prBash(gh issue:*)# ❌ 사용자 확인 없이 Write 작업 수행
gh issue create --title "Bug fix" --body "Fixed it"
gh pr merge 123
gh issue close 456
# ✅ 사용자에게 먼저 확인 후 수행
# "이슈를 생성할까요? 제목: Bug fix, 본문: Fixed it"
# → 사용자 승인 후 실행
gh issue create --title "Bug fix" --body "Fixed it"git -C# ❌ 현재 디렉토리가 대상 레포지토리인데 -C 옵션 사용
git -C /path/to/current/repo log --oneline
# ✅ 현재 디렉토리에서 바로 실행
git log --onelinegit -C# ❌ 레포지토리 정보 하드코딩
gh issue list --repo DaleStudy/skills
# ✅ 현재 디렉토리의 Git 원격 정보 활용 (기본값)
gh issue listgh--repo| 명령어 | 설명 |
|---|---|
| 이슈 목록 조회 |
| 이슈 상세 조회 |
| 이슈 코멘트 조회 |
| 관련 이슈 상태 요약 |
| PR 목록 조회 |
| PR 상세 조회 |
| PR 코멘트 조회 |
| 관련 PR 상태 요약 |
| PR 변경사항 조회 |
| PR CI 상태 확인 |
| 릴리스 목록 조회 |
| 릴리스 상세 조회 |
| 레이블 목록 조회 |
| 레포지토리 정보 조회 |
| 이슈 검색 |
| PR 검색 |
| 워크플로우 실행 목록 조회 |
| 워크플로우 실행 상세 조회 |
| 워크플로우 실행 로그 조회 |
| 실패한 스텝 로그만 조회 |
| 워크플로우 목록 조회 |
| 워크플로우 상세 조회 |
| 명령어 | 설명 |
|---|---|
| 이슈 생성 |
| 이슈 닫기 |
| 이슈 다시 열기 |
| 이슈 수정 |
| 이슈에 코멘트 작성 |
| PR 생성 |
| PR 병합 |
| PR 닫기 |
| PR 다시 열기 |
| PR 수정 |
| PR에 코멘트 작성 |
| PR 리뷰 제출 |
| 릴리스 생성 |
| 릴리스 삭제 |
| 레이블 생성 |
| 레이블 수정 |
| 레이블 삭제 |
| 워크플로우 재실행 |
| 워크플로우 실행 취소 |
| 워크플로우 수동 실행 (workflow_dispatch) |
| 워크플로우 비활성화 |
| 워크플로우 활성화 |
# PR 본문에 키워드로 이슈 자동 연결 (PR 병합 시 이슈 자동 닫힘)
gh pr create --title "Fix login bug" --body "Closes #123"ClosesFixesResolves# 라벨 목록 확인
gh label list
# 라벨로 이슈 필터링
gh issue list --label bug
gh issue list --label "good first issue"# 담당자별 이슈
gh issue list --assignee @me
# 상태별 이슈
gh issue list --state open
gh issue list --state closed
# 조합 검색
gh issue list --label bug --assignee @me --state open# 기본 PR 생성
gh pr create --title "Add user authentication" --body "## Summary
- JWT 기반 인증 구현
- 로그인/로그아웃 API 추가
## Test Plan
- [ ] 로그인 성공/실패 테스트
- [ ] 토큰 만료 시 갱신 테스트"
# Draft PR 생성 (리뷰 준비가 안 된 경우)
gh pr create --draft --title "WIP: Add user authentication"
# 리뷰어 지정
gh pr create --reviewer user1,user2 --title "Add feature"# PR 변경사항 확인
gh pr diff 123
# PR CI 상태 확인
gh pr checks 123
# PR 리뷰 승인
gh pr review 123 --approve
# PR 리뷰 코멘트
gh pr review 123 --comment --body "전반적으로 좋습니다. 몇 가지 제안사항이 있습니다."
# PR 변경 요청
gh pr review 123 --request-changes --body "인증 로직에 보안 문제가 있습니다."# Squash merge (커밋 히스토리 정리, 권장)
gh pr merge 123 --squash
# Merge commit
gh pr merge 123 --merge
# Rebase merge
gh pr merge 123 --rebase
# 병합 후 로컬/원격 브랜치 자동 삭제
gh pr merge 123 --squash --delete-branch# 릴리스 노트 자동 생성
gh release create v1.0.0 --generate-notes
# 제목과 본문 지정
gh release create v1.0.0 --title "v1.0.0" --notes "첫 번째 안정 릴리스"
# 프리릴리스
gh release create v2.0.0-beta.1 --prerelease --generate-notes
# Draft 릴리스 (바로 공개하지 않음)
gh release create v1.0.0 --draft --generate-notes# 최신 릴리스 확인
gh release view --repo {owner}/{repo}
# 릴리스 목록
gh release list
# 특정 릴리스 상세
gh release view v1.0.0# 최근 워크플로우 실행 목록
gh run list
# 특정 워크플로우만 필터링
gh run list --workflow ci.yml
# 실행 상세 정보 (상태, 소요 시간, 트리거 등)
gh run view {run-id}
# 실패한 스텝의 로그만 확인 (디버깅에 유용)
gh run view {run-id} --log-failed
# 전체 로그 확인
gh run view {run-id} --log# workflow_dispatch 이벤트가 설정된 워크플로우 실행
gh workflow run ci.yml
# 입력 파라미터 전달
gh workflow run deploy.yml -f environment=staging -f version=1.2.0
# 특정 브랜치에서 실행
gh workflow run ci.yml --ref feature/my-branch# 실패한 job만 재실행
gh run rerun {run-id} --failed
# 전체 재실행
gh run rerun {run-id}
# 진행 중인 실행 취소
gh run cancel {run-id}ghgh issuegh issue list [--state open|closed|all] [--label name] [--assignee handle]
gh issue view {number} [--comments]
gh issue create --title "제목" --body "본문" [--label name] [--assignee handle]
gh issue close {number} [--reason completed|not_planned]
gh issue reopen {number}
gh issue edit {number} [--title "새 제목"] [--add-label name] [--remove-label name]
gh issue comment {number} --body "코멘트"
gh issue statusgh prgh pr list [--state open|closed|merged|all] [--label name] [--author handle]
gh pr view {number} [--comments]
gh pr create --title "제목" --body "본문" [--draft] [--reviewer handle]
gh pr merge {number} [--squash|--merge|--rebase] [--delete-branch]
gh pr close {number}
gh pr reopen {number}
gh pr edit {number} [--title "새 제목"] [--add-label name] [--add-reviewer handle]
gh pr comment {number} --body "코멘트"
gh pr review {number} [--approve|--comment|--request-changes] [--body "리뷰"]
gh pr diff {number}
gh pr checks {number}
gh pr statusgh releasegh release list
gh release view {tag}
gh release create {tag} [--title "제목"] [--notes "노트"] [--generate-notes]
gh release delete {tag} [--yes]gh labelgh label list
gh label create {name} [--color hex] [--description "설명"]
gh label edit {name} [--name "새이름"] [--color hex] [--description "설명"]
gh label delete {name} [--yes]gh repogh repo view [--web]
gh repo clone {owner}/{repo}gh rungh run list [--workflow name] [--status completed|in_progress|failure|success]
gh run view {run-id} [--log] [--log-failed]
gh run rerun {run-id} [--failed]
gh run cancel {run-id}
gh run watch {run-id}gh workflowgh workflow list
gh workflow view {name|id}
gh workflow run {name|id} [-f key=value] [--ref branch]
gh workflow disable {name|id}
gh workflow enable {name|id}gh searchgh search issues {query} [--repo owner/repo] [--state open|closed]
gh search prs {query} [--repo owner/repo] [--state open|closed|merged]