GitHub Labels 이란?
GitHub Label 은 Pull Requests (이하 PR) 또는 Issues 에서 카테고리를 분류하기 위해 사용된다. GitHub 에서도 이미 기본적으로 9개의 Labels 를 제공하고 있다.
팀 프로젝트를 하고 있다면 여러 명의 팀원이 각자의 작업 내용을 여러 개의 PR 을 만들어 병합할텐데, 이 때 Labels 을 사용한다면 보다 효율적으로 작업 내용(PR)들을 관리할 수 있다.
Auto Labeler 적용
GitHub actions 에 Auto Labeler plugins 을 적용하여 사용할 것이다. 그 중에서도 Auto Labeler 를 사용하여 PR 의 Title 이나 Description 에 특정 내용이 추가 되었을 때 GitHub actions 가 작동하도록 할 것이다. 먼저 일반적인 github actions 과 똑같이 YAML 파일을 생성해준다. (기본적인 사용법은 Document 에 모두 작성되어 있다.)
- .github/workflows/labeler.yml : Auto Labeler 가 실행될 조건에 대한 workflows 를 작성
- .github/labeler.yml : 자동으로 labeling 이 될 기준에 대하여 작성
실행 조건 정의
.github/workflows/labeler.yml
릴리즈를 위해 main 브랜치에 대한 PR가 opened 또는 reopened 되었을 때, 자동으로 라벨링되도록 하기 위해 아래와 같이 작성한다.
name: Auto Labeler
on:
pull_request:
types: [opened, reopened]
branches:
- main
그리고 jobs 를 아래와 같이 작성하여 Auto Labeler 를 설정해준다. 이때 환경 변수인 GITHUB_TOKEN 은 자동으로 생성되기 때문에 별도 설정은 불필요하다.
jobs:
labeler:
runs-on: ubuntu-latest
steps:
- name: Check Labels
id: labeler
uses: jimschubert/labeler-action@v2
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
.github/labeler.yml
크게 live release PR 와 Refactoring PR 2가지에 대해서 Auto Labeler 가 적용되도록 하려고 한다. 아래와 같이 작성하면 되는데, comment 는 labeling 시 자동으로 작성될 문구, labels 는 특정 문구가 Title 이나 Description 에 있을 경우 자동으로 적용될 Label 을 정의한 것으로 Key 가 적용될 labels, Values 가 식별할 문구가 된다.
comment: |
🏷 I have applied any labels matching special text in your title and description.
labels:
"🌏 live":
- '\blive release\b'
"🛠 refactoring":
- '\bRefactoring\b'
여러가지를 테스트 진행해보았는데, 대/소문자 구분을 하는 정규표현식(/i)이 적용이 안 되었기 때문에, 필요하다면 경우의 수 별로 따로 적어줄 필요가 있을 듯 하다. 또한, 해당 파일이 기준 브랜치 (main 또는 master) 에 적용되지 않으면, 제대로 작동하지 않는 문제가 있었다.
실행 결과 확인
PR을 생성하고 일정시간을 기다리면 아래와 같이 자동으로 github-actions(bot) 에 의해 labeling 이 되는 것을 확인할 수 있다. 그리고 각 label 을 클릭하여 해당 label 이 붙은 PR 만 모아 검색 결과를 확인할 수도 있다.
이번에 사용해본 Auto labeler 는 아쉬운 부분들이 있었기 때문에, 그 다음에는 이어서는 PR의 변경 내용을 확인하고, 그에 따라 자동으로 labeling 해주는 Plugin 을 사용해보겠다.
'🧑🏻💻 Develop > GitHub' 카테고리의 다른 글
Pull Requests 에 자동으로 Labels 적용하기 (2) - Pull Request Labeler (0) | 2022.09.26 |
---|
댓글