본문 바로가기
🧑🏻‍💻 Develop/GitHub

Pull Requests 에 자동으로 Labels 적용하기 (2) - Pull Request Labeler

by dev-jaesoon 2022. 9. 26.

Pull Request Labeler 적용

이번에는 Pull Request Labeler plugins을 사용하여, 변경된 파일 또는 디렉터리를 확인하고 자동으로 label 이 추가되도록 할 것이다. 

자동으로 labeling 하기 위한 GitHub Actions Plugin

  • .github/workflows/labeler.yml : Pull Request Labeler 가 실행될 조건에 대한 workflows를 작성
  • .github/labeler.yml : 지난번에 사용한 설정 파일에 이어서 작성해도 무방

실행 조건 정의

.github/workflows/labeler.yml

pull request 가 opened 또는 reopened 되었을 때, 그리고 PR에 새로운 Commit 이 Push 되었을 때 실행되도록 하기 위해 아래와 같이 코드를 작성하였다. 지난번과 다른 점이 있다면 types를 여러 열로 작성한 점인데, YAML 문법 상 같은 의미이기 때문에 어느 쪽도 크게 상관없다.

name: Pull Request Labeler
on:
  pull_request:
    types:
      - opened
      - reopened
      - synchronize

그리고 jobs를 아래와 같이 작성하면 되는데, Auto Labeler와 크게 차이가 없다.

jobs:
  labeler:
    runs-on: ubuntu-latest
    steps:
      - name: Check Labels
        id: labeler
        uses: actions/labeler@v4
        with:
          repo-token: "${{ secrets.GITHUB_TOKEN }}"

.github/labeler.yml

이곳에 파일 형식 또는 디렉터리에 따라서 어떤 label을 자동으로 추가해줄 것인지 정의해주게 된다. 크게 예를 들어

  1. Documents 가 작성되었을 때
  2. 테스트 코드가 작성되었을 때
  3. 패키지 파일이 변경되었을 때

로 상황을 가정하여 아래와 같이 작성해 보았다. 지난번과 같이 Key 에는 label 이 Values 에는 식별할 path 가 들어간다.

":pencil2: docs":
  - "**/*.md"

":test_tube: test-code":
  - "spec/**/*.spec.php"
  - "spec/**/*.spec.js"

":package: app:package":
  - package.json
  - package-lock.json
  - composer.json

지난번에 사용했던 Auto Labeler plugins 은 labeler 설정 파일을 기준 브랜치에 접근하여 확인하는 방식이었던 것과는 다르게, 바로 설정 파일을 확인해서 문제없이 바로 Actions 가 실행되었다.

 

실행 결과 확인

PR을 생성하고 일정시간을 기다리면 아래와 같이 자동으로 github-actions(bot) 에 의해labeling 이 되는 것을 확인할 수 있다.

총평

지난번에 사용해본 Auto labeler 보다 Pull Request Labeler를 사용하는 것을 좀 더 편리하게 사용가능하다고 느꼈다. 그 외에도 다양한 종류의 auto-labeling plugins 가 있기 때문에, 여러가지를 사용해보고 자신의 프로젝트에 알맞는 것을 사용하는 것을 추천한다.

 

 

댓글