Mluvte s Control Center z GitHub PR
Tenhle návod ukazuje, jak pracovat s Control Center a neopustit GitHub: požádat o AI kontrolu ze stránky PR, položit botovi otázku v komentáři a vést konverzaci dál v jeho vláknech revize.
Bot je vlastní GitHub App tvého serveru, ta samá, která už lidi přihlašuje a pouští práci na pozadí. Nic nového se neregistruje a nic nemusí být dostupné z internetu. Server zjistí, co se na GitHubu řeklo, obchůzkou, takže notebook za NAT se chová stejně jako veřejné nasazení.
Předpoklady
Sekce “Předpoklady”- Server má svou GitHub App zaregistrovanou a nainstalovanou, s oprávněním Pull requests: read and write (komentáře, vlákna a reakce) a Issues: read (hledání komentářů). Obojí už je v seznamu oprávnění toho návodu
- Repozitář je propojený s pracovním prostorem v Control Center
- Žádná URL webhooku, žádný tunel, žádný callback. Na straně sítě není co nastavovat
Najdi jméno bota
Sekce “Najdi jméno bota”Login bota je <appslug>[bot], kde appslug je jméno, které jsi aplikaci
dal při registraci.
- Jdi do Nastavení → Server → Jednotné přihlášení a sjeď na kartu Aplikace poskytovatelů
- Otevři blok GitHub a klikni na Test
- Až se vyplní, zkopíruj Přihlášení bota. Když pořád ukazuje prázdnou
nápovědu, login je vždy
<appslug>[bot]. Napiš ten, nebo krátké@appslug
GitHub účty aplikací ve svém doplňování @ nenabízí, takže login se musí
napsat. Proto ho karta v nastavení zkopíruje jedním kliknutím. Přípona
[bot] je volitelná: @myapp i @myapp[bot] bota osloví.
Požádej o kontrolu z GitHubu
Sekce “Požádej o kontrolu z GitHubu”Dvě cesty a obě spustí tutéž předpřipravenou pipeline pr_review, kterou
spouští tlačítko Zeptat se AI:
- Přidej na PR štítek
ai-review. Je to nejblíž tomu, co GitHub umí místo přiřazení bota jako recenzenta. Účty aplikací nemůžou obsadit nativní slot požadovaného recenzenta. Není tu komentář, na který by šlo reagovat, takže se na GitHub nic nepošle. Kontrola se spustí v Control Center - Napiš do konverzace PR
@myapp review(nebo jen@myapp). Bot zareaguje 👀 a odpoví, až se kontrola spustí, nebo že už jedna běží
Recenzenti pracují v prostoru kontroly daného PR. Zjištění čteš a zveřejňuješ jako v Používejte AI kontrolu. Zveřejnění zpět na GitHub zůstává rozhodnutím, které uděláš v Control Center. Spuštění kontroly z GitHubu samo na GitHub nic nezveřejní.
Štítek se u jednoho PR spustí jednou: přidání je ta žádost a odebrání s opětovným přidáním ho znovu nenatáhne. Další kontrolu, třeba po pushi, spustíš zmínkou bota.
Polož otázku
Sekce “Polož otázku”Napiš do konverzace PR:
@myapp why does the flaky test in runner_test.dart fail on CI but not locally?Co se stane, po pořádku:
- Bot zareaguje 👀, abys věděl, že komentář viděl
- Otázka se zapíše do prostoru kontroly daného PR jako ty, se stejným připsáním, jako bys ji napsal v Control Center
- Agent odpoví v prostoru a odpověď se vrátí na PR jako komentář, který tě zmíní přes @
Otázka na PR, který ještě nemá kontrolu, probudí agenta CEO daného pracovního prostoru. Jakmile kontrola proběhla, odpovídá agent, který mluvil naposled, takže navázání přijde k tomu, kdo má kontext.
Navazuj ve vlákně revize
Sekce “Navazuj ve vlákně revize”Odpověz uvnitř vloženého vlákna revize, kterého se bot účastní. Komentář u diffu, který tam nechal, nebo odpověď, kterou do toho vlákna poslal. Zmínka není potřeba. Vlákno je to oslovení:
> @myapp the retry loop looks O(n²) to me
what would the complexity be with the bounded queue instead?Více tahů funguje stejně: každá odpověď je další otázka v té samé konverzaci, s prostorem kontroly jako kontextem, a odpověď se vrátí do vlákna.
Navázání na časové ose konverzace PR je nový komentář na nejvyšší úrovni, takže pořád potřebuje zmínku přes @.
S kým bot mluví
Sekce “S kým bot mluví”Komentář z GitHubu přijde skoro jen s loginem, takže bot autora vyřeší, než cokoli udělá:
- Účet GitHub musí být propojený s tvou identitou v Control Center. Přihlas se přes GitHub, nebo vlož token, v Nastavení → Pracovní prostor → Profil a identita → Hostování kódu
- Musíš být člen s rolí pro zápis (
member,adminneboowner) v pracovním prostoru, který ten repozitář propojuje
Každý jiný dostane jednu zdvořilou odpověď, která řekne, co chybí. Jsou dva
případy: neznámý login (nepřipojený, nebo připojený, ale tady není členem)
a role jen ke čtení. Jejich slova do pracovního prostoru nikdy nevstoupí.
Štítek ai-review touhle bránou neprochází. Nemá autora, takže kontrolu
spustí v pracovním prostoru, který repozitář už propojuje.
Co čekat
Sekce “Co čekat”| Věc | Chování |
|---|---|
| Potvrzení | 👀 u komentáře zhruba do minuty, což je interval obchůzky. Štítek ai-review nemá komentář, na který by šlo reagovat |
| Odpovědi | Odeslané jako bot (aplikace), ve stopě, ve které se ptalo |
| Připsání v prostoru | Otázka je tvoje; agent běží tvým jménem, podle voliče autonomie prostoru |
| Kontroly | Zjištění skončí v prostoru kontroly; zveřejnění na GitHub je ruční |
Zhruba minutová latence je cena za to, že není potřeba žádný příchozí síťový přístup. Na obchůzce nic nespěchá a nic se neztratí, když je server offline. Komentář, který přijde v té době, chytí další obchůzka.
Řešení problémů
Sekce “Řešení problémů”U komentáře, který bota zmiňuje, se nic nestane.
- Je aplikace nainstalovaná na účtu, kterému repozitář patří, a je repozitář propojený s pracovním prostorem? Nepropojený repozitář se přeskočí dřív, než se cokoli zapíše, takže pozdější propojení pořád doručí
- Je tvůj účet GitHub propojený a jsi člen s rolí pro zápis? Podívej se na PR, jestli tam bot neodmítl. Odpověď řekne, který z těch dvou případů to je
- Pořád nic? Log serveru při selhání jmenuje obchůzku a PR. Hledej
pr_conversation:(obchůzka) agithub_pr_conversation:(most)
Štítek kontrolu nespustí.
U jednoho PR se spustí jednou. Když už kontrola proběhla, nebo byl štítek
přidaný dřív, než server ten PR vůbec viděl (první obchůzka nevyřízené zapíše
potichu, místo aby je hromadně rozjela), zmiň místo toho bota. @myapp review
kontrolu vždy spustí, pokud už jedna neběží.
Odpověď bota na GitHub nedorazila.
Samotná odpověď se neztratí. Je v prostoru kontroly daného PR v Control Center. Nezdařené odeslání (GitHub je nedostupný, změnila se oprávnění) se zapíše do logu a odpověď se nezkouší znovu. Když na ní záleží, zeptej se ve vlákně ještě jednou.
Související návody
Sekce “Související návody”- Vytvořte GitHub App: registrace, ze které bot vznikne
- Používejte AI kontrolu: čtení zjištění, která vyrobí kontrola spuštěná zmínkou
- Nastavte integraci GitHub: propojení vlastního účtu GitHub, podle kterého tě bot vyřeší
- Používejte prostory: místnost, do které tohle všechno dopadne