GitHub PR, Issue Template 적용하기

General Dong·2024년 10월 25일
post-thumbnail

다른 분들의 깃허브를 보는데 PR이 똑같은 형식으로 보기 좋게 설정되어 있는 걸 보았다.
그래서 매번 저 양식을 복사해서 사용하나 싶었지만, 구글링 해보니 템플릿으로 만들 수 있다고 하여 나도 적용해보려고 한다!

PR Template

  1. 프로젝트의 root 디렉토리에 .github 디렉토리를 생성한다.
  2. .github 디렉토리 안에 PULL_REQUEST_TEMPLATE.md를 만들고 마크다운 언어로 템플릿을 구성한다.

템플릿 예시

이제 해당 파일을 main으로 push하고, 다시 줄바꿈만 하여 수정한 뒤 PR을 생성하여 잘 적용되는지 확인해보자!

PR을 생성하면 이렇게 자동으로 구성되는 걸 볼 수 있다!!

Issue Template

Issue Template을 만드는 방식은 크게 2가지가 있다.
1. 깃허브 사이트에서 만들기
2. Project 내에서 만들고 관리하기

깃허브 사이트에서 만들기

  1. 해당 레포지토리에서 Settings로 들어간다.

  1. 밑으로 내리면 Features가 보이고 Issues 부분에 Set up templates를 클릭하자.

  1. Add template: select 버튼을 클릭하여 3개 항목 중 원하는 항목을 클릭하여 만들자.
    보통 Bug reportFeature request 이렇게 두개를 만드는 것 같다!

  1. 클릭하여 생성하면 이렇게 미리보기로 볼 수 있고, 연필 그림을 클릭하면 편집을 할 수 있다.

  1. Propose changes 버튼을 클릭하고, Commit하여 템플릿을 적용해준다.

  1. 이슈 템플릿 적용 완료! (기본 템플릿을 적용한 것이다)

Project 내에서 만들고 관리하기

이 방법은 PR Template 만들 때와 비슷하다.
레포지토리를 이제 막 만들고, 프로젝트를 setup할 때 미리 만들어 놓는 방법이라고 생각하면 편할 거 같다!

  1. 프로젝트 루트 경로에 .github 디렉토리를 만들고, 그 안에 ISSUE_TEMPLATE 디렉토리를 만든다.

  2. ISSUE_TEMPLATE 디렉토리 안에 본인이 만들고 싶은 종류의 이슈 템플릿을 만들면 된다!
    단, 아래 코드는 템플릿 상단에 반드시 포함해야 한다!

<!-- 값을 지정해 주지 않는다면 '' -->
---
name: 
about: 
title: 
labels: ''
assignees: ''	
---
  • name : 템플릿의 이름
  • about : 템플릿 설명
  • title : 이슈의 제목
  • labels : 이슈에 붙이 라벨
  • assignees : 이슈에 자동으로 할당할 담당자

템플릿 예시

소감

이전까진 PR과 이슈에 무엇을 적어야할지 잘 몰랐었고, 형식을 지정하지 않다보니까 중구난방으로 생성하곤 했다...
이렇게 템플릿으로 틀을 잡아두면 가독성도 좋고 조금 더 편하게 작성할 수 있을 것 같다!
다음 팀 프로젝트 때 바로 적용보아야


템플릿 예시

PR Template

## #️⃣ 연관된 이슈
<!-- ex) #이슈번호[, #이슈번호] -->

> 여기에 작성


## ✅ 체크리스트

- [ ] 🔀 PR 제목의 형식 맞추기 `ex) [feat] ㅇㅇ 기능 추가`
- [ ] 💡 이슈 등록
- [ ] 🏷️ 라벨 등록
- [ ] 🧹 불필요한 코드 제거
- [ ] 🧪 로컬 테스트 완료
- [ ] 🏗️ 빌드 성공
- [ ] 💯 테스트 통과


## 📝 작업 내용
<!-- 이번 PR에서 작업한 내용을 설명해 주세요. (이미지 첨부 가능) -->

> 여기에 작성


## 📸 스크린샷 (UI 변경 시 필수)
<!-- UI 변경이 포함된 경우 변경된 화면의 스크린샷을 추가해 주세요. -->



## 👀 리뷰어 가이드라인
<!-- 리뷰어가 중점적으로 확인해야 할 사항을 작성해 주세요. -->
<!-- ex) 메서드 XXX의 이름을 더 잘 짓고 싶은데 혹시 좋은 명칭이 있을까요? -->

> 여기에 작성

Issue Template

Bug

---
name: 🐞 Bug Report
about: 버그가 발생했나요?
title: "간략한 버그 설명"
labels: 'bug'
assignees: ''
---

## 🐞 버그 설명
<!-- 버그에 대한 명확한 설명을 작성해 주세요. -->

> 여기에 작성


## 📋 재현 단계
<!-- 버그를 재현하기 위한 구체적인 단계들을 작성해 주세요. -->

1. 
2. 
3. 


## ✅ 예상 동작
<!-- 버그가 발생하지 않을 경우 예상되는 정상 동작을 설명해 주세요. -->
<!-- 예: 버튼을 클릭하면 로그인 성공 메시지가 나타납니다. -->

> 여기에 작성


## 📷 스크린샷 (선택 사항)
<!-- 가능하다면 문제를 보여주는 스크린샷을 첨부해 주세요. -->




## 📄 추가 정보 (선택 사항)
<!-- 문제를 더 파악할 수 있도록 관련된 추가 정보를 제공해 주세요. -->
<!-- 예: 로그 파일, 최근 변경 사항, 관련된 다른 이슈 등 -->

Feature

---
name: ✨ Feature Template
about: 구현할 기능 또는 명세가 있나요?
title: "구현할 기능 또는 명세 제목"
labels: ''
assignees: ''
---

## 🌟 기능 설명
<!-- 제안하려는 기능에 대해 설명해 주세요. -->

> 여기에 작성

## 📋 기능의 필요성
<!-- 기능의 필요성이나 이를 통해 해결하려는 문제를 설명해주세요. -->
<!-- 예: 현재 파일 업로드가 복잡하여 사용자 편의성이 떨어집니다. -->

> 여기에 작성

## 🎯 세부 기능
<!-- 어떤 세부 기능을 구현할 것인지 설명해 주세요. -->

- [ ] 세부 기능1
- [ ] 세부 기능2
- [ ] 세부 기능3

Refactor

---
name: 🔄 Refactoring
about: 리팩터링할 부분이 있나요?
title: "리팩터링할 간략한 내용"
labels: 'refactor'
assignees: ''
---

## 📝 리팩터링 설명
<!-- 리팩터링이 필요한 이유와 리팩터링할 부분을 설명해 주세요. -->
<!-- 예: 로그인 로직이 복잡하여 가독성이 떨어지고, 유지보수가 어렵습니다. -->

> 여기에 작성


## 🎯 리팩터링 목표
<!-- 리팩터링을 통해 달성하고자 하는 목표를 설명해 주세요. -->
<!-- 예: 코드 가독성 향상 및 중복 로직 제거 -->

> 여기에 작성


## 🔄 리팩터링 방법
<!-- 리팩터링을 수행할 방식과 계획을 설명해 주세요. -->
<!-- 예: 로그인 로직을 별도 클래스로 분리하고, 중복된 유효성 검사를 함수로 정리 -->

> 여기에 작성


## 📄 추가 정보 (선택 사항)
<!-- 리팩터링과 관련된 기타 추가 정보를 제공해 주세요. -->
<!-- 예: 코드 예시, 관련 링크 등 -->


참고

리포지토리에 대한 단일 문제 템플릿 수동으로 만들기 | GitHub Docs
리포지토리에 대한 끌어오기 요청 템플릿 만들기 | GitHub Docs
[Github] Issue & PR Template 설정하기 | Amaranth

profile
개발에 대한 기록과 복습을 위한 블로그 | Back-end Developer

0개의 댓글