Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

리뷰 큐 추적

Triagebot은 rust-lang/rust 저장소에서 리뷰어의 작업량을 더 정교하게 추적하는 기능을 지원합니다. 이는 각 리뷰어에게 “관련” 풀 리퀘스트가 몇 개 할당되어 있는지 추적하며, 리뷰어가 이러한 PR의 최대 처리 용량을 설정할 수 있게 해 주고, 자동으로 할당받을지 여부도 설정할 수 있게 해 줍니다.

이 페이지는 리뷰 큐가 어떻게 동작하는지, 그리고 리뷰 큐를 설정하고 확인하기 위해 Zulip에서 triagebot과 어떻게 상호작용할 수 있는지를 설명합니다.

설정

저장소에 대해 리뷰 큐 추적을 활성화하려면, 해당 저장소의 triagebot.toml[pr-tracking] 테이블을 포함시키십시오.

PR에 리뷰어를 할당할 때 리뷰 큐를 고려하도록 하려면, triagebot.toml[assign.review_prefs] 테이블을 추가하십시오.

이 기능은 현재 rust-lang/rust 저장소에서만 동작한다는 점에 유의하십시오(triagebot에 하드코딩되어 있습니다). 더 많은 저장소에 대해 이를 활성화하려면 추가적인 설계 및 구현 작업이 필요합니다.

리뷰 큐 설계

리뷰 큐는 특정 시점에 각 리뷰어에게 몇 개의 “관련” rust-lang/rust PR이 할당되어 있는지를 기억합니다. 현재, PR을 “관련” 있다고 판단하는 휴리스틱은 다음과 같이 동작합니다.

  • PR이 블록되어 있지 않아야 합니다(S-blocked 또는 S-inactive 라벨이 없어야 합니다).
  • 해당 PR은 롤업이 아니어야 합니다.
  • 해당 PR은 리뷰어를 기다리는 상태여야 합니다(즉, S-waiting-on-review 레이블이 있어야 합니다).
  • PR이 PR 작성자가 아닌 다른 사람에게 할당되어 있어야 합니다.
  • PR이 열려 있어야 하며 드래프트가 아니어야 합니다.

PR이 이 모든 검사를 통과하고 리뷰어 R에게 할당되어 있다면, 해당 PR은 R의 리뷰 큐에 있는 것으로 간주됩니다.

자세한 내용은 triagebot의 waits_for_a_review 함수 구현을 참고하십시오.

리뷰 설정

리뷰어는 PR을 누구에게 할당할지 결정할 때 고려되는 리뷰 설정을 구성할 수 있습니다.

  • 리뷰 큐 용량(C) — 여러분의 리뷰 큐에 있는 PR 수가 C에 도달했거나 이를 초과하면, triagebot은 새로운 풀 리퀘스트를 여러분에게 할당하지 않습니다.
  • 로테이션 모드(on 또는 off 로테이션) — 로테이션 모드를 off로 설정하면, triagebot은 새로운 풀 리퀘스트를 자신에게 할당하지 않습니다.
    • 이는 triagebot.toml 파일을 수정하기 위한 풀 리퀘스트를 보낼 필요가 없는, “휴가 중”으로 설정하는 것에 대한 대안입니다. triagebottriagebot.tomlusers_on_vacation과 로테이션 모드를 모두 고려합니다. 둘 중 하나에서라도 휴가 중으로 표시되어 있다면, PR을 자신에게 할당하지 않습니다.
  • 팀 로테이션 모드(on 또는 off 로테이션) — 팀 foo에 대한 팀 로테이션 모드를 off로 설정하면, 누군가 r? foo를 사용할 때 triagebot은 자신을 고려하지 않습니다.
    • 이는 어떤 팀에 대해 리뷰 가능 상태로 있을지를 선택적으로 결정하는 데 사용할 수 있습니다. 이는 assign.owners와도 상호작용하는데, 이는 특정 PR이 수정하는 파일을 기준으로 triagebot이 팀 구성원에게 PR을 자동으로 할당하도록 설정하는 데 사용될 수 있습니다.

리뷰 설정은 애드혹 그룹이나 팀을 기준으로 한 할당에만 영향을 미친다는 점에 유의하십시오. 누군가가 여러분의 리뷰를 직접 요청하는 경우(r? <user>), triagebot은 현재로서는 항상 여러분을 할당합니다. 만약 여러분이 로테이션에서 제외되어 있거나 리뷰 용량이 최대치에 도달한 상태라면, triagebot은 여러분이 직접 할당된 PR에 댓글을 남겨 PR 작성자에게 여러분이 제때 리뷰하지 못할 수도 있음을 알립니다.

사용법

리뷰 큐를 확인하고 리뷰 설정을 구성하려면, triagebot다이렉트 메시지 명령을 보내십시오:

  • work show: 여러분의 리뷰 큐(rust-lang/rust 저장소 내)의 내용과 리뷰 설정을 보여줍니다.
  • work set-pr-limit <number>|unlimited: 리뷰 용량을 <number>로 설정하거나 용량 제한을 제거합니다 (unlimited).
  • work set-rotation-mode off|on: 로테이션 모드를 on 또는 off로 설정합니다.
  • work set-team-rotation-mode <team> off|on: 주어진 <team>을 통한 로테이션 모드를 on 또는 off로 설정합니다.

구현

src/handlers/pr_tracking.rs를 참고하십시오.