리뷰 큐 추적
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파일을 수정하는 풀 리퀘스트를 보낼 필요가 없습니다.triagebot은triagebot.toml의users_on_vacation과 로테이션 모드를 모두 고려하며, 둘 중 어느 하나에서라도 휴가 중으로 표시되어 있으면 여러분에게 PR을 할당하지 않습니다.
- 이는 자신을 “휴가 중”으로 설정하는 방법의 대안으로,
- 팀 로테이션 모드(
on또는off로테이션) —foo팀에 대한 팀 로테이션 모드를off로 설정하면 누군가r? foo를 사용할 때triagebot은 여러분을 고려하지 않습니다.- 이를 통해 어떤 팀의 리뷰를 맡을 수 있을지 선택적으로 정할 수 있습니다. 이 설정은
assign.owners와도 상호작용합니다.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를 참고하십시오.