이슈와 프로젝트 관리
3. 코드 예제
예제 1: 이슈 템플릿 추가 — 01_issue_project.sh 발췌
mkdir -p .github/ISSUE_TEMPLATE
cat > .github/ISSUE_TEMPLATE/bug_report.md <<'EOF'
---
name: 버그 신고
about: 재현 가능한 문제를 보고합니다
labels: bug
---
## 재현 방법
1.
2.
## 기대한 동작
## 실제 동작
EOF
# feature_request.md, config.yml 도 같은 방식으로 작성
git add .github
commit_at "chore: 이슈 템플릿 추가"
ls .github/ISSUE_TEMPLATEbug_report.md
config.yml
feature_request.md세 파일을 커밋하면 다음부터 "New issue" 버튼에 양식 선택 화면이 나타납니다. config.yml 은 빈 이슈를 막고 질문은 Discussions 로 안내합니다.
예제 2: 이슈 번호를 담은 브랜치와 닫기 키워드 커밋 — 01_issue_project.sh 발췌
git switch -q -c fix/12-login-timeout
printf 'login timeout fix\n' >> app.txt
git add app.txt
commit_at "fix: 로그인 타임아웃 수정
Fixes #12"
git push -q -u origin fix/12-login-timeout이 커밋은 출력 없이 조용히 끝나지만, 커밋 본문에 Fixes #12 가 남아 예제 3 의 log --grep 으로 다시 찾을 수 있습니다. 브랜치 이름 fix/12-login-timeout 도 이슈 번호를 그대로 담고 있습니다.
예제 3: 관리자 병합과 log --grep — 01_issue_project.sh 발췌
git switch -q main
merge_at "Merge pull request #21 from fix/12-login-timeout" fix/12-login-timeout
git push -q origin main
git push -q origin --delete fix/12-login-timeout
git branch -q -d fix/12-login-timeout
# (중략: 5번 구간에서 이슈 7·20 번도 같은 방식으로 처리)
git log --oneline --grep '#12'
echo "---"
git log --oneline --grep 'Closes #7'7c5231d fix: 로그인 타임아웃 수정
---
2d927d5 feat: 다크 모드 추가실제 GitHub 화면이라면 fix/12-login-timeout 의 PR 이 병합되는 순간 이슈 12번이 자동으로 닫힙니다. --grep 은 커밋 메시지 전체(제목+본문)를 검색하므로 본문에 적은 이슈 번호도 잡아냅니다.
예제 4: 태그와 shortlog 로 릴리스 노트 — 01_issue_project.sh 발췌
tag_at v1.1.0 "release: v1.1.0"
git push -q origin v1.1.0
git shortlog v1.0.0..v1.1.0 --no-mergeskim (4):
fix: 로그인 타임아웃 수정
chore: 이슈 템플릿 추가
feat: 다크 모드 추가
fix: 널 체크 누락 수정--no-merges 로 병합 커밋을 빼면 실제로 바뀐 내용만 작성자별로 정리됩니다. 이 목록을 다듬으면 릴리스 노트 초안이 완성됩니다.