개요
GitHub에서 Pull request의 Labels 기능을 사용하여 Pull request를 관리합니다.

이번 블로그 포스트에서는 GitHub Actions중 하나인 PR Labels Checker를 사용하여 Pull request의 Labels를 검사하는 방법에 대해서 알아보겠습니다.
블로그 시리즈
이 블로그는 시리즈로 제작되었습니다. 다음 링크를 통해 다른 블로그 포스트도 확인해 보시기 바랍니다.
- [GitHub Actions] Pull request 제목 검사
- [GitHub Actions] Release notes 자동화
- [GitHub Actions] Pull request의 라벨 검사
PR Labels Checker
PR Labels Checker는 GitHub Actions중 하나로, Pull request의 Labels를 검사하는 기능을 제공하고 있습니다.
GitHub Actions 작성
PR Labels Checker를 사용하여 Pull request의 Labels를 검사하는 GitHub Actions를 작성해 보겠습니다. .github/workflows/pr-labels-checker.yml 파일을 만들고 다음과 같이 수정합니다.
name: PR Labels Checker
on:
push:
branches:
- main
pull_request:
types:
- opened
- reopened
- synchronize
- labeled
- unlabeled
jobs:
pr_labels_checker:
permissions:
pull-requests: write
checks: write
runs-on: ubuntu-latest
steps:
- uses: danielchabr/[email protected]
with:
hasSome: breaking change,feature,bug,style,refactor,test,chore,docs,ci,dependencies
githubToken: $
이 GitHub Actions는 Pull request가 생성되거나 Pull request의 Label을 추가, 해제할 때, 실행됩니다.
on:
push:
branches:
- main
pull_request:
types:
- opened
- reopened
- synchronize
- labeled
- unlabeled
PR Labels Checker를 사용하기 위해서는 Pull request와 checks에 대한 권한이 필요합니다.
jobs:
pr_labels_checker:
permissions:
pull-requests: write
checks: write
이제 PR Labels Checker를 사용하여 Pull request의 Label을 검사합니다. Label을 검사할 때는 다음과 같은 조건을 사용할 수 있습니다.
- hasSome: 콤마로 구분된 Label 리스트로, PR은 이 중 하나를 반드시 포함해야 합니다.
- hasAll: 콤마로 구분된 Label 리스트로, PR은 이 리스트 모두 포함해야 합니다.
- hasNone: 콤마로 구분된 Label 리스트로, PR은 이 리스트중 그 어떤 것도 포함해서는 안됩니다.
- hasNotAll: 콤마로 구분된 Label 리스트로, PR은 이 리스트 모두를 포함해서는 안됩니다.
이번 블로그 포스트에서는 hasSome 조건을 사용하였습니다.
hasSome: breaking change,feature,bug,style,refactor,test,chore,docs,ci,dependencies
조건에 포함된 Label들은 Release notes 자동화하기 위해 필요한 리스트입니다. 자세한 내용은 다음 링크를 참고하시기 바랍니다.
PR Labels Checker는 GitHub Actions에서 Pull request의 Label을 검사하기 위해 GitHub Token을 사용합니다. 따라서 다음과 같이 GITHUB_TOKEN을 설정해야 합니다.
githubToken: $
Release Drafter
저는 Release notes의 자동화를 위해 Release Drafter를 사용하고 있습니다. Release Drafter는 Pull request의 Labels를 사용하여 Release notes를 자동으로 작성합니다. 또한, Pull request의 제목을 보고 자동으로 Labels를 설정하는 기능도 가지고 있습니다.
그래서 Pull request의 Labels가 중요하며, Release Drafter가 자동으로 설정해 주지만, 이를 확실하게 하기 위해 PR Labels Checker를 사용하여 Pull request의 Labels를 다시 한번 검사하고 있습니다.
이를 위한 GitHub Actions와 다음과 같습니다.
name: Release Drafter
on:
push:
branches:
- main
pull_request:
types:
- opened
- reopened
- synchronize
permissions:
contents: read
jobs:
update_release_draft:
permissions:
contents: write
pull-requests: write
checks: write
runs-on: ubuntu-latest
steps:
- uses: release-drafter/release-drafter@v5
env:
GITHUB_TOKEN: $
- uses: danielchabr/[email protected]
with:
hasSome: breaking change,feature,bug,style,refactor,test,chore,docs,ci,dependencies
githubToken: $
Release Drafter를 사용하여 Pull request에 자동으로 Labels를 설정하고, 자동으로 설정된 Pull request의 Labels를 PR Labels Checker를 사용하여 다시 한번 검사하도록 했습니다.
Release Drafter에 관한 자세한 내용은 다음 링크를 참고하시기 바랍니다.
완료
이것으로 GitHub Actions의 PR Labels Checker를 사용하여 Pull request의 Labels를 검사하는 방법에 대해서 알아보았습니다.
Pull request를 Labels를 사용하여 관리하는 경우나, 저처럼 Release notes를 자동화하기 위해 Release Drafter를 사용하는 분들은 PR Labels Checker 도입을 고려해 보시기 바랍니다.
제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!
앱 홍보
Deku가 개발한 앱을 한번 사용해보세요.Deku가 개발한 앱은 Flutter로 개발되었습니다.관심있으신 분들은 앱을 다운로드하여 사용해 주시면 정말 감사하겠습니다.














![[심통]현장에서 바로 써먹는 리액트 with 타입스크립트 : 리액트와 스토리북으로 배우는 컴포넌트 주도 개발, 심통](https://img1c.coupangcdn.com/image/affiliate/banner/7cba8cb0601eebaf88a17a0c3cf65a63@2x.jpg)