기존에 README.md 생성기를 이용하면 이슈 가이드(Issue Template) 와 기여 가이드(Pull Request Template) 를 별도로 만들어줘야 하는 문제가 있었다. 따라서 나는 README.md 생성기를 이용했을 때 템플릿을 생성해줘야하는 불필요한 작업을 줄이고자 나만의 기본 베이스가 될 템플릿을 만들기로했다. 어떻게 만들었는지에 대해 정리해두면 좋을 것 같아서 글을 써본다.
라이선스의 경우, 프로젝트마다 다를 수 있기 때문에 만드는 방법만 정리해보자.
방법은 굉장히 간단하다. 이전에 내가 포스팅한 글에서 참고하라고 했던 Choosealicense 사이트의 가이드만 따라하면 된다.
루트 폴더에서 "LICENSE" 라는 파일을 새로 생성해주고, 사이트에서 선택한 라이선스의 정보를 복사해 넣어주기만 하면 된다. (당연히 year와 fullname은 수정해주어야 한다! 😇)
이슈 가이드는 말 그대로 이슈 템플릿을 의미한다. 내가 생각했을 때 이슈에 필요한 내용은 그렇게 많지 않은 것 같다. 더 작은 단위로 나눠서 각 이슈 목적별로 나누려고 했으나 굳이 나눌 필요가 없다고 판단해 하나의 템플릿만을 이용하기로 했다.
# Issue 🙋🏻♂️
## 개요
현재 브랜치에 대한 정보를 입력해주세요.
- [] New Feature
- [] Bug Fix
- [] CI / CD
- [] Setup
## 이슈 내용
버그일 경우에는 버그가 발생한 위치도 함께 입력해주세요.
## 체크 리스트
## 기타
기여 가이드는 말 그대로 Pull Request 템플릿을 의미한다. Pull Request는 두 개의 목적으로 템플릿을 나누었다. 동일한 양식으로 만들었기 때문에 나눌 필요가 없다고 생각할 수 있으나, 배포한 버전에서 수정을 했느냐 안했느냐는 꽤나 중요한 문제라고 판단했기에 나누어보았다.
우선 일반적인 Pull Request 양식 은 다음과 같다.
# Pull Request 🖐🏻
## 개요
이슈 번호와 반영할 브랜치에 대한 정보를 입력해주세요.
- [] New Feature
- [] Bug Fix
- [] CI / CD
- [] Setup
## 작업 사항
## 변경 로직
### 변경 전
### 변경 후
## 체크 리스트
## 기타
다음은 Hotfix 목적 으로 만든 양식이다.
# Pull Request 🔥
## 개요
이슈 번호와 릴리즈 버전 정보를 입력해주세요.
## 작업 사항
## 변경 로직
### 변경 전
### 변경 후
## 체크 리스트
## 기타
---
반드시 master, develop 브랜치 모두 반영이 되었는지 확인해주세요.
일단 내가 참고한 블로그들을 기반으로 많이 사용할 법한 라벨들을 넣어보기로 했다.
라벨명 | 용도 |
---|---|
Communication Needed | 논의가 필요한 경우 |
Review Needed | 코드 리뷰가 필요한 경우 |
Answer Needed | 리뷰를 완료하고 PR을 올린 담당자가 코드를 수정하거나 답변을 해주어야 하는 경우 |
Merge Needed | 리뷰를 완료하고 머지를 해도 문제가 없을 경우 |
In Review | 리뷰 중일 경우 |
Simple Review | 간단한 코드 수정에 빠르게 리뷰할 수 있을 경우 |
리뷰어 이름 | PR 리뷰어 이름 |
Feature | 기능 개발을 할 경우 |
Bug | 버그에 대한 내용일 경우 |
Style | 스타일링에 대한 내용일 경우 |
Refactor | 리팩토링을 할 경우 |
Settings | 개발 환경 설정일 경우 |
Deploy | 배포 관련 설정일 경우 |
Docs | 문서 작성 및 수정일 경우 |
Test | 테스트에 관련된 내용일 경우 |
Github 라벨을 동기화할 수 있는 라이브러리이다. (단, Github 액세스 토큰 필요)
$ npm install -g github-label-sync
그 다음으로는 새롭게 적용할 라벨 설정 파일을 만들어서 정의를 해주면 된다.
$ github-label-sync --access-token [액세스 토큰] --labels labels.json [계정명]/[저장소 이름]
labels.json 만 있다면, 이 라이브러리를 통해 원하는 Repository에 적용할 수 있다.