Публичные репозитории в разделе «Git репозитории» добавлять не нужно: для них достаточно указать обычный HTTPS- или SSH-URL при создании бота, без токена и без этой формы. Ниже описано подключение только приватных репозиториев (токен, deploy key и т.п.). Источники иллюстраций
- Скриншоты дашборда Bothost и формы admin-repos — материалы bothost.ru (см. разделы ниже).
- Скриншоты интерфейса GitHub (настройки, Developer settings, токены) взяты из ответов в теме Stack Overflow git — Clone a private repository (GitHub); изображения с хостинга Stack Exchange (
i.sstatic.net). Пользовательский контент на Stack Overflow распространяется по лицензии CC BY-SA 4.0 с указанием источника.
Дашборд Bothost: куда нажать
В личном кабинете откройте раздел Git репозитории — фиолетовая кнопка с иконкой ветки в верхней панели (рядом с «Создать бота» и «Тикеты поддержки»). Оттуда настраивается привязка репозитория к боту.
Форма «Подключение приватного репозитория»
Откроется страница Подключение приватного репозитория: выберите способ доступа — SSH (deploy key) или HTTPS (логин/пароль или токен). В блоке «Подключить репозиторий» заполните поля:| Поле | Что указать |
|---|---|
| URL репозитория | SSH или HTTPS, например git@github.com:org/repo.git или https://github.com/org/repo.git |
| Ветка | Обычно main или master |
| Способ доступа | Для токена GitHub — HTTPS (логин/пароль или токен) |
| Username (для HTTPS) | Для GitHub с PAT часто x-access-token, для GitLab — oauth2, либо ваш логин |
| Пароль/Токен | Personal Access Token или пароль (если допускает хостинг) |
Подсказки на странице: для GitHub при использовании токена рекомендуется username
x-access-token, для GitLab — oauth2. Если в конце URL нет суффикса .git, он может быть добавлен автоматически при сохранении.
🎯 Минимальные права для деплоя
Для деплоя бота из приватного репозитория клиенту нужно дать только права на чтение (Read).GitHub
Минимальные права:- ✅ Read (чтение кода) - достаточно для клонирования
git://github.com/... (только чтение по этому протоколу). Нужен HTTPS с токеном или SSH. Если у аккаунта включена 2FA, при git clone по HTTPS вместо пароля используйте Personal Access Token.
Как дать доступ:
Вариант 1: Personal Access Token (рекомендуется)
Создание classic-токена (Tokens (classic)) — пошагово:- Откройте Settings профиля на GitHub:
- Внизу списка слева выберите Developer settings:
- Personal access tokens → Tokens (classic) → Generate new token (classic):
- Укажите название, срок действия и отметьте
repo(для приватных репозиториев без этой области клонирование не получится). Для только публичных репозиториев достаточноpublic_repo:
- Нажмите Generate token:
- Сразу скопируйте токен — полный текст потом может быть недоступен:
Кратко (тот же путь текстом): Settings → Developer settings → Personal access tokens → Tokens (classic) → Scopes: repo (приватные) или public_repo (публичные).
Опционально — Fine-grained token (узкие права, в том числе на один репозиторий): Settings → Developer settings → Fine-grained tokens → Generate new token. Для сценария «только чтение кода для деплоя» задайте Repository access и для выбранного репозитория право Contents: Read-only.
- В Bothost при добавлении репозитория:
x-access-token (автоматически)
- Token: вставляется токен клиента
Права токена:
✅ repo (для приватных репозиториев)
- repo:status
- repo_deployment
- public_repo
- repo:invite
- security_eventsВариант 2: Deploy Key (для одного репозитория)
- На manager ноде сгенерировать SSH ключ:
ssh-keygen -t ed25519 -C "bothost-deploy" -f ~/.ssh/bothost_deploy_key - Добавить публичный ключ в репозиторий:
Bothost Deploy
- Key: содержимое ~/.ssh/bothost_deploy_key.pub
- ✅ Allow write access: НЕ включать (только чтение)
Права Deploy Key:
- ✅ Read-only доступ к репозиторию
- ❌ Не может изменять код
- ❌ Не может создавать issues/pull requests
Вариант 3: GitHub App (для организации)
Для организаций можно создать GitHub App с минимальными правами:- ✅ Contents: Read (чтение кода)
- ✅ Metadata: Read (метаданные)
GitLab
Минимальные права:- ✅ Guest или Reporter роль
Вариант 1: Personal Access Token
Создайте Personal Access Token в GitLab:- User Settings → Access Tokens
- Scopes: только
read_repository
- Тип: HTTPS
- Username:
oauth2 - Token: ваш токен
read_repository (чтение репозитория, клонирование для деплоя).
Вариант 2: Deploy Token
- В репозитории:
Bothost Deploy
- Scopes: только read_repository
- Expires: по желанию
- Использовать:
Bitbucket
Минимальные права:- ✅ Read доступ
Personal Access Token
- Клиент создает App Password:
Repositories: Read
- В Bothost:
🔒 Безопасность
✅ Что безопасно:
- Deploy Key (SSH) - самый безопасный вариант
- Personal Access Token с минимальными правами
- Deploy Token (GitLab)
❌ Что НЕ безопасно:
- Полный доступ к аккаунту
- Токены с правами на изменение кода
📝 Инструкция для клиента
GitHub
Скриншоты интерфейса GitHub см. в разделе «Вариант 1: Personal Access Token» выше.- Перейти в Settings → Developer settings → Personal access tokens → Tokens (classic)
- Нажать "Generate new token (classic)"
- Название:
Bothost Deploy - Expiration: выбрать срок (рекомендуется 1 год)
- Scopes: выбрать только
repo(для приватных) илиpublic_repo(для публичных) - Нажать "Generate token"
- Скопировать токен (показывается только один раз!)
- В Bothost при добавлении репозитория:
GitLab
- Перейти в User Settings → Access Tokens
- Token name:
Bothost Deploy - Expiration date: выбрать срок
- Scopes: выбрать только
read_repository - Нажать "Create personal access token"
- Скопировать токен
- В Bothost:
🔄 Обновление токенов
Если токен истек или был скомпрометирован:- Клиент создает новый токен
- В Bothost обновляет репозиторий:
- Старый токен можно отозвать в настройках GitHub/GitLab
✅ Рекомендации
Для клиента:
- Использовать отдельный токен для Bothost
- Установить срок действия
- Минимальные права
Для Bothost:
- Хранить токены в зашифрованном виде
- Использовать HTTPS вместо SSH
- Проверять доступность репозитория
🆘 Решение проблем
Ошибка: "Repository not found" или "Authentication failed"
Причины:- Токен неверный или истек
- Токен не имеет прав на репозиторий
- Репозиторий удален или переименован
- Проверить токен в настройках GitHub/GitLab
- Создать новый токен с правильными правами
- Обновить токен в Bothost
Ошибка: "Permission denied"
Причины:- Токен не имеет прав на чтение
- Репозиторий приватный, но токен для публичных
- Создать токен с правами
repo(для приватных) - Проверить что репозиторий доступен с этим токеном
📋 Чеклист для клиента
- [ ] Создан Personal Access Token
- [ ] Токен имеет только права на чтение (
repoилиread_repository) - [ ] Установлен срок действия токена
- [ ] Токен скопирован и вставлен в Bothost
- [ ] Репозиторий успешно добавлен в Bothost
- [ ] Тестовый деплой прошел успешно