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

Triagebot(rustbot이라고도 함)은 rust-lang 조직에서 다양한 작업에 쓰이는 범용 봇으로, 주로 GitHub나 Zulip 댓글로 명령을 보내는 방식으로 사용됩니다. 다음 페이지에서 사용 가능한 기능을 설명합니다.

명령은 보통 @rustbot이라는 텍스트로 시작하는 댓글을 작성하여 내립니다. 사용 가능한 명령은 사용 중인 저장소에 따라 다릅니다. 각 저장소에는 triagebot.toml이 있으며, 여기에서 어떤 기능이 활성화되어 있는지 확인할 수 있습니다.

예를 들어 다음 댓글은:

@rustbot label A-diagnostics A-macros

GitHub UI에서 직접 그렇게 할 권한이 없는 사람이라도 GitHub 이슈나 풀 리퀘스트에 지정한 레이블을 설정합니다.

GitHub 명령

GitHub 이슈나 풀 리퀘스트에서 명령은 보통 댓글의 아무 곳에나 @rustbot을 쓰고 그 뒤에 명령을 작성하여 내립니다. @rustbot은 마크다운 코드 블록, 인라인 코드 스팬, HTML 블록, 인용 블록 안에 있는 명령은 무시합니다. 댓글 하나에 여러 개의 rustbot 명령을 입력할 수 있습니다.

Triagebot은 댓글 수정도 지원합니다. 명령의 텍스트를 수정하지 않으면 triagebot은 해당 수정을 무시합니다. 그러나 기존 명령을 수정하거나 새 명령을 추가하면 해당 명령이 처리됩니다.

Zulip 명령

Zulip에서는 triagebot 계정에 다이렉트 메시지를 보내거나, Zulip 스트림에서 @triagebot을 핑하고 명령을 지정하는 방식으로 명령을 내리며, 후자의 경우 명령은 해당 스트림 안에서 실행됩니다.

triagebot Zulip 명령에 대한 문서는 여기에서 찾을 수 있습니다.

설정

개별 GitHub 저장소는 기본 브랜치의 루트에 있는 triagebot.toml이라는 파일을 통해 triagebot 기능을 설정할 수 있습니다. 다음 페이지에서 각 기능에 필요한 문법을 설명합니다.

예를 들어 rust-lang/rust의 설정 파일은 https://github.com/rust-lang/rust/blob/HEAD/triagebot.toml에 있습니다.

새 저장소에 triagebot.toml을 처음 추가할 때는 봇이 동작할 수 있도록 권한을 활성화해야 합니다. 이는 rust-lang/team 데이터베이스에 PR을 올려 repos/rust-lang 디렉터리의 해당 저장소에 bots = ["rustbot"]를 추가하면 됩니다.

전역 설정

GitHub 조직은 조직 내 모든 저장소에 적용되는 전역 설정을 가질 수 있습니다. rust-lang 전역 설정은 https://github.com/rust-lang/triagebot/blob/master/rust-lang.triagebot.toml에 있습니다.

전역 설정의 설정 옵션은 일반 triagebot.toml 파일과 같지만, 각 설정 항목에 지정한 저장소에서 해당 기능을 비활성화하는 excluded-repos = ["rust-lang/foo"] 옵션을 포함할 수 있다는 점이 다릅니다.

자주 쓰는 명령 요약

다음은 rust-lang/rust에서 볼 수 있는 자주 쓰는 명령입니다.

명령설명문서
@rustbot claim이슈를 자신에게 배정합니다.이슈 배정
@rustbot release-assignment이슈에 대한 자신의 배정을 해제합니다.이슈 배정
@rustbot assign @octocat이슈를 특정 사용자에게 배정합니다.이슈 배정
@rustbot readyPR이 리뷰받을 준비가 되었음을 나타냅니다.단축 명령
@rustbot authorPR이 작성자의 조치를 기다리고 있음을 나타냅니다.단축 명령
@rustbot blockedPR이 무언가에 의해 막혀 있음을 나타냅니다.단축 명령
@rustbot label A-diagnostics A-macros이슈나 PR에 레이블 두 개를 추가합니다.레이블 지정
@rustbot label -P-high이슈나 PR에서 레이블을 제거합니다.레이블 지정
@rustbot ping windowsWindows 핑 그룹을 핑하는 댓글을 게시합니다.핑 보내기
@rustbot prioritize우선순위 지정 워킹 그룹에 우선순위 지정을 요청합니다.우선순위 지정
r? @octocatPR을 사용자에게 배정합니다.PR 할당
r? libs라이브러리 리뷰 그룹에서 무작위로 한 사람에게 할당합니다.PR 할당
r? rust-lang/cargocargo 팀에 속한 사람 중 한 명에게 무작위로 배정합니다.PR 할당

다음은 Zulip에서 자주 볼 수 있는 명령어입니다.

명령어설명문서
@triagebot read회의에서 참석자들이 문서를 다 읽을 때까지 기다립니다.Zulip 회의 관리
@triagebot end-topic회의에서 모든 참석자가 해당 주제에 대한 논의를 마쳤는지 확인합니다.Zulip 회의 관리
@triagebot end-meeting모든 참석자가 회의를 마칠 준비가 되었는지 확인합니다.Zulip 회의 관리

더 많은 Zulip 명령어는 여기에서 확인할 수 있습니다.

구현

triagebot의 소스 코드는 https://github.com/rust-lang/triagebot에서 확인할 수 있습니다. triagebot 확장에 관심이 있다면 해당 위치의 문서에서 시작 방법에 대한 안내를 얻을 수 있습니다.