프로젝트 리포지토리에서 직접 GitHub 템플릿 파일을 생성하고 관리할 수 있다.
프로젝트 루트에 .github
디렉토리를 만들고 그 안에 필요한 템플릿 파일들을 위치시키면 되는데, 이 방법을 통해 GitHub 웹 인터페이스를 사용하지 않고도 로컬 개발 환경에서 모든 설정을 관리할 수 있어, 작업 흐름이 더욱 효율적이고 버전 관리가 용이해진다.
또한, 코드 소유권 설정(CODEOWNERS)도 같은 방식으로 관리할 수 있어 일관된 프로젝트 구성을 유지할 수 있다
템플릿은 예시입니다!
.github/PULL_REQUEST_TEMPLATE.md
파일을 생성
## ❗ Issue Number or Link
- 여기에 작성
## 🧰 변경 타입
- [ ] ✨ feat: 새로운 기능
- [ ] 🐛 fix: 버그 수정
- [ ] ♻️ refactor: 코드 리팩토링
- [ ] 🎨 design: CSS 등 사용자 UI 디자인 변경
- [ ] 💎 style: 코드 포맷팅, 코드 변경이 없는 경우
- [ ] 📦 chore: 빌드 업무 수정, 패키지 매니저 설정, 자잘한 코드 수정
- [ ] 💬 comment: 주석 추가 및 변경
- [ ] 📚 docs: 문서 수정
- [ ] 🚑 !HOTFIX: 급하게 치명적인 버그를 고치는 경우
- [ ] 🚀 perf: 성능 개선
## 🔎 작업 내용
- 여기에 작성
## 📢 주의 및 리뷰 요청
- 여기에 작성
## 🔗 Reference
- 해당 테스크를 수행하며 참고한 Link를 모두 작성 (Reference)
## 🔎 작업 내용
- [ ] 작업할 내용을 작성해 주세요.
<br/>
참고로, 이슈 템플릿은 ISSUE_TEMPLATE
폴더를 만들고 다음과 같이 설정하여 depth를 늘릴 수 있다.
나는 그냥 팀 프로젝트용으로 할일 용으로 사용 목적이어서, 굳이 depth를 늘리진 않았다.
.github/ISSUE_TEMPLATE/config.yml
추가
blank_issues_enabled: false
contact_links:
- name: 문의하기
url: https://github.com/JANGSEYEONG/DalSongPyeonji/issues/new
about: 추가적인 문의 사항이 있으면 이곳을 클릭하세요.
issue_templates:
- name: 🐞 버그 리포트
description: 프로젝트 개선을 위해 버그를 신고해주세요.
title: '🐞 [버그] 제목을 입력하세요'
labels: bug
assignees: ''
template: bug_report.md
- name: ✨ 기능 요청
description: 새로운 기능을 제안해주세요.
title: '✨ [기능] 제목을 입력하세요'
labels: enhancement
assignees: ''
template: feature_request.md
.github/ISSUE_TEMPLATE/bug_report.md
추가
---
name: 버그 리포트
about: 프로젝트 개선을 위해 버그를 신고해주세요
title: '🐞 [버그] 제목을 입력하세요'
labels: bug
assignees: ''
---
## 🐞 버그 설명
버그가 무엇인지 명확하고 간결하게 설명해주세요.
## 🔍 재현 방법
버그를 재현하기 위한 단계를 순서대로 작성해주세요:
1. 첫 번째 단계
2. 두 번째 단계
3. 세 번째 단계
4. 에러 발생
## 🎯 예상 동작
기대했던 동작을 설명해주세요.
## 📸 스크린샷
가능하다면 스크린샷을 첨부해주세요.
## 🖥️ 사용 환경
- OS: [예: 윈도우, 맥OS]
- 브라우저: [예: 크롬, 사파리]
- 버전: [예: 22]
## 📱 스마트폰 환경 (해당하는 경우)
- 기기: [예: 아이폰6]
- OS: [예: iOS8.1]
- 브라우저: [예: 기본 브라우저, 사파리]
- 버전: [예: 22]
## 🍀 추가 내용
추가로 알리고 싶은 내용이 있다면 적어주세요.
.github/ISSUE_TEMPLATE/feature_request.md
추가
---
name: 기능 요청
about: 새로운 기능을 제안해주세요
title: '✨ [기능] 제목을 입력하세요'
labels: enhancement
assignees: ''
---
## ✨ 기능 설명
추가하고 싶은 기능에 대해 설명해주세요.
## 🔍 필요 이유
이 기능이 왜 필요한지 설명해주세요.
## 🐾 대안 설명
고려해본 다른 대안이 있다면 적어주세요.
## 🍀 추가 내용
추가로 알리고 싶은 내용이 있다면 적어주세요.
GitHub에서 팀 만들기:
조직 설정에서 새로운 팀을 생성 (예: Frontend 팀).
Code Owners 설정:
.github/CODEOWNERS
파일 생성:
* @{Organization이름}/{팀이름}
이 설정은 모든 파일에 대해 Frontend 팀을 자동 리뷰어로 지정한다.
참고) https://helloinyong.tistory.com/329
GitHub 리포지토리의 Settings > Branches에서 branch protection rules을 설정
보호할 브랜치 패턴을 지정 (예: develop)
다음 옵션 설정
모든 변경 사항은 보호된 브랜치로 직접 푸시할 수 없으며, 반드시 풀 리퀘스트(PR)를 통해 제출
PR은 병합되기 전에 최소한 한 명의 승인(리뷰어의 승인)이 필요
새로운 커밋이 PR에 추가되면 이전의 승인이 해제되며, 다시 검토가 필요
PR을 병합하기 전에 해당 브랜치는 기준 브랜치의 최신 코드로 업데이트되어 있어야 합니다. 이는 기준 브랜치의 최신 코드가 포함된 상태에서 병합이 이루어지도록 보장