본문 바로가기
[개발] Programming/Tools

Github auto-assign: Pull Request 시 특정 assigner 지정

by eatyourKimchi 2020. 7. 19.


 

 깃에 PR(Pull Request)할 때 자동으로 검토자를(assigner) 설정할 수 있는 방법을 다루어보겠습니다. 자주 커밋을 하는 경우 또는 동일한 사람이 PR 승인자로 있는 경우 유용하게 사용할 수 있는 기능입니다. 참고로 깃허브 자체적으로 설정하는 것과는 다릅니다. 깃허브에서는 브랜치 오너가 들어가게는 설정할 수 있지만 특정 사람을 계속 지정할 수 있는 설정은 없습니다.

 

auto assign 지정 순서는 아래와 같습니다. 

 

1. auto-assign 플러그인 설치

2. .github/auto_assign.yml 파일 추가 + 작성

3. 주의사항!!

 

 

01 auto-assign 플러그인 설치

 

아래 링크로 접속하여 플러그인 설치를 누르면 간단하게 설치된다.

https://github.com/apps/auto-assign

 

설치되면 해당 파일에 대한 권한도 부여된다.

 

 

02 .github/auto_assign.yml 파일 추가 

 

해당 기능을 사용할 레파지토리를 선택한 뒤 새로운 파일 생성

'레파지토리'/.github/auto_assign.yml 

 

만약 다른 경로에 파일을 생성하면 실행되지 않는다.

이때는 따로 해당 파일을 실행시켜줄 수 있는 파일을 추가하여 경로를 지정해줘야 한다.

 

파일 내용은 아래와 같이 입력한다.

# Set to true to add reviewers to pull requests
addReviewers: true

# Set to true to add assignees to pull requests
addAssignees: true

# A list of reviewers to be added to pull requests (GitHub user name)
reviewers: 
  - reviewerA
  - reviewerB
  - reviewerC

# A list of keywords to be skipped the process that add reviewers if pull requests include it 
skipKeywords:
  - wip

# A number of reviewers added to the pull request
# Set 0 to add all the reviewers (default: 0)
numberOfReviewers: 0

 

예상할 수 있듯이 reviewer에 리뷰어의 깃 아이디를 기재하면 된다.

해당 기능을 사용하는 이유는 깃허브 자체에서도 assigner를 지정할 수 있지만,

그렇게 하면 소스 작성자가 자동으로 들어가기 때문에 특정인을 지정할 수 없다.

결국 플러그인으로 해당 기능을 구현해줘야 한다.

 

만약 assigner를 그룹 형태로 관리하고 싶다면 아래와 같이 구성할 수도 있다.

# Set to true to add reviewers to pull requests (required)
addReviewers: true

# Set to true to add assignees to pull requests
addAssignees: false

# A list of reviewers to be added to pull requests (GitHub user name) (required)
reviewers:
  - reviewerA
  - reviewerB
  - reviewerC

# A number of reviewers added to the pull request (required)
# 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

# 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

 

주석에 설명이 자세히 있어서 따로 설명 드리지는 않겠습니다 :)

 

 

03 Auto Assigner 주의사항!! 

 

주의사항입니다.

 

첫번째로 파일명은 반드시 위 이름으로 하셔야 인식됩니다. 만약 다른 경로에 다른 이름으로 할 경우 액션 파일을 추가해서 경로를 직접 잡아줘야 합니다.

 

두번째로는 깃허브에 계정 말고 사용자 명을 추가로 만들었다면 사용자 명으로 입력해야 인식됩니다. 화면 우측 상단에 프로필 아이콘을 클릭하면 확인할 수 있습니다.

 

마지막으로 reviewer는 Pull Request를 작성할 때는 보이지 않습니다. 작성 후 request를 올리면 그때 뜹니다. 저는 이것도 모르고 왜 PR 작성할 때 안뜨는지 이해가 안되서 시간을 무지 낭비했습니다.

 

그리고 auto_assigner.yml 외에도 CODEOWNER 파일을 추가해서 지정하는 방법도 있지만, 레파지토리를 관리하는 관점에서는 위에서 소개한 방식으로 하는 것이 적절해 보입니다.

 

그럼 모두 즐거운 개발 되세요~

 

 

댓글