GitHub PR에서 Control Center와 대화
이 가이드에서는 GitHub를 벗어나지 않고 Control Center로 작업하는 방법을 설명합니다. PR 페이지에서 AI 리뷰를 요청하고, 댓글로 봇에게 질문하고, 봇의 리뷰 스레드에서 대화를 이어 갈 수 있습니다.
봇은 여러분 서버의 GitHub App입니다 — 이미 사람들을 로그인시키고 백그라운드 작업을 실행하는 바로 그 앱입니다. 새로 등록하는 것은 없고, 인터넷에서 접근 가능해야 하는 것도 없습니다. 서버는 폴링으로 GitHub에서 오간 말을 알아내므로, NAT 뒤의 노트북도 공개 배포와 똑같이 동작합니다.
사전 준비
섹션 제목: “사전 준비”- 서버에 GitHub App이 등록 및 설치되어 있어야 하며, Pull requests: read and write (댓글, 스레드, 리액션용)와 Issues: read(댓글 검색용) 권한이 필요합니다. 둘 다 해당 가이드의 권한 목록에 이미 있습니다
- 저장소가 Control Center의 워크스페이스에 연결되어 있어야 합니다
- 웹훅 URL도, 터널도, 콜백도 필요 없습니다 — 네트워크 쪽에서 구성할 것은 아무것도 없습니다
봇의 이름 찾기
섹션 제목: “봇의 이름 찾기”봇의 로그인은 <appslug>[bot]이며, 여기서 appslug는 앱을 등록할 때 지정한
이름입니다.
- 설정 → 서버 → 싱글 사인온으로 이동해 프로바이더 앱 카드까지 스크롤합니다
- GitHub 블록을 열고 테스트를 클릭합니다
- 봇 로그인이 채워지면 복사합니다. 빈 힌트가 그대로 표시된다면 로그인은
항상
<appslug>[bot]이므로, 그 값을 직접 입력하거나 짧은 형식인@appslug를 입력합니다
GitHub는 @ 자동 완성에서 앱 계정을 제공하지 않으므로 로그인을 직접 입력해야
합니다 — 설정 카드가 클릭 한 번으로 복사할 수 있게 해 주는 이유입니다. [bot]
접미사는 선택 사항이라 @myapp과 @myapp[bot] 모두 봇을 가리킵니다.
GitHub에서 리뷰 요청하기
섹션 제목: “GitHub에서 리뷰 요청하기”두 가지 방법이 있으며, 둘 다 AI에게 물어보기 버튼이 시작하는 것과 같은
시드된 pr_review 파이프라인을 시작합니다.
- PR에
ai-review레이블을 추가합니다. GitHub에서 봇을 리뷰어로 지정하는 것에 가장 가까운 방법입니다 — 앱 계정은 GitHub의 기본 리뷰 요청자 자리를 차지할 수 없습니다. 반응할 댓글이 없으므로 GitHub에는 아무것도 게시되지 않고, 리뷰는 Control Center에서 시작됩니다 - PR 대화에 **
@myapp review**라고 댓글을 답니다(또는@myapp만). 봇은 👀로 반응한 뒤, 리뷰가 시작되었을 때(또는 이미 실행 중이라고) 답글을 답니다
리뷰어들은 PR의 리뷰 스페이스에서 작업합니다. 발견 사항을 읽고 게시하는 방법은 AI 기반 리뷰 사용과 같습니다. GitHub로 다시 게시하는 것은 여전히 Control Center에서 내리는 결정입니다 — GitHub에서 리뷰를 시작해도 저절로 GitHub에 게시되는 것은 없습니다.
레이블은 PR당 한 번만 작동합니다. 추가하는 것이 곧 요청이며, 뗐다가 다시 붙여도 다시 무장되지 않습니다. 푸시 후처럼 리뷰를 다시 실행하려면 봇을 멘션하세요.
질문하기
섹션 제목: “질문하기”PR 대화에 댓글을 답니다:
@myapp why does the flaky test in runner_test.dart fail on CI but not locally?순서대로 일어나는 일은 다음과 같습니다.
- 댓글이 확인되었다는 표시로 봇이 👀로 반응합니다
- 질문이 여러분으로서 PR의 리뷰 스페이스에 게시됩니다 — Control Center에서 직접 입력한 것과 같은 귀속입니다
- 에이전트가 스페이스에서 답하고, 그 답변이 여러분을 @멘션하는 댓글로 PR에 다시 게시됩니다
아직 리뷰가 없는 PR의 질문은 워크스페이스의 CEO 에이전트를 깨웁니다. 리뷰가 한 번 실행된 뒤에는 마지막으로 발언한 에이전트가 답하므로, 후속 질문은 맥락을 가진 쪽에 도달합니다.
리뷰 스레드에서 후속 질문하기
섹션 제목: “리뷰 스레드에서 후속 질문하기”봇이 참여하고 있는 인라인 리뷰 스레드 안에서 답장합니다 — 봇이 남긴 diff 댓글이나 그 스레드에 게시한 답변입니다. 멘션은 필요 없습니다. 스레드 자체가 주소 지정입니다:
> @myapp the retry loop looks O(n²) to me
what would the complexity be with the bounded queue instead?여러 턴의 대화도 같은 방식입니다. 각 답장은 같은 대화의 또 다른 질문이며 리뷰 스페이스를 맥락으로 삼고, 답변은 그 스레드로 돌아옵니다.
PR 대화 타임라인에 남기는 후속 글은 새로운 최상위 댓글이므로 여전히 @멘션이 필요합니다.
봇이 누구와 대화하는지
섹션 제목: “봇이 누구와 대화하는지”GitHub 댓글은 로그인 외에는 거의 아무 정보도 없이 도착하므로, 봇은 무엇이든 하기 전에 작성자를 확인합니다.
- 여러분의 GitHub 계정이 Control Center의 본인 신원과 연결되어 있어야 합니다 — 설정 → 워크스페이스 → 프로필 및 신원 → 코드 호스팅에서 GitHub로 로그인하거나 토큰을 붙여넣습니다
- 저장소를 연결한 워크스페이스에서 쓰기 역할(
member,admin,owner)을 가진 멤버여야 합니다
그 외의 사람에게는 무엇이 빠졌는지 설명하는 정중한 답변이 한 번 돌아가며 — 알 수
없는 로그인(연결되지 않았거나, 연결되었지만 이곳의 멤버가 아님)과 읽기 전용
역할이 그 두 가지 경우입니다 — 그들의 말은 결코 워크스페이스에 들어가지
않습니다. ai-review 레이블은 이런 검증을 거치지 않습니다. 작성자가 없으므로
저장소를 이미 연결한 워크스페이스에서 리뷰를 시작합니다.
예상되는 동작
섹션 제목: “예상되는 동작”| 항목 | 동작 |
|---|---|
| 확인 | 댓글에 약 1분 안에 👀가 붙습니다 — 스윕 주기입니다. ai-review 레이블에는 반응할 댓글이 없습니다 |
| 답변 | 봇(앱) 자격으로, 질문이 제기된 레인에 게시됩니다 |
| 스페이스 내 귀속 | 질문은 여러분의 것이고, 에이전트는 스페이스의 자율성 설정에 따라 여러분을 대신해 실행됩니다 |
| 리뷰 | 발견 사항은 리뷰 스페이스에 쌓이고, GitHub 게시는 수동입니다 |
대략 1분의 지연은 인바운드 네트워크 접근이 전혀 필요 없다는 점과 맞바꾼 대가입니다. 스윕에서 급한 것은 없으며, 서버가 오프라인인 동안에도 잃는 것은 없습니다 — 중단 중에 도착한 댓글은 다음 스윕에서 수집됩니다.
문제 해결
섹션 제목: “문제 해결”봇을 멘션한 댓글에 아무 일도 일어나지 않습니다.
- 저장소를 소유한 계정에 앱이 설치되어 있고, 저장소가 워크스페이스에 연결되어 있나요? 연결되지 않은 저장소는 아무것도 기록되기 전에 건너뛰므로, 나중에 연결해도 여전히 전달됩니다
- GitHub 계정이 연결되어 있고, 쓰기 역할을 가진 멤버인가요? PR에서 봇의 거절 답변을 확인하세요 — 어느 쪽인지 알려 줍니다
- 그래도 아무 일이 없나요? 실패하면 서버 로그에 스윕과 PR이 기록됩니다.
pr_conversation:(폴러)과github_pr_conversation:(브리지)를 찾아보세요
레이블이 리뷰를 시작하지 않습니다.
레이블은 PR당 한 번만 작동합니다. 리뷰가 이미 실행되었거나, 서버가 PR을 보기도
전에 레이블이 추가되었다면(첫 스윕은 밀린 댓글에 몰려들지 않고 조용히
기록합니다), 대신 봇을 멘션하세요 — 이미 리뷰가 진행 중이지만 않다면
@myapp review가 항상 리뷰를 시작합니다.
봇의 답변이 GitHub에 도착하지 않았습니다.
답변 자체는 결코 사라지지 않습니다 — Control Center의 PR 리뷰 스페이스에 있습니다. 게시 실패(GitHub 장애, 권한 변경)는 로그에 기록되고 답변은 재시도되지 않으므로, 중요하다면 스레드에서 다시 질문하세요.
관련 가이드
섹션 제목: “관련 가이드”- GitHub App 만들기: 봇이 태어나는 등록 절차
- AI 기반 리뷰 사용: 멘션으로 시작한 리뷰가 만들어 내는 발견 사항 읽기
- GitHub 통합 설정: 봇이 여러분을 확인하는 근거인, 자신의 GitHub 계정 연결
- 스페이스 사용: 이 모든 것이 도착하는 방