[GitHub] github action으로 reviewer 자동 할당하기
본문 내부에 Draft Pull Request 관련 내용이 있습니다. 아래 Post를 참조하시기 바랍니다.
[GitHub] Draft Pull Request
Draft Pull Request GitHub에서는 Draft Pull Request라는 기능을 제공합니다. 일반적인 개발 flow는 아래와 같습니다. Branch 생성(feature branch)->code 작성 및 수정->PR open->Reviewer...
GitHub action을 이용한 reviewer 자동 할당
만약 개발 진행 시 reviewer가 정해져 있는 상황이라면, PR(pull request) open후 매번 reviewer를 등록하는 것은 매우 귀찮은 일입니다.
이에 PR 관련 event 발생 시(일반적으로 open할 때 trigger합니다), 자동으로 reviewer를 등록해주는 auto-assign-action이라는 action을 이용하면 좀 더 편하게 작업을 진행할 수 있습니다.
auto-assign-action
auto-assign-action은 PR 요청이 열릴 때 PR에 reviewer를 추가하는 action입니다.
사용 방법은 아래와 같습니다.
-
.github/workflows folder에 아래의 action yml file을 추가해줍니다. File 이름은 상관 없습니다.
name: 'Auto Assign Reviewer' on: pull_request: types: [opened, ready_for_review] jobs: add-reviews: runs-on: ubuntu-latest steps: - uses: kentaro-m/auto-assign-action@v1.2.1 with: configuration-path: '.github/some_name_for_configs.yml' # Only needed if you use something other than .github/auto_assign.yml
- ready_for_review는 Draft Pull Request가 일반 Pull Request로 변경되었을 때의 activity입니다. 저의 경우 draft pull request를 사용할 일이 없어 ‘opened’와 ‘reopened’ type을 걸어놨습니다.
아래 draft pull request 관련 post 참조하시기 바랍니다. - configuration-path는 아래 2번에 있는 yml file name이 auto_assign.yml이 아닌 경우에 셋팅하며, auto_assign.yml인 경우에는 설정할 필요 없습니다.
- ready_for_review는 Draft Pull Request가 일반 Pull Request로 변경되었을 때의 activity입니다. 저의 경우 draft pull request를 사용할 일이 없어 ‘opened’와 ‘reopened’ type을 걸어놨습니다.
-
.github folder에 아래의 auto-assign.yml file을 만듭니다.
# auto-assign.yml # Set to true to add reviewers to pull requests addReviewers: [true/false] # Set to true to add assignees to pull requests addAssignees: [true/false/author] # A list of reviewers to be added to pull requests (GitHub user name) reviewers: - reviewerA - reviewerB - reviewerC # A number of reviewers added to the pull request # Set 0 to add all the reviewers (default: 0) numberOfReviewers: 0 # A list of assignees, overrides reviewers if set # assignees: # - assigneeA # A number of assignees to add to the pull request # Set to 0 to add all of the assignees. # Uses numberOfReviewers if unset. # numberOfAssignees: 2 # A list of keywords to be skipped the process that add reviewers if pull requests include it # skipKeywords: # - wip
- addReviewers나 addAssignees는 원하는 값(true, false, …)를 골라주면 됩니다. 대괄호(“[”, “]”)는 삭제하시기 바랍니다.
- reviewers는 GitHub user name을 입력해줍니다.
- numberOfReviewers가 0인 경우 reviewers에 등록한 모든 유저가 reviewer로 등록됩니다. 당연한 얘기지만 본인은 제외됩니다.
- addAssignees에서 ‘author’를 선택하면 PR을 open한 user가 assignee로 할당됩니다.
Multiple Reviewers list
Reviewer group이 여러 개라면 아래처럼 auto-assign.yml을 변경할 수 있습니다.
# Set to true to add reviewers to pull requests
addReviewers: true
# Set to true to add assignees to pull requests
addAssignees: false
# A number of reviewers added to the pull request
# Set 0 to add all the reviewers (default: 0)
numberOfReviewers: 1
# A number of assignees to add to the pull request
# Set to 0 to add all of the assignees.
# Uses numberOfReviewers if unset.
# numberOfAssignees: 2
# Set to true to add reviewers from different groups to pull requests
useReviewGroups: true
# A list of reviewers, split into different groups, to be added to pull requests (GitHub user name)
reviewGroups:
groupA:
- reviewerA
- reviewerB
- reviewerC
groupB:
- reviewerD
- reviewerE
- reviewerF
# Set to true to add assignees from different groups to pull requests
useAssigneeGroups: false
# A list of assignees, split into different froups, to be added to pull requests (GitHub user name)
# assigneeGroups:
# groupA:
# - assigneeA
# - assigneeB
# - assigneeC
# groupB:
# - assigneeD
# - assigneeE
# - assigneeF
# A list of keywords to be skipped the process that add reviewers if pull requests include it
# skipKeywords:
# - wip
Leave a comment