개발 공부 일지/Git

[Git] Pull Request에 Template 자동 적용하기 (feat. 이슈 close)

dev-hpk 2025. 1. 16. 13:22

이전에 Create Issue Branch(Github Action)을 활용해 이슈 생성 시 feature bracnh 생성은 자동화했습니다.

 

이슈를 생성하고 작업을 할 때는 매우 편리하지만 PR(pull request)을 생성하고 Merge 할 때 2가지 불편함을 느꼈습니다.

1️⃣ PR(pull request)를 생성할 때마다 정해둔 형식에 맞게 PR 본문을 작성해야 함

2️⃣ PR(pull request)이 Merge 되어도 Issue가 Open 상태로 남아있어 직접 Close 해줘야 함

PR(pull request) 본문 형식
Merge 된 PR(pull request)
PR(pull request)이 Merge 되어도 Open 상태인 Issue

 

위 두 내용을 자동화할 수 있는 방법을 구글링 해보던 중 Github PR Template를 찾게 되었습니다.

PR Template은 왜 필요할까🤔

  • PR Template을 만들어 Repository에 추가하면 PR을 할 때 PR body에 template의 내용이 자동으로 추가됨
  • PR Template을 사용하면 PR의 내용을 표준화해서 일관성 있는 좋은 품질의 Pull Request를 유지할 수 있게 됨

위 두 내용만 봐도 PR Template를 사용하면 자동화를 통해 매번 PR 본문 형식을 작성하는 번거로움을 줄일 수 있겠네요.

 

저는 조금 더 욕심을 내서 PR이 Merge 되었을 때 해당 이슈도 Close 해주는 작업을 추가해보고 싶었습니다. 검색을 통해 확인해 보니 Create Issue Branch에서 했던 것처럼 workflow를 추가하는 방법이 있지만 정확한 적용 방법이 없네요..😭

 

여기서 포기할 수 없습니다❗

자동화가 너무 편리하니까요...😭😭😭

 

수 차례 검색을 통해 Pull Request에서 작성하는 메시지에서 issue에 연결이 지원되는 키워드를 찾았습니다.

 

Linking a pull request to an issue - GitHub Docs

You can link an issue to a pull request manually or using a supported keyword in the pull request description, that is, the summary text added by the author when they created the pull request. When you link a pull request to the issue the pull request addr

docs-internal.github.com

이제 PR Template에 적용 후 테스트 해보겠습니다✨

 

PR Template 적용

1️⃣ .github/ 디렉토리에 pull_request_template.md 파일 추가

2️⃣ pull_request_template.md 파일에 아래 내용 추가

## #️⃣연관된 이슈

> ex) #이슈번호, #이슈번호

close #'이슈번호'

## 📝작업 내용

> 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능)

### 스크린샷 (선택)

## 💬리뷰 요구사항(선택)

> 리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요
>
> ex) 메서드 XXX의 이름을 더 잘 짓고 싶은데 혹시 좋은 명칭이 있을까요?

PR 생성 후 template 적용 확인

PR Template 적용 화면

PR을 생성하니 pull_request_template.md에 작성해 둔 형식이 잘 적용되었네요👍

 

close #'이슈번호'에 이슈 번호를 지정하고 이슈가 Close 되는지 테스트해보겠습니다❗

이슈 Close 테스트

 

이슈 Close 테스트 결과

 

PR을 Merge 해도 이슈가 Open 상태로 남아있네요😭😭😭

 

검색을 통해 아래와 같은 방법들을 시도해 봤지만 모두 이슈를 Close하는데 실패했습니다.

  • close 키워드를 PR Template 최상단에서 사용
  • close 키워드 대신 closes, closed 키워드 사용

검색으로는 도저히 해결할 방법을 찾을 수 없어 Git Docs를 확인하던 중 아래 내용을 찾게 되었고 마지막으로 시도해 보기로 했습니다.

 

Changing the default branch - GitHub Enterprise Server 3.10 Docs

If you have more than one branch in your repository, you can configure any branch as the default branch.

docs-internal.github.com

Issue를 관리하는 키워드가 PR(pull request)이 repository의 Default branch를 대상으로 할 때만 해석된다고 하네요.

Default branch를 그럼 feature로 변경 후 테스트 해보겠습니다.

Default branch를 feature로 변경

 

13번 이슈 Close 테스트
PR Merge 결과 이슈 Close 성공

 

"Successfully merging a pull request may close this issue"라는 메시지와 함께 이슈가 Close 된 것을 확인했습니다🎉 🎉

 

 

PR Template 적용과 이슈 자동 종료 설정을 진행하면서 많은 시행착오를 겪었습니다😭😭😭😭

PR을 Merge 할 때 예상한 대로 이슈가 자동으로 닫히지 않아 많은 시간과 노력이 들어갔고, 자동화를 포기하고 수동으로 이슈를 닫는 것이 낫지 않나 하는 생각도 했습니다.

하지만 이번 경험을 통해 GitHub의 PR Template와 이슈 관련 키워드 설정에 대해 더 깊이 이해할 수 있었습니다.

 

앞으로 진행할 프로젝트에서는 더 빠르고 수월하게 설정을 적용할 수 있으니, 매번 정해둔 형식에 맞게 PR 본문을 작성하고 이슈를 Close하는 번거로움이 사라지겠네요✨