이번 프로젝트에서는 이슈를 Gitlab의 issue board로 관리하고 있는데, 깔끔하고 한 눈에 알아보기 편하도록 팀원들 간의 이슈 카드 생성 규칙을 정하고 문서화하였다.
그러나 문서화만 해서는 이슈를 생성할 때 마다 일일이 문서를 다시 찾아보아야 하는 번거로움이 발생한다.
이러한 케이스를 위해, Gitlab에서는 issue template 기능을 제공하고 있으며, 여러 템플릿을 생성하여 repository에 등록하고, 상황에 맞춰서 사용할 수 있다.
참고: Gitlab 에서는 merge request에 대한 템플릿도 제공하고 있으며, 이 둘을 합쳐서 description template 이라고 이른다.
1. .gitlab/issue_templates 디렉토리 생성
Gitlab 에서 제공하는 모든 템플릿은 마크다운 문서로 작성하여 프로젝트 최상단의 .gitlab 디렉토리 에 저장해야한다.
Issue Template 은 .gitlab/issue_templates 디렉토리 에 여러 개를 작성할 수 있으며, 상황에 따라 알맞은 템플릿을 적용시킬 수 있다.
나는 .gitlab/issue_templates 디렉토리가 없기 때문에, mkdir 명령어를 통해 생성해주었다.
[mkdir 명령어를 통해 .gitlab/issue_templates 디렉토리 생성]
(base) ➜ my-repo git:(master) mkdir .gitlab
(base) ➜ my-repo git:(master) cd .gitlab
(base) ➜ .gitlab git:(master) mkdir issue_templates
2. issue template 생성
이제 용도에 알맞은 이슈 템플릿을 마크다운으로 작성해주면 된다.
나는 feature 개발에 필요한 이슈 템플릿을 만들어줄 것이기 때문에, feature_request.md 라는 이름으로 작성해보도록 하겠다.
[feature_request.md 생성]
(base) ➜ .gitlab git:(master) cd issue_templates
(base) ➜ issue_templates git:(master) vi feature_request.md
[feature_request.md]
<!-- feature 와 관련된 이슈 템플릿 -->
<!-- [선택] 필요한 경우, 이 이슈 전에 해야하는 이슈를 등록한다. -->
<!-- ex) 선행 과제 : #00 이슈 이름 -->
<!-- [필수] 이 이슈카드에 대한 설명. 최대한 다른 사람이 알아볼 수 있도록 적어주자 -->
<!-- [선택] 필요에 따라서, 이 이슈를 위한 체크리스트를 체크박스로 만들어두자 -->
<!-- ex) - [ ] 체크리스트 작성하기 -->
3. 원격 저장소에 push 하기
이제 작성한 템플릿 md 파일을 원격 저장소에 push 해주기만 하면 된다.
[원격 저장소에 Push]
(base) ➜ my-repo git:(master) ✗ git add .gitlab
(base) ➜ my-repo git:(master) ✗ git commit
[master (root-commit) ac6f774] docs: issue template 추가
1 file changed, 9 insertions(+)
create mode 100644 .gitlab/issue_templates/feature_request.md
(base) ➜ my-repo git:(master) ✗ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (5/5), 756 bytes | 756.00 KiB/s, done.
Total 5 (delta 0), reused 0 (delta 0)
To https://git.mygit.org/mygitlab/my-repo.git
* [new branch] master -> master
New Issue를 통해 이슈를 새로 생성하여보면, 이와 같이 템플릿을 적용할 수 있음을 확인할 수 있다.