ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • github reviewers 자동으로 달아주기
    기타 2024. 2. 22. 20:59

    문제 상황

    회사에서는 현재 pr을 올리면 슬랙 깃헙봇을 활용하여 자동으로 노티를 주고 있습니다.

    이에 따라 알림을 받는사람은 reviewer로 지정된 사람들과, asignee입니다.

    팀에 인원이 늘어남에 따라 일일이 reviewer를 등록하는것이 번거롭게 되었습니다.

     

    step1

    github에는 CODEOWNERS를 통해 코드 소유자 정보를 나타낼 수 있습니다.

    (docs 링크)

    팀원이 2명이고(A,B), 모든 파일에 대해 수정사항이 일어났을 때 자동으로 reviewer에 포함되게 하고 싶다면, 아래와 같이 나타낼 수 있습니다.

    * @A @B
    

     

    이렇게 작성할 경우 팀에서 다루는 모든 레포에 CODEOWNERS를 만들고 위와 같은 설정을 해주어야 되는데요, 만약에 팀원이 새로 추가가 되거나 변경이 일어나게 된다면 모든 레포에서 CODEOWNERS를 수정해주어야하는 문제가 남아있습니다.

    step2

    github에는 team을 설정할 수 있습니다.

    organization의 team을 통해 팀원을 관리한다면 모든 레포에서 인원을 수정하지 않아도 될것 같습니다.

    test-organization하위에 test-team이라는 팀을 만들어 준 다음 하위로 A,B인원을 넣어줍니다.

    그렇다면 CODEOWNERS를 아래와 같이 수정하면 됩니다.

    * @test-organization/test-team
    

    이렇게 한다면 team을 통해서 팀원을 관리하면 되기 때문에 팀원이 변경된다고해서 모든 레포의 CODEOWNERS를 수정하지 않아도 됩니다.

    test-team의 인원만 변경하면 되기 때문입니다.

    하지만 하나의 문제가 있는데요, github slackbot의 경우 test-team에 어떤 인원이 있는지 알지 못합니다.

    때문에 리뷰어들이 슬랙 노티를 받지 못한다는 문제가 남아있습니다.

     

    step3

    test-team의 설정에 들어가봅니다.

    경로는 test-organization → teams → test-team → settings 입니다.

    들어가게되면 Code review탭이 있는데요, 클릭해줍니다.

    그러면 아래와 같은 화면을 볼 수 있습니다.

     

    여기서 꼭 필요한 설정만 살펴보자면 아래와 같습니다.

    • Enable auto assignment
      • 해당 옵션을 체크하게 된다면 아래의 체크박스들이 나타나게 되는데요, 해당 설정이 자동으로 reviewers를 등록할 수 있게 해줍니다.
    • How many team members should be assigned to review?
      • 자동으로 reviewers에 등록될 사람의 수를 나타냅니다.
      • 저희팀의 경우 모든 인원이 reviewers에 등록되어야하므로 4를 선택했습니다.
    • routing algorithm
      • reviewers에 등록될 사람들을 정할 때의 알고리즘을 선택할 수 있습니다.
      • 저의 경우 모든 팀원이 reivewers에 등록되기 때문에 큰 의미는 없습니다.
    • Team review request
      • 팀이 reviewer로 지정되게 된다면 team이 아닌 개인으로 지정되게 됩니다.
      • 해당 설정을 통해서 @test-organization/test-team 형태로 CODEOWNERS에 설정하더라도, 자동으로 팀 멤버들로 바뀌어 pr에 등록이 됩니다. (@test-team이 아닌 @A @B의 형태로 reviewers에 등록이 됩니다.)

    추가 설정

    reviewers를 자동으로 설정하는 핵심 내용들은 위에 설명을 했는데요, 추가로 설정해야하는것들이 있습니다.

    CODEOWNERS를 추가하는 레포에 들어갑니다.

    settings → collaborators and teams에 들어가 CODEOWNERS에 해당하는 팀을 manage access에 추가해두어야 합니다.

    이제 team을 통해 팀원들을 한번에 관리할 수있고, pr을 만들었을때 멤버들에게 슬랙으로 노티가 가게 됩니다!

    CODEOWNERS를 통해 poly-repo뿐만 아니라 mono-repo환경에서도 app 별로 자동으로 reviewers를 설정하고 있는데요 reivewers를 일일이 달아주기 귀찮았던 분들이라면 편하게 관리할 수 있을것이라 생각합니다.

    댓글

Designed by Tistory.