PR에 라벨, 이슈, 담당자 자동으로 등록

PR의 설정들을 활용하면 개발 및 협업 프로세스를 향상시킬 수 있다. 라벨, 이슈, 담당자를 등록함으로써 변경사항을 쉽게 추적할 수 있고, 누가 어떤 작업을 담당하고 있는지 확인할 수 있다.

하지만 PR을 설정하는 과정은 굉장히 번거로운 작업이다. 따라서 자동화된 프로세스를 통해 각 PR에 알맞은 설정 정보를 등록함으로써 개발자가 실제 개발 작업에 집중할 수 있도록 만들 것이다.

Untitled

PR 제목 검사하기

PR 제목은 해당 변경사항에 대한 간략한 설명을 제공한다. 다음은 우리 프로젝트에서 사용하는 브랜치 네이밍 규칙이다.

<aside> 🌿 브랜치명 (1)/(2)/(3)

우리 프로젝트에서는 브랜치명을 바탕으로 PR 제목을 생성한다. 거의 유사하지만

는 점에서 차이가 있다.

PR 제목에 패턴이 존재하므로 PR이 유효한 제목을 갖고 있는지 검사하는 작업을 작성해보자. action-pr-title이라는 외부 액션을 이용하여 해당 정규식을 통과하는 PR만 액션에 통과하도록 설정했다.

check-title:
  name: Check PR Title
  runs-on: ubuntu-latest

  steps:
    - name: Check PR title
      uses: deepakputhraya/action-pr-title@master
      with:
        regex: '((Be|Fe|Devops|Be,fe|Fe,be)\\/(feature|bugfix|refactor)(,(feature|bugfix|refactor))*\\/#[\\d]+( #[\\d]+)*.+|release v[\\d]+\\.[\\d]+\\.[\\d]+)'
        github_token: ${{ secrets.ADD_TO_PROJECT_PAT }}

라벨 등록하기

이번엔 pr-labeler 액션을 이용하여 PR에 라벨을 붙여줄 것이다. 해당 액션은 브랜치명을 바탕으로 라벨을 붙인다. 라벨을 커스텀하기 위해서는 먼저 설정 파일을 작성해줘야 한다.

feature: "*feature*"
bug: "*bugfix*"
refactor: "*refactor*"
release: "release*"
BE: ["Be/*", "Fe,be/*", "Be,fe/*"]
FE: ["Fe/*", "Fe,be/*", "Be,fe/*"]
DevOps: "Devops/*"

위 파일은 우리 프로젝트에서 활용하는 라벨들이다. 라벨명: 정규식 형태로, 정규식을 만족한다면 라벨을 붙여준다.