본문 바로가기
프로젝트

[Project] Github PR->merge 시 issue 자동 close 방법

by jaee_ 2021. 11. 13.

프로젝트를 진행하며, 저희는 기능 task를 Github issue로 관리하기로 하였습니다. 

 

개발하고자 하는 기능들을 issue로 등록해놓고 해당 issue 기능 개발을 마치고 develop 브랜치에 merge가 되면 close를 하는 형태로 진행예정입니다. 

 

오늘은 pull request 시에 issue를 연결하고 pull request가 병합될 때 issue를 자동으로 닫을 수 있는 방법에 대해서 알아보겠습니다. 


Issue 생성하기

Github issue의 생성방법은 아주 간단합니다. Github Repository 에 들어가면 Code 카테고리 옆 Issues 라는 카테고리가 존재합니다. 여기로 들어간 뒤 New issue를 클릭하여 생성하면 됩니다. 

Issue 생성방법 (1)
issue 생성방법 (2)

이렇게 issue를 생성하고 나면 아래의 사진과 같이 issue가 생성된 것을 볼 수 있습니다. 빨간 박스로 칠해놓은 것이 등록된 issue의 번호라고 보시면 됩니다. 우리는 이 번호를 Pull Request 시 issue와 연결할 때 사용할 것입니다. 


issue 생성방법 끝


키워드를 사용하여 Pull Request 를 issue에 연결하기

Pull Request 또는 Pull Request 시 작성하는 메세지에서 지원되는 키워드를 사용하여 issue에 연결할 수 있습니다. 종료 키워드는 다음과 같습니다. 

  • close
  • closes
  • closed
  • fix
  • fixes
  • fixed
  • resolve
  • resolves
  • resolved

따로 생성한 브랜치를 master 브랜치로 PR 시키는 화면입니다. #을 입력하면 연결할 수 있는 issue 목록들이 나옵니다. #이슈번호 앞에 위에 언급했던 종료 키워드 중 하나인 close 를 사용해보겠습니다. 

선택을 한 후 Create pull request 를 눌러 등록하면 PR 등록 완료! 

이제 Merge pull request 를 눌러 자동으로 close가 되는지 테스트 해보겠습니다. 

 

close 된 issue 

Merge PR을 하고 나서 issue 로 돌아와보니 이전에 등록햇던 Test issue (#8)이 Closed 되어 Closed 카테고리에 위치해있는 것을 확인할 수 있었습니다. 


수동 또는 추가로 issue 등록하기

 

 

만약 PR 시 메세지에 issue 번호를 작성을 못했다면! 만들어진 PR 화면에서 Linked issue로 수동 등록도 가능합니다. 여러개도 가능합니다. 이렇게 연결 후 merge PR을 해보겠습니다.

이렇게 연결을 해도 merge하니 자동 closed 되는 것을 확인할 수 있었습니다. 수동으로 연결 시에는 종료키워드를 사용하지 않아도 알아서 종료되더군요 ,,ㅎㅎㅎ


Pull Request 메세지에 종료키워드 작성하지 않고, issue 만 연결해보기

그렇다면 여기서 궁금해지는게,, PR시 PR메세지에 종료 키워드를 사용하지 않아도 #이슈번호만 작성해도 연결이 되어서 merge시에 자동 종료가 되나,,,? 궁금해졌습니다. 

 

한 번 해보겠습니다. 

새로운 issue를 생성하고

PR

PR을 해보도록 하겠습니다. 

정상적으로 merge가 되었습니다.

 

아직 open되어있는 issue

issue를 확인해보니,, close가 되지 않았습니다..!! PR 메세지로 종료를 할 경우 종료키워드가 반드시 있어야 하는군요,,ㅎㅎㅎ


정리해봅시다.

  • PR(pull Request) 시 PR 메세지에 종료 키워드와 함께 #issue번호 를 작성하면 해당 PR이 merge 되었을 때 연결된 issue는 자동으로 종료됩니다.
  • PR 메세지에 종료 키워드를 작성하지 않고 issue번호만 작성하면 merge 가 되어도 연결된 issue는 종료되지 않습니다. 
  • 만약 PR 메세지로 issue 연결을 하지 못하였을 땐 수동으로 등록도 가능합니다.
  • 수동으로 등록된 PR과 연결된 issue는 merge 시 자동으로 close 됩니다. 

참고한 사이트

https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue

 

댓글