Подключение репозитория
Layero собирает сайт из репозитория на пяти сервисах: GitHub, GitVerse, GitLab, GitFlic и SourceCraft. Подключённый репозиторий — это путь (a) для агента и для человека: push в ветку даёт превью, push в production-ветку — продакшен. Модель одна на всех; отличаются способ подключения и то, что умеет API провайдера.
Как подключается
| Провайдер | Способ | Кому принадлежит подключение |
|---|---|---|
| GitHub | GitHub App (рекомендуется) или OAuth-вход | организации Layero: installation-токен короткоживущий, не зависит от человека |
| GitVerse | персональный токен | организации Layero, но токен — конкретного сотрудника |
| GitLab | персональный токен (glpat-…); поддерживается свой инстанс | то же |
| GitFlic | персональный токен; поддерживается свой инстанс | то же |
| SourceCraft | персональный токен (pv1_…) | то же |
Подключение токеном делается один раз на организацию: Настройки → Подключённые аккаунты → «Подключить репозиторий», выбрать сервис и вставить токен. После этого репозитории сервиса появляются в выборе при создании проекта — «Создать проект» → «Импорт из репозитория».
Токен хранится зашифрованным и наружу не отдаётся. У него есть срок: когда он истечёт, сборки по push встанут, а в списке подключений появится пометка «токен недействителен» — выпустите новый и обновите подключение. Подключение с токеном держится на аккаунте того, кто его выпустил: если человек ушёл из команды и отозвал токен, сборки организации остановятся. У GitHub этой зависимости нет — используйте GitHub App.
Для своего инстанса GitLab или GitFlic укажите адрес API, а не сайта:
https://gitlab.example.com/api/v4, https://api.gitflic.example.com.
Адрес должен быть публичным и по https.
Что умеет каждый
| GitHub | GitVerse | GitLab | GitFlic | SourceCraft | |
|---|---|---|---|---|---|
| Сборка по push (вебхук) | да, создаётся сам | да, создаётся сам | да, создаётся сам | да; если API не даст создать — заведите вручную | нет |
| Подпись вебхука | HMAC-SHA256 | не документирована | токен в заголовке | токен в заголовке | — |
| Превью веток | да | да | да | да | нет (нет push-событий) |
| Архив по коммиту (быстрая сборка без клона) | да | нет, полный клон | да | нет, полный клон | нет, полный клон |
| Свой инстанс | нет | нет | да | да | нет |
| Вложенные группы в пути | нет | нет | да (group/sub/repo) | нет | нет |
| Лимит запросов API | стандартный | стандартный | стандартный | 500 в час на токен | стандартный |
SourceCraft: только deploy-hook
В API SourceCraft вебхуков нет вовсе, поэтому автосборки на push у него нет. Штатный путь — CI самого SourceCraft, который после push вызывает deploy-hook Layero:
npx layero@latest hooks create publish --prod
# → https://api.layero.ru/hooks/<токен>
POST на этот адрес запускает сборку из подключённого репозитория. Второй
путь — кнопка «Собрать» в панели или npx layero@latest deploy. Ещё одно
ограничение: API отдаёт только дерево файлов без содержимого, поэтому
фреймворк определяется по именам файлов в корне (package.json, vite.config.ts,
index.html).
GitFlic: лимит запросов
500 запросов в час на токен — общий бюджет на всё, что делает организация, включая сборки. При большом числе проектов на одном токене список репозиториев и сборки могут упереться в лимит; выпустите для Layero отдельный токен, которым не пользуется ничто другое.
Что происходит на push
Одинаково для всех провайдеров с вебхуком:
git push → вебхук провайдера → POST /webhook/v2/{token} (GitHub: /webhook/{project_id})
│
▼
Layero создаёт деплой со SHA коммита
│
▼
Builder забирает код (архив по коммиту или клон),
собирает, выкладывает, переключает окружение
Push в production-ветку (по умолчанию main) публикуется в продакшен;
push в любую другую ветку — превью с адресом <project>-<branch>.layero.app.
Удаление ветки снимает её превью. Подробности —
Окружения, preview и production.