Přeskočit na obsah

Nastavte integraci GitHub

Tenhle návod bere ty části nastavení, které patří ke GitHubu. GitHub je jeden ze tří podporovaných hostitelů kódu. Jak připojit GitLab nebo Bitbucket a jak je pracovní prostor míchá, je v Připojte hostitele kódu.

  • Účet na GitHubu s přístupem k repozitářům, na kterých chceš pracovat
  • Buď GitHub App zaregistrovaná pro tvůj server (viz Vytvořte GitHub App), abys se mohl přihlásit, nebo osobní přístupový token s repo a read:org k vložení

Přihlas se přes GitHub

Sekce “Přihlas se přes GitHub”

Device flow: GitHub ti ukáže krátký kód, ty ho schválíš na github.com a server dostane přihlašovací údaj. Žádná callback URL, žádný port, nic k vystavení. Je k dispozici, kdykoli má server client id, což oficiální build už obsahuje.

  1. Jdi do Nastavení → Pracovní prostor → Profil a identita → Hostování kódu (nebo na první krok onboardingu)
  2. Na řádku GitHub klikni na Přihlásit se přes GitHub
  3. Dialog ukáže osmiznakový kód a v prohlížeči otevře github.com/login/device. Kód už máš ve schránce
  4. Vlož ho, schval aplikaci a vrať se. Řádek se sám přepne na „Přihlášeno jako tvoje-uživatelské-jméno.“

Dialog můžeš zavřít, než to v prohlížeči dokončíš. Server se dál ptá, dokud kód nevyprší (asi 15 minut), takže přihlášení stejně dorazí.

Záloha pro případ, kdy server nemá aplikaci, kdy aplikace není nainstalovaná na účtu, který potřebuješ, nebo kdy prostě chceš použít PAT.

  1. Jdi do Nastavení → Pracovní prostor → Profil a identita → Hostování kódu
  2. Na řádku GitHub klikni na Přidat token
  3. Vlož token s repo a read:org (classic) a ulož ho. Token fine-grained potřebuje u repozitáře Contents a Pull requests (read and write) a k tomu Checks a Actions (read).

Token se při uložení ověří, takže řádek umí pojmenovat účet, ke kterému patří. Odeber ho kliknutím na Odpojit.

Kontrolní bod: řádek GitHub ukazuje „Přihlášeno jako tvoje-uživatelské-jméno.“. Když odpovídající přihlašovací údaj není tvůj, přípona pojmenuje zdroj: „přes aplikaci tohoto serveru“ nebo „z prostředí“.

Funkce Jak
Seznam a detail PR GitHub REST API, ze serveru, na identitě aplikace nebo na tvém přihlašovacím údaji
Běhy kontrol GitHub Checks API
Publikování revize Krok vázaný na uživatele, který odešle tvoji revizi do PR
Registrace repozitáře Checkout se přijme, když remote origin míří na github.com, nebo na gitlab.com / bitbucket.org
Přístup agenta ke GitHubu Broker přihlašovacích údajů vloží token jen pro čtení jako GH_TOKEN / GITHUB_TOKEN; push jde přes Control Center
Upozornění Dotazování na doručenou poštu oznámení GitHubu na serveru vyvolá „Zmíněn v pull requestu“ a „Vyžádána kontrola“
Profily uživatelů Karty profilu při najetí a filtrování PR podle autora

Některé cesty použijí GraphQL API místo REST tam, kde je to levnější: aktivita větví pro výběr při sestavování PR a živý stav revize, podle kterého se pozná, jestli oznámení „Vyžádána kontrola“ pořád čeká.

V záhlaví se objeví stavový čip, když některý poskytovatel hlásí problémy. Týká se GitHubu, Claude, OpenAI a Kimi. Dokud je všechno v pořádku, je schovaný. Jeho přítomnost znamená potíž.

Klikni na čip a otevře se panel Stav služeb se stavem každého poskytovatele a tlačítkem Obnovit. Stavy se samy obnoví každé dvě minuty.

Jak agenti na GitHubu jednají

Sekce “Jak agenti na GitHubu jednají”
  • Agent, který pracuje ve worktree GitHubu, dostane vždycky token GitHub jen pro čtení. Push jde přes Control Center, které se zeptá pravidla Odeslat na remote a pak ho předá se zapisovacím tokenem, který agent nikdy nedrží. Viz Nastavte politiky sandboxu
  • Commity, které agent udělá, jsou autorované jako agent: zobrazované jméno plus (agent), na syntetické adrese klíčované id agenta, nikdy jako člověk. Člověk, který o to požádal, je uvedený v trailerech Co-Authored-By
  • Když je nakonfigurovaná GitHub App, broker při každém spuštění vystaví úzce vymezené instalační tokeny vázané na repozitář, platné zhruba hodinu, místo aby předal široký token. Instalace se určí podle vlastníka repozitáře daného běhu, takže jedna aplikace nainstalovaná na několika účtech se správně omezí na účet, kterého se běh dotkne. Bez aplikace agenti dostanou token z prostředí, který nejde omezit jen na čtení: pravidlo pro push pak váže git push, ale ne kód, který token používá přímo
  • Token je vždycky ten od brokera, nikdy vlastní token člena, který o běh požádal. Token serveru se odepře běhu, který jedná za člena, jenž není vlastník a nemá připojený GitHub

Seznam PR je prázdný a hlásí, že GitHub není připojený

Sekce “Seznam PR je prázdný a hlásí, že GitHub není připojený”

Na tomhle serveru nemáš přihlašovací údaj ke GitHubu. Přihlas se nebo vlož token v Hostování kódu. Repozitáře na jiných forge to nezasáhne. Nic nepřispívá jen GitHub.

Řádek nabízí „Přidat token“, ale ne „Přihlásit se přes GitHub“

Sekce “Řádek nabízí „Přidat token“, ale ne „Přihlásit se přes GitHub“”

Server nemá client id. U buildu ze zdrojového kódu je to běžný stav, protože přihlašovací údaje se zapékají jen do oficiálních buildů. Viz Vytvořte GitHub App: zabere to asi dvě minuty a udělat to musí jen vlastník serveru, a to jednou.

Dialog přihlášení hlásí, že poskytovatel nevrátil device code

Sekce “Dialog přihlášení hlásí, že poskytovatel nevrátil device code”

GitHub App existuje, ale zaškrtnutí Device flow je vypnuté. Zapni ho v nastavení aplikace (General → Device flow) a zkus to znovu.

Řádek hlásí „přes aplikaci tohoto serveru“, a já čekám vlastní účet

Sekce “Řádek hlásí „přes aplikaci tohoto serveru“, a já čekám vlastní účet”

Nepřihlásil ses. To, co vidíš, je identita aplikace serveru, která odpovídá. Na tom řádku klikni na Přihlásit se přes GitHub.

Fine-grained PAT neukáže tlačítko sloučení ani stav kontrol

Sekce “Fine-grained PAT neukáže tlačítko sloučení ani stav kontrol”

Token potřebuje Contents a Pull requests (read and write) a k tomu Checks a Actions (read). Po změně ho znovu vlož v Hostování kódu.

Přidání repozitáře se odmítne

Sekce “Přidání repozitáře se odmítne”

Registrace vyžaduje všechny tři podmínky: cesta leží uvnitř git work tree, má remote origin a ten remote míří na podporovanou forge (github.com, gitlab.com nebo bitbucket.org). Viz Přidejte repozitáře do pracovního prostoru.

Po velké zátěži na chvíli přestane fungovat všechno

Sekce “Po velké zátěži na chvíli přestane fungovat všechno”

To je jistič limitu požadavků. GitHub oznamuje primární limit kódem 403 s hlavičkou x-ratelimit-remaining: 0 a časem obnovení. Jakmile takovou odpověď uvidí, klient další požadavky odmítne lokálně, bez volání po síti, dokud okno nevyprší, aby opakované pokusy limit ještě neprohloubily. Přechodné chyby se zkusí znovu nejvýš třikrát, s exponenciální prodlevou, a drží se retry-after.