Налаштувати інтеграцію GitHub
Цей посібник охоплює частини налаштування, специфічні для GitHub. GitHub — один із трьох підтримуваних хостингів коду; див. Підключити хост коду про підключення GitLab чи Bitbucket і про те, як робочий простір поєднує їх.
Передумови
Розділ із назвою «Передумови»- Обліковий запис GitHub із доступом до репозиторіїв, з якими хочете працювати
- Або зареєстрований для вашого сервера GitHub App (див.
Створити GitHub App), щоб ви могли увійти, або
персональний токен доступу з
repoіread:org, який можна вставити
Увійти через GitHub
Розділ із назвою «Увійти через GitHub»device flow: GitHub показує вам короткий код, ви підтверджуєте його на github.com, і сервер отримує облікові дані — без URL зворотного виклику, без порту, нічого не треба відкривати назовні. Доступний завжди, коли на сервері є ID клієнта, — офіційна збірка вже його містить.
- Перейдіть у Налаштування → Робочий простір → Профіль і ідентичність → Хостинг коду (або перший крок початкового налаштування)
- У рядку GitHub натисніть Увійти через GitHub
- У діалоговому вікні з’явиться код із восьми символів і відкриється github.com/login/device у вашому браузері. Код уже в буфері обміну
- Вставте його, підтвердьте застосунок і поверніться. Рядок сам зміниться на «Ви увійшли як your-username»
Діалогове вікно можна закрити, поки ви завершуєте справу в браузері — сервер продовжує опитувати, доки код не спливе (приблизно 15 хвилин), тож вхід усе одно зарахується.
Або вставте токен
Розділ із назвою «Або вставте токен»Запасний варіант, коли на сервері немає застосунку, коли застосунок не встановлено на потрібному вам обліковому записі або коли ви просто волієте скористатися PAT.
- Перейдіть у Налаштування → Робочий простір → Профіль і ідентичність → Хостинг коду
- У рядку GitHub натисніть Додати токен
- Вставте токен із
repoіread:org(класичний) і збережіть. Fine-grained токену потрібні для репозиторію Contents і Pull requests (читання й запис), а також Checks і Actions (читання).
Токен перевіряють одразу під час збереження, тож рядок може назвати обліковий запис, якому він належить. Натисніть Від’єднатися, щоб його прибрати.
Контрольна точка: рядок GitHub показує «Ви увійшли як your-username». Коли відповідають не ваші облікові дані, суфікс називає джерело — «через застосунок цього сервера» або «із середовища».
Що дає інтеграція
Розділ із назвою «Що дає інтеграція»| Можливість | Як |
|---|---|
| Список PR і подробиці | GitHub REST API, із сервера, від ідентичності застосунку або ваших власних облікових даних |
| Запуски перевірок | GitHub Checks API |
| Публікація рев’ю | Крок, який запускає користувач і який публікує ваше рев’ю в PR |
| Реєстрація репозиторію | Копію приймають, якщо її remote origin указує на github.com — або на gitlab.com / bitbucket.org |
| Доступ агента до GitHub | Брокер облікових даних впорскує токен лише для читання як GH_TOKEN / GITHUB_TOKEN; push проходить через Control Center |
| Сповіщення | Серверне опитування вашої скриньки сповіщень GitHub породжує «Згадка в pull request» і «Запит на рев’ю» |
| Профілі користувачів | Картки профілю при наведенні та фільтрування PR за автором |
Деякі шляхи використовують GraphQL API замість REST там, де це дешевше — активність гілки для вибору гілки під час створення PR і живий стан рев’ю, який вирішує, чи запит на рев’ю ще чинний.
Стежте за збоями GitHub
Розділ із назвою «Стежте за збоями GitHub»У рядку заголовка з’являється індикатор стану, коли в провайдера проблеми, — це стосується GitHub, Claude, OpenAI і Kimi. Поки все гаразд, він прихований — присутність повідомляє про проблему, а не про її відсутність.
Натисніть індикатор, щоб відкрити висувну панель зі станом кожного провайдера та кнопкою оновлення. Статуси оновлюються самі кожні дві хвилини.
Знайте, як агенти діють у GitHub
Розділ із назвою «Знайте, як агенти діють у GitHub»- Агент, що працює у worktree GitHub, завжди отримує токен GitHub лише для читання. Push проходить через Control Center, який запитує правило Надіслати на віддалений репозиторій, а тоді передає його з токеном запису, якого агент ніколи не має. Див. Налаштувати політики пісочниці
- Коміти, які створює агент, автором мають самого агента — ім’я для
відображення плюс
(agent), за синтетичною адресою, прив’язаною до ідентифікатора агента — і ніколи людину. Людину, яка зробила запит, зазначають трейлеромCo-Authored-By - Коли налаштовано GitHub App, брокер для кожного запуску карбує fine-grained
токени інсталяції з обмеженням на репозиторій і строком близько однієї години,
замість того щоб віддавати широкий токен. Інсталяцію визначають за
власником репозиторію запуску, тож один застосунок, установлений на кількох
облікових записах, правильно прив’язується до того, якого торкається запуск.
Без застосунку агенти отримують токен із середовища, який не можна обмежити
лише читанням: правило push тоді діє для
git push, але не для коду, що напряму використовує токен - Токен завжди належить брокеру, а не учасникові, який зробив запит. Токен сервера не видається запуску, який діє від імені учасника, що не є власником і не підключив GitHub
Усунення несправностей
Розділ із назвою «Усунення несправностей»Список PR порожній і повідомляє, що GitHub не підключено
Розділ із назвою «Список PR порожній і повідомляє, що GitHub не підключено»У вас немає облікових даних GitHub на цьому сервері. Увійдіть або вставте токен у розділі Хостинг коду. Репозиторіїв інших хостингів коду це не зачіпає — нічого не додають лише репозиторії GitHub.
Рядок пропонує «Додати токен», але не «Увійти через GitHub»
Розділ із назвою «Рядок пропонує «Додати токен», але не «Увійти через GitHub»»На сервері немає ID клієнта — це нормальний стан для збірки з вихідного коду, адже облікові дані вшито лише в офіційні збірки. Див. Створити GitHub App: це займає близько двох хвилин і зробити це має лише власник сервера — один раз.
Діалогове вікно входу каже, що провайдер не повернув код пристрою
Розділ із назвою «Діалогове вікно входу каже, що провайдер не повернув код пристрою»GitHub App існує, але його прапорець Device flow вимкнено. Увімкніть його в налаштуваннях застосунку (General → Device flow) і спробуйте знову.
Рядок каже «через застосунок цього сервера», хоча я чекав на власний обліковий запис
Розділ із назвою «Рядок каже «через застосунок цього сервера», хоча я чекав на власний обліковий запис»Ви не ввійшли; те, що ви бачите, — це відповідь ідентичності застосунку сервера. Натисніть Увійти через GitHub у цьому рядку.
У fine-grained PAT немає кнопки злиття чи стану перевірок
Розділ із назвою «У fine-grained PAT немає кнопки злиття чи стану перевірок»Токену потрібні Contents і Pull requests (читання й запис), а також Checks і Actions (читання). Змінивши його, вставте його знову в розділі Хостинг коду.
Додавання репозиторію відхилено
Розділ із назвою «Додавання репозиторію відхилено»Для реєстрації потрібні всі три умови: шлях лежить усередині робочого дерева git,
у нього є remote origin, і цей remote указує на підтримуваний хостинг коду
(github.com, gitlab.com або bitbucket.org). Див.
Додати репозиторії до робочого простору.
Після інтенсивного використання все на якийсь час перестає працювати
Розділ із назвою «Після інтенсивного використання все на якийсь час перестає працювати»Це запобіжник на випадок обмеження частоти запитів. GitHub повідомляє про
досягнення основного ліміту відповіддю 403 із заголовком
x-ratelimit-remaining: 0 і часом скидання; побачивши таку, клієнт локально
відхиляє подальші запити, без мережевого звернення, доки не спливе вікно, — тож
шквал повторних спроб не може поглибити ліміт. Тимчасові збої повторюють до трьох
разів з експоненційною затримкою, поважаючи retry-after.