| name | github-ops |
| description | GitHub 저장소 운영, 자동화, 관리 스킬입니다. 이슈 triage, PR 관리, CI/CD 운영, 릴리스 관리, 보안 모니터링을 `gh` CLI로 처리합니다. 단순 git 명령을 넘는 GitHub 운영 작업에 사용합니다. |
| origin | ECC |
GitHub Operations
커뮤니티 건강, CI 신뢰성, 기여자 경험을 중심으로 GitHub 저장소를 운영합니다.
활성화 시점
- 이슈 triage
- PR 관리
- CI/CD 실패 디버깅
- 릴리스 및 changelog 준비
- Dependabot과 보안 경고 모니터링
- 오픈소스 프로젝트의 기여자 경험 관리
- 사용자가 "check GitHub", "triage issues", "review PRs", "merge", "release", "CI is broken"이라고 할 때
도구 요구사항
- gh CLI: 모든 GitHub API 작업용
gh auth login으로 저장소 접근 설정
이슈 triage
각 이슈를 유형과 우선순위로 분류합니다.
유형: bug, feature-request, question, documentation, enhancement, duplicate, invalid, good-first-issue
우선순위: critical, high, medium, low
Triage 워크플로
- 이슈 제목, 본문, 코멘트 읽기
- 기존 이슈와 중복인지 확인
gh issue edit --add-label로 적절한 라벨 부여
- 질문이면 유용한 답변 작성
- 추가 정보가 필요한 버그면 재현 절차 요청
- 초보자 이슈면
good-first-issue 라벨 추가
- 중복이면 원본 링크와 함께 코멘트 후
duplicate 라벨 추가
gh issue list --search "keyword" --state all --limit 20
gh issue edit <number> --add-label "bug,high-priority"
gh issue comment <number> --body "Thanks for reporting. Could you share reproduction steps?"
PR 관리
리뷰 체크리스트
- CI 상태 확인:
gh pr checks <number>
- merge 가능 여부 확인:
gh pr view <number> --json mergeable
- 나이와 마지막 활동 확인
- 5일 넘게 리뷰 없는 PR 표시
- 커뮤니티 PR이면 테스트와 규약 준수 확인
Stale 정책
- 14일 이상 활동 없는 이슈:
stale 라벨과 업데이트 요청 코멘트
- 7일 이상 활동 없는 PR: 계속 진행 중인지 확인 코멘트
- 30일 응답 없는 stale 이슈는 자동 종료
gh issue list --label "stale" --state open
gh pr list --json number,title,updatedAt --jq '.[] | select(.updatedAt < "2026-03-01")'
CI/CD 운영
CI가 실패하면:
gh run view <run-id> --log-failed로 워크플로 런 확인
- 실패 단계 식별
- flaky test인지 실제 실패인지 구분
- 실제 실패면 근본 원인과 수정 제안
- flaky면 패턴을 기록
gh run list --status failure --limit 10
gh run view <run-id> --log-failed
gh run rerun <run-id> --failed
릴리스 관리
릴리스 준비 시:
- main의 CI가 모두 초록인지 확인
- 미출시 변경 검토
- PR 제목에서 changelog 생성
gh release create
gh pr list --state merged --base main --search "merged:>2026-03-01"
gh release create v1.2.0 --title "v1.2.0" --generate-notes
gh release create v1.3.0-rc1 --prerelease --title "v1.3.0 Release Candidate 1"
보안 모니터링
gh api repos/{owner}/{repo}/dependabot/alerts --jq '.[].security_advisory.summary'
gh api repos/{owner}/{repo}/secret-scanning/alerts --jq '.[].state'
gh pr list --label "dependencies" --json number,title
- 안전한 의존성 bump는 검토 후 자동 머지 검토
- critical/high 경고는 즉시 표시
- Dependabot 경고는 최소 주간 단위 점검
품질 게이트
GitHub 운영 작업을 마치기 전에:
- triage한 이슈에 적절한 라벨이 있다
- 7일 넘게 방치된 PR에는 리뷰나 코멘트가 있다
- CI 실패는 단순 재실행이 아니라 조사되었다
- 릴리스는 정확한 changelog를 포함한다
- 보안 경고는 인지되고 추적된다