Hostim Docs

Подключение приватного репозитория

Чтобы собрать сервис, платформе нужен доступ на чтение вашего репозитория. Как именно предоставляется доступ, зависит от того, где лежит код.

Когда нужен deploy key

Есть ровно один случай, когда доступ настраивать не нужно, — всё остальное требует ключа:

РепозиторийКак подключается
Публичный репозиторий на GitHubпо HTTPS, без ключа
Приватный репозиторий на GitHubdeploy key
Любой репозиторий на GitLab, Bitbucket, Gitea, самохосте (публичный или приватный)deploy key

Клонирование по HTTPS без ключа возможно только для публичного GitHub. Для приватного GitHub и для любого другого провайдера — независимо от публичности — используется deploy key по SSH.

Что такое deploy key

Deploy key — это SSH-ключ, дающий доступ только на чтение и только к одному репозиторию. Платформа генерирует пару ключей сама: приватную часть хранит у себя, а публичную отдаёт вам, чтобы вы добавили её в репозиторий. Это безопасно — по этому ключу нельзя ни изменить код, ни попасть в другие репозитории.

Как подключить

  1. При создании сервиса укажите адрес репозитория и отметьте, что он приватный (или выберите не-GitHub провайдера).
  2. Платформа сгенерирует и покажет публичный ключ.
  3. Скопируйте его и добавьте в настройки репозитория, в раздел Deploy Keys (в GitLab и Bitbucket он может называться «Deploy keys» / «Access keys»). Доступа на чтение достаточно.
  4. Запустите деплой.

Форма адреса репозитория

Адрес можно вводить в любом виде — платформа сама приведёт его к нужной форме клонирования:

https://github.com/owner/repo
git@github.com:owner/repo.git
ssh://git@git.example.com/owner/repo.git

Два ограничения для доступа по SSH:

  • Пользователь SSH — только git. Другие имена пользователя не поддерживаются.
  • Нестандартный порт SSH — поддерживается через форму ssh://: ssh://git@git.example.com:2222/owner/repo.git. Это нужно для самохостинга на нестандартном порту.

Частые ошибки

СимптомПричинаРешение
Клонирование не проходит: доступ запрещёнПубличный ключ не добавлен в репозиторий или добавлен не в тотДобавьте показанный ключ в Deploy Keys нужного репозитория
Приватный GitHub клонируется по HTTPS и падаетДля приватного репозитория нужен ключОтметьте репозиторий как приватный — платформа выдаст deploy key
Самохост на своём порту недоступенПорт не указанВведите адрес в форме ssh://git@host:<порт>/owner/repo.git

Дальше