Tovább a tartalomhoz

Beszélgetés a Control Centerrel GitHub PR-ből

Ez az útmutató bemutatja, hogyan dolgozhat a Control Centerrel anélkül, hogy elhagyná a GitHubot: kérjen MI-átnézést a PR oldaláról, tegyen fel kérdést a botnak egy hozzászólásban, és folytassa a beszélgetést az átnézési szálaiban.

A bot a szerver saját GitHub Appja — ugyanaz, amely már bejelentkezteti az embereket és háttérmunkát futtat. Semmi újat nem regisztrál, és semminek nem kell elérhetőnek lennie az internetről: a szerver lekérdezéssel deríti fel, mi hangzott el a GitHubon, így egy NAT mögötti laptop pontosan úgy viselkedik, mint egy nyilvános telepítés.

  • A szerveren a GitHub App regisztrálva és telepítve van, Pull requests: read and write (hozzászólásokhoz, szálakhoz és reakciókhoz) és Issues: read (a hozzászóláskereséshez) jogosultsággal. Mindkettő szerepel már abban az útmutató jogosultságlistájában
  • A tároló egy munkaterülethez van kapcsolva a Control Centerben
  • Nincs webhook URL, nincs alagút, nincs callback — a hálózat oldalán nincs mit beállítani

A bot bejelentkezési neve <appslug>[bot], ahol az appslug az a név, amelyet az alkalmazásnak a regisztráláskor adott.

  1. Nyissa meg a Beállítások → Szerver → Egyszeri bejelentkezés oldalt, és görgessen a Szolgáltatói alkalmazások kártyához
  2. Nyissa meg a GitHub blokkot, és kattintson a Teszt elemre
  3. Másolja ki a Bot bejelentkezési név értékét, amikor kitöltődik. Ha még mindig az üres súgószöveget mutatja, a bejelentkezési név mindig <appslug>[bot] — gépelje be, vagy használja a rövid @appslug alakot

A GitHub nem kínál alkalmazásfiókokat a @-automatikus kiegészítésében, ezért a bejelentkezési nevet be kell gépelni — éppen ezért teszi a beállításkártya egyetlen kattintással másolhatóvá. A [bot] utótag elhagyható: a @myapp és a @myapp[bot] egyaránt a botot szólítja meg.

Kétféleképpen, mindkettő ugyanazt az alapból létrehozott pr_review pipeline-t indítja el, amelyet a Kérdezze az AI-t gomb is:

  • Adja hozzá az ai-review címkét a PR-hez. Ez áll a legközelebb ahhoz, amit a GitHub a bot átnézőként való hozzárendelésére kínál — az alkalmazásfiókok nem foglalhatják el a natív kért-átnéző helyet. Nincs hozzászólás, amelyre reagálni lehetne, így semmi nem kerül fel a GitHubra; az átnézés a Control Centerben indul el
  • Szóljon hozzá @myapp review (vagy csak @myapp) formában a PR beszélgetéséhez. A bot 👀 reakcióval válaszol, majd jelentkezik, hogy elindult az átnézés (vagy hogy már fut egy)

Az átnézők a PR átnézési terében dolgoznak; a megállapításokat ugyanúgy olvassa el és tegye közzé, mint az MI-alapú átnézés használata oldalon. A GitHubra való visszaközzététel továbbra is az Ön döntése marad a Control Centerben — a GitHubról indított átnézés önmagában semmit nem tesz közzé a GitHubon.

A címke PR-enként egyszer fut le: a hozzáadása maga a kérés, és nem élesedik újra, ha eltávolítja, majd ismét hozzáadja. Átnézés újbóli futtatásához — mondjuk egy push után — említse meg a botot.

Szóljon hozzá a PR beszélgetéséhez:

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

Mi történik, sorrendben:

  1. A bot 👀 reakcióval jelzi, hogy észrevette a hozzászólást
  2. A kérdés az Ön nevében kerül be a PR átnézési terébe — ugyanazzal az attribúcióval, mintha a Control Centerben gépelte volna be
  3. Egy ügynök válaszol a térben, és a válasz visszakerül a PR-re egy olyan hozzászólásként, amely @-megemlíti Önt

Egy olyan PR-en feltett kérdés, amelyen még nem futott átnézés, a munkaterület vezető (CEO) ügynökét ébreszti fel; ha már lefutott egy átnézés, az utoljára megszólaló ügynök válaszol, így az utánkövetések ahhoz kerülnek, akinél a kontextus van.

Válaszoljon egy olyan beágyazott átnézési szálon belül, amelynek a bot is része — egy általa hagyott diff-hozzászólásban vagy egy abban a szálban közzétett válaszban. Nem kell említés; maga a szál a megszólítás:

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

A többfordulós működés ugyanígy megy: minden válasz egy újabb kérdés ugyanabban a beszélgetésben, az átnézési tér mint kontextus mellett, és a válasz a szálban érkezik vissza.

A PR-beszélgetés idővonalán tett utánkövetés egy új, legfelső szintű hozzászólás, ezért ott továbbra is kell az @-említés.

Egy GitHub-hozzászólás alig többet hoz magával, mint egy bejelentkezési nevet, ezért a bot minden művelet előtt feloldja a szerzőt:

  • A GitHub-fiókját össze kell kapcsolni az identitásával a Control Centerben — jelentkezzen be a GitHubdal, vagy illesszen be egy tokent, a Beállítások → Munkaterület → Profil és identitás → Kódtárhely helyen
  • Írási jogosultságú szerepkörrel rendelkező tagnak kell lennie (member, admin vagy owner) abban a munkaterületben, amely a tárolót kapcsolja

Mindenki más egyetlen udvarias választ kap arról, mi hiányzik — egy ismeretlen bejelentkezési név (nincs összekapcsolva, vagy össze van kapcsolva, de nem tag itt) és egy csak olvasásra jogosult szerepkör a két eset —, és a szavai soha nem lépnek be a munkaterületre. Az ai-review címke nincs így kapuzva: nincs szerzője, ezért abban a munkaterületben indítja el az átnézést, amely már kapcsolódik a repóhoz.

Dolog Viselkedés
Visszaigazolás 👀 egy hozzászóláson körülbelül egy percen belül — a pásztázási intervallum. Az ai-review címkének nincs hozzászólása, amelyre reagálni lehetne
Válaszok A bot (az alkalmazás) nevében közzétéve, abban a szálban, amelyben a kérdést feltették
Attribúció a térben A kérdés az Öné; az ügynök az Ön nevében fut, a tér autonómiatárcsája szerint
Átnézések A megállapítások az átnézési térbe kerülnek; a GitHubra való közzététel kézi

A körülbelül egyperces késleltetés az ára annak, hogy egyáltalán nincs szükség bejövő hálózati hozzáférésre. A pásztázás miatt semmi sem sürgős, és semmi sem vész el, amíg a szerver offline — egy leállás alatt érkező hozzászólást a következő pásztázás elkapja.

Semmi sem történik egy olyan hozzászólásnál, amely megemlíti a botot.

  • Telepítve van az alkalmazás a repót birtokló fiókon, és a repó hozzá van kapcsolva egy munkaterülethez? Egy nem kapcsolt repó kihagyásra kerül, mielőtt bármi rögzítésre kerülne, így a későbbi összekapcsolás még mindig leszállítja
  • Össze van kapcsolva a GitHub-fiókja, és írási jogosultságú szerepkörű tag? Nézze meg a PR-en a bot elutasító válaszát — az megmondja, melyik eset
  • Még mindig semmi? A szervernapló megnevezi a pásztázást és a PR-t, amikor valami elszáll; keresse a pr_conversation: (a lekérdező) és a github_pr_conversation: (a híd) bejegyzést

A címke nem indít átnézést.

PR-enként egyszer fut le. Ha már lefutott egy átnézés, vagy a címkét még azelőtt adták hozzá, hogy a szerver valaha is látta volna a PR-t (az első pásztázás csendben rögzíti a hátralékot, ahelyett hogy elárasztaná), említse meg inkább a botot — a @myapp review mindig elindít egyet, hacsak nem fut már átnézés.

A bot válasza soha nem érkezett meg a GitHubra.

Maga a válasz soha nem vész el — a PR átnézési terében van a Control Centerben. Egy közzétételi hiba (a GitHub elérhetetlen, megváltoztak a jogosultságok) naplózásra kerül, és a válasz nem kerül újrapróbálásra; kérdezzen rá újra a szálban, ha számít.