Przejdź do głównej zawartości

Rozmawiaj z Control Center z PR w GitHub

Ten poradnik pokazuje, jak pracować z Control Center bez opuszczania GitHuba: poproś o recenzję AI ze strony PR-a, zadaj botowi pytanie w komentarzu i prowadź rozmowę dalej w jego wątkach recenzji.

Bot to należąca do Twojego serwera aplikacja GitHub App — ta sama, która już loguje ludzi i wykonuje pracę w tle. Nic nowego nie jest rejestrowane i nic nie musi być osiągalne z internetu: serwer odkrywa to, co powiedziano na GitHubie, przez odpytywanie, więc laptop za NAT-em zachowuje się dokładnie jak publiczne wdrożenie.

  • Serwer ma swoją aplikację GitHub App zarejestrowaną i zainstalowaną, z uprawnieniami Pull requests: odczyt i zapis (dla komentarzy, wątków i reakcji) oraz Issues: odczyt (dla wyszukiwania komentarzy). Oba są już na liście uprawnień w tamtym poradniku
  • Repozytorium jest połączone z obszarem roboczym w Control Center
  • Żadnego URL-a webhooka, żadnego tunelu, żadnego callbacku — po stronie sieci nie ma nic do skonfigurowania

Login bota to <appslug>[bot], gdzie appslug to nazwa, którą nadałeś aplikacji przy jej rejestrowaniu.

  1. Przejdź do Ustawienia → Serwer → Logowanie jednokrotne i przewiń do karty Aplikacje dostawców
  2. Otwórz blok GitHub i kliknij Test
  3. Skopiuj Login bota, gdy się uzupełni. Jeśli nadal widnieje podpowiedź o pustym polu, login to zawsze <appslug>[bot] — wpisz go albo krótką formę @appslug

GitHub nie oferuje kont aplikacji w swoim autouzupełnianiu @, więc login trzeba wpisać ręcznie — dlatego karta ustawień pozwala skopiować go jednym kliknięciem. Przyrostek [bot] jest opcjonalny: @myapp i @myapp[bot] kierują do bota tak samo.

Dwa sposoby, oba uruchamiają ten sam wstępnie zasiany potok pr_review, który uruchamia przycisk Zapytaj AI:

  • Dodaj etykietę ai-review do PR-a. To najbliższy odpowiednik przypisania bota jako recenzenta, jaki oferuje GitHub — konta aplikacji nie mogą zająć natywnego miejsca żądanego recenzenta. Nie ma komentarza, na który trzeba by zareagować, więc nic nie jest publikowane na GitHubie; recenzja startuje w Control Center
  • Skomentuj @myapp review (albo samo @myapp) w rozmowie w PR. Bot reaguje 👀, a następnie odpowiada, gdy recenzja się rozpoczęła (albo że jedna już trwa)

Recenzenci pracują w przestrzeni recenzji PR-a; czytaj i publikuj ustalenia jak w Używaj recenzji opartej na AI. Publikowanie z powrotem na GitHuba pozostaje decyzją, którą podejmujesz w Control Center — rozpoczęcie recenzji z GitHuba samo z siebie niczego na GitHubie nie publikuje.

Etykieta uruchamia się raz na PR: jej dodanie to prośba, a usunięcie i ponowne dodanie nie uzbraja jej ponownie. Aby ponownie uruchomić recenzję — np. po wypchnięciu zmian — wspomnij bota.

Skomentuj rozmowę w PR:

@myapp why does the flaky test in runner_test.dart fail on CI but not locally?

Co się dzieje, po kolei:

  1. Bot reaguje 👀, żebyś wiedział, że komentarz został zauważony
  2. Pytanie trafia do przestrzeni recenzji PR-a jako Ty — z tą samą atrybucją, co gdybyś wpisał je w Control Center
  3. Agent odpowiada w przestrzeni, a odpowiedź wraca na PR jako komentarz, który Cię @-wspomina

Pytanie w PR, który nie ma jeszcze recenzji, budzi agenta CEO obszaru roboczego; gdy recenzja już się odbyła, odpowiada agent, który odezwał się jako ostatni, więc dalsze pytania trafiają do tego, kto ma kontekst.

Odpowiedz wewnątrz wątku recenzji przy konkretnej linii, do którego należy bot — czy to komentarza do diffa, który zostawił, czy odpowiedzi, którą opublikował w tym wątku. Wzmianka nie jest potrzebna; to wątek jest adresowaniem:

> @myapp the retry loop looks O(n²) to me
what would the complexity be with the bounded queue instead?

Rozmowy wieloturowe działają tak samo: każda odpowiedź to kolejne pytanie w tej samej rozmowie, z przestrzenią recenzji jako kontekstem, a odpowiedź wraca w wątku.

Dalsze pytanie na osi czasu rozmowy w PR to nowy komentarz najwyższego poziomu, więc nadal wymaga @-wzmianki.

Komentarz z GitHuba przychodzi z niewiele więcej niż loginem, więc bot rozwiązuje autora, zanim cokolwiek zrobi:

  • Twoje konto GitHub musi być połączone z Twoją tożsamością w Control Center — zaloguj się przez GitHub albo wklej token w Ustawienia → Obszar roboczy → Profil i tożsamość → Hosting kodu
  • Musisz być członkiem z uprawnieniami do zapisu (member, admin lub owner) w obszarze roboczym, który łączy repozytorium

Każdy inny dostaje jedną uprzejmą odpowiedź wyjaśniającą, czego brakuje — nieznany login (niepołączony albo połączony, ale nienależący do tego obszaru) i rola tylko do odczytu to dwa przypadki — a jego słowa nigdy nie trafiają do obszaru roboczego. Etykieta ai-review nie jest w ten sposób bramkowana: nie ma autora, więc rozpoczyna recenzję w obszarze roboczym, który już łączy repozytorium.

Rzecz Zachowanie
Potwierdzenie 👀 na komentarzu w ciągu około minuty — to interwał obchodu. Etykieta ai-review nie ma komentarza, na który mogłaby zareagować
Odpowiedzi Publikowane jako bot (aplikacja), w tym samym wątku, w którym zadano pytanie
Atrybucja w przestrzeni Pytanie należy do Ciebie; agent działa w Twoim imieniu, zgodnie z ustawieniami autonomii przestrzeni
Recenzje Ustalenia trafiają do przestrzeni recenzji; publikacja na GitHubie jest ręczna

Okołominutowe opóźnienie to cena za brak jakiegokolwiek przychodzącego dostępu sieciowego. W obchodzie nie ma nic pilnego i nic nie ginie, gdy serwer jest offline — komentarz, który nadejdzie w czasie przestoju, zostanie wychwycony przy następnym obchodzie.

Nic się nie dzieje po komentarzu wspominającym bota.

  • Czy aplikacja jest zainstalowana na koncie, do którego należy repozytorium, a repozytorium połączone z obszarem roboczym? Niepołączone repozytorium jest pomijane, zanim cokolwiek zostanie zapisane, więc połączenie go później nadal zadziała
  • Czy Twoje konto GitHub jest połączone i czy jesteś członkiem z uprawnieniami do zapisu? Sprawdź w PR odpowiedź odmowną bota — mówi, o który warunek chodzi
  • Nadal nic? Dziennik serwera podaje nazwę obchodu i PR-a, gdy coś się nie powiedzie; szukaj pr_conversation: (odpytywanie) i github_pr_conversation: (most)

Etykieta nie rozpoczyna recenzji.

Uruchamia się raz na PR. Jeśli recenzja już się odbyła albo etykietę dodano, zanim serwer w ogóle zobaczył PR (pierwszy obchód zapisuje zaległości po cichu, zamiast je szturmować), wspomnij bota — @myapp review zawsze rozpoczyna recenzję, chyba że jakaś już trwa.

Odpowiedź bota nigdy nie dotarła na GitHuba.

Sama odpowiedź nigdy nie ginie — jest w przestrzeni recenzji PR-a w Control Center. Błąd publikowania (GitHub nie działa, zmienione uprawnienia) jest rejestrowany w dzienniku, a odpowiedź nie jest ponawiana; zapytaj ponownie w wątku, jeśli to ważne.