Skip to content

Github Issue 똑똑하게 사용하기

n-ryu edited this page Nov 27, 2022 · 19 revisions

Github Issue?

image

Github Issue는 Github에서 제공하는 편리한 기능이다. 레포지토리마다 Issue를 생성해서 관련된 문제사항이나 앞으로 작성해야 하는 작업 사항들을 적어 보관해 둘 수 있다. 대부분의 경우 버그리포트를 작성하거나 진행중/계획하고 있는 피처 개발 계획 등을 적어두는 방식으로 하는데, Github에서 제공하는 여러가지 부가기능들을 통해 정말 다양한 방식으로 활용할 수 있다.

Github Issue 똑똑하게 사용하기
: Branch와 Commit 연동

Issue에서 Branch 생성하기

숨겨진 꿀기능 중 하나로 Issue에서 직접 Branch를 생성할 수 있는 기능이 있다! 이렇게 Branch를 생성하면 Issue와 Branch가 연결관계를 가지게 되서, Branch가 main에 머지되면 자동으로 Issue가 닫히는 등 소소한 편의기능을 누릴 수 있다(Branch 이름짓는 수고가 덜 든다는 더 소소한 장점도 있다). Branch 생성 기능은 아래와 같은 순서로 사용할 수 있다.

image

  1. Issue에 들어가서 좌측에 있는 create a branch 버튼을 누른다.

image

  1. Branch를 생성할 Source 브랜치를 고르고, 브랜치명을 확인/수정한다.

  2. Create Branch 버튼을 누르면 Branch 생성 완료!

Commit과 Issue 연결하기

Github는 Commit을 Branch와 연결짓는 기능도 제공한다. 아주 간단하게 Commit message에 #<Issue Number> 구문이 포함되면 remote에 올라 갈 때 자동으로 Issue에 해당 커밋을 참조하고 있다고 표시가 생겨난다.

image

이에 더해서 만약 Commit에 아래와 같은 키워드가 있는 경우 Issue를 자동으로 닫아줄 수도 있다!

close
closes
closed
fix
fixes
fixed
resolve
resolves
resolved

다만, Issue 닫기 기능은 해당 커밋이 main branch에 merge되었을 때만 동작한다. 또, 동시에 여러개의 Issue를 커밋 메시지에 언급하는 경우, 맨 앞의 하나만 연결되는 단점이 있다.

Github Issue 더 똑똑하게 사용하기
: Issue Template과 Tasklist

Issue Template 기능으로 템플릿 지정하기

Github에서는 Issue Template을 만들어두고, 이를 Issue 생성시에 자동으로 반영하는 기능도 지원한다! 사용 방법은 아래와 같다.

image

  1. 레포지토리에 .github/ISSUE_TEMPLATES/ 디렉토리를 만들고, 내부에 마크다운 파일을 하나 생성한다.
---
name: (Old) Bug Report
about: Create a report to help us improve
title: 'fix: '
labels: ''
assignees: ''
---

## 버그 설명

## **버그 재현법**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

...
  1. 위와 같은 양식으로 마크다운 파일을 작성한다. 상단부 ---로 구분된 영역은 템플릿의 메타데이터를 지정하는 부분이며, 템플릿의 이름, 간단한 설명, 디폴트 제목, 자동으로 달릴 라벨과 담당자를 미리 지정해 둘 수 있다. 그 아래의 영역은 마크다운 양식으로 자동으로 들어가 있을 내용을 작성하면, 해당 템플릿으로 이슈를 생성했을 때, 자동으로 해당 내용들이 들어가 있는 것을 확인할 수 있다.

image

  1. 이제 해당 템플릿을 main branch에 push한 후, 레포지토리 Issue Tab에 가서 Create Branch를 누르면...

image

  1. 위와 같이 생성한 Issue Template이 메타데이터에 지정한 제목과 설명으로 나타나는 것을 확인할 수 있다.

image

  1. Create Issue로 Issue를 생성해보면, 아까 지정한 양식이 그대로 적용되어 있는 것을 확인할 수 있다!

Tasklist로 Issue간 상태 참조하기

Issue를 사용하다 보면, Issue간의 관계가 생기거나, Issue간 hierarchy가 있어 이를 통합적으로 관리하고 싶을 때가 있다. 이럴 때는 Github Issue의 Tasklist 기능을 활용하면 좋다.

imageimage

우선, Github 내의 대부분의 마크다운 문서에서는 #를 통해 Issue의 링크를 만들 수 있다. 이렇게만 생성하면 단순하게 링크이지만...

image
image

위와 같이 Issue Link 앞에 Github 마크다운의 Todo 양식을 적용시키면 Issue에 Tasklist가 적용된다. Tasklist가 적용되면, 연결된 Issue 항목이 닫힐 경우 자동으로 앞의 Todo 체크박스가 체크 상태가 되고, 전체 Tasklist의 진척도가 Issue에 표시되게 된다!

단, 전반적으로 상태 업데이트가 Issue의 변화 이벤트에 의해서 촉발되기 때문에, 별도로 Todo를 체크하거나, 이미 닫힌 Issue를 빈 Todo Syntax에 달아서 신규 생성하는 경우 자동으로 업데이트 되지 않는 등 일부 단점이 존재한다.

Github Issue 더더 똑똑하게 사용하기
: Issue Form을 사용해보자

궁극의 편의기능, Issue Form

Github Issue 더더더 똑똑하게 사용하기(?)

💊 비타500

📌 프로젝트

🐾 개발 일지

🥑 그룹활동

🌴 멘토링
🥕 데일리 스크럼
🍒 데일리 개인 회고
🐥 주간 회고
👯 발표 자료
Clone this wiki locally