[CI] github 코드리뷰 자동 설정, issue/pr 템플릿 설정하기

0x45c·2024년 9월 1일
1

CI

목록 보기
3/5
post-thumbnail

프로젝트 리포지토리에서 직접 GitHub 템플릿 파일을 생성하고 관리할 수 있다.

프로젝트 루트에 .github 디렉토리를 만들고 그 안에 필요한 템플릿 파일들을 위치시키면 되는데, 이 방법을 통해 GitHub 웹 인터페이스를 사용하지 않고도 로컬 개발 환경에서 모든 설정을 관리할 수 있어, 작업 흐름이 더욱 효율적이고 버전 관리가 용이해진다.

또한, 코드 소유권 설정(CODEOWNERS)도 같은 방식으로 관리할 수 있어 일관된 프로젝트 구성을 유지할 수 있다


1. 📝 템플릿 설정하기

템플릿은 예시입니다!

1) Pull Request 템플릿

.github/PULL_REQUEST_TEMPLATE.md 파일을 생성

## ❗ Issue Number or Link

- 여기에 작성

## 🧰 변경 타입

- [ ] ✨ feat: 새로운 기능
- [ ] 🐛 fix: 버그 수정
- [ ] ♻️ refactor: 코드 리팩토링
- [ ] 🎨 design: CSS 등 사용자 UI 디자인 변경
- [ ] 💎 style: 코드 포맷팅, 코드 변경이 없는 경우
- [ ] 📦 chore: 빌드 업무 수정, 패키지 매니저 설정, 자잘한 코드 수정
- [ ] 💬 comment: 주석 추가 및 변경
- [ ] 📚 docs: 문서 수정
- [ ] 🚑 !HOTFIX: 급하게 치명적인 버그를 고치는 경우
- [ ] 🚀 perf: 성능 개선

## 🔎  작업 내용

- 여기에 작성

## 📢 주의 및 리뷰 요청

- 여기에 작성

## 🔗 Reference

- 해당 테스크를 수행하며 참고한 Link를 모두 작성 (Reference)

2) Issue 템플릿

## 🔎 작업 내용

- [ ] 작업할 내용을 작성해 주세요.

<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: ''
---

## ✨ 기능 설명

추가하고 싶은 기능에 대해 설명해주세요.

## 🔍 필요 이유

이 기능이 왜 필요한지 설명해주세요.

## 🐾 대안 설명

고려해본 다른 대안이 있다면 적어주세요.

## 🍀 추가 내용

추가로 알리고 싶은 내용이 있다면 적어주세요.

2. 👥 자동 코드리뷰어 설정하기

GitHub에서 팀 만들기:

조직 설정에서 새로운 팀을 생성 (예: Frontend 팀).

Code Owners 설정:
.github/CODEOWNERS 파일 생성:

* @{Organization이름}/{팀이름}

이 설정은 모든 파일에 대해 Frontend 팀을 자동 리뷰어로 지정한다.

참고) https://helloinyong.tistory.com/329


3. 🔒 Branch Rules 설정하기

GitHub 리포지토리의 Settings > Branches에서 branch protection rules을 설정

  1. 보호할 브랜치 패턴을 지정 (예: develop)

  2. 다음 옵션 설정

    • 모든 변경 사항은 보호된 브랜치로 직접 푸시할 수 없으며, 반드시 풀 리퀘스트(PR)를 통해 제출

    • PR은 병합되기 전에 최소한 한 명의 승인(리뷰어의 승인)이 필요

    • 새로운 커밋이 PR에 추가되면 이전의 승인이 해제되며, 다시 검토가 필요

    • PR을 병합하기 전에 해당 브랜치는 기준 브랜치의 최신 코드로 업데이트되어 있어야 합니다. 이는 기준 브랜치의 최신 코드가 포함된 상태에서 병합이 이루어지도록 보장

profile
열심히 배워가고 있는 3년차 프론트엔드 개발자입니다 :)

0개의 댓글