Главная / Возможности / Код / GitNest
GitNest — приватный хостинг Git с клонированием и пушем в osFoundry
Настоящий Git по HTTPS для репозиториев вашего рабочего пространства — с токенами доступа, которыми управляете вы.
GitNest — встроенный Git-хостинг osFoundry. У каждого репозитория в вашем рабочем пространстве есть настоящий Git-remote: его можно клонировать и пушить в него по HTTPS любым обычным Git-клиентом — без плагинов, без экспорта, без второй учётной записи. Аутентификация идёт по токенам доступа рабочего пространства, которые вы создаёте и отзываете сами. Вы клонируете тот же репозиторий, который редактирует веб-IDE и читает Maestro, поэтому работа на вашей машине и работа в рабочем пространстве — одна и та же история коммитов.
Кратко
- Клонируйте любой репозиторий рабочего пространства и пушьте в него по HTTPS обычным Git.
- Аутентификация по токенам доступа, которые вы сами создаёте, ограничиваете и отзываете.
- Репозитории по умолчанию доступны только внутри своего рабочего пространства.
- За веб-IDE стоит тот же репозиторий, поэтому пуш сразу виден в рабочем пространстве.
- Работает с любым Git-клиентом — из командной строки, из IDE или из задачи CI.
Что это
GitNest — это Git-remote, принадлежащий вашему рабочему пространству. Это не зеркало репозитория, размещённого где-то ещё, и не замена публичному хостингу open source: здесь живёт собственный код вашего рабочего пространства, доступный с вашей машины через тот же Git, которым вы уже пользуетесь. Поскольку это настоящий Git, а не экспорт, привычные команды работают без изменений: клонирование, fetch, ветки, пуш и любые инструменты, построенные поверх них.
Ключевые возможности
- Клонирование, fetch и пуш по протоколу smart-HTTP на эталонной реализации Git.
- Персональные токены доступа со сроком действия и отзывом в одно нажатие.
- Авторизация в границах рабочего пространства — токен достаёт только до репозиториев своего пространства.
- Права на чтение и запись задаются отдельно для каждого репозитория, поэтому токену можно запретить пуш.
- Пуши попадают в рабочее пространство, так что веб-IDE и Maestro видят то, что вы отправили.
- Опубликованные версии защищены: пуш, который переписал бы такую версию, отклоняется, а не применяется молча.
Как сделать это в osFoundry
- Создайте токен доступа — Откройте «Настройки» → токены репозиториев и создайте токен. Он показывается один раз, поэтому скопируйте его сразу. Задайте срок действия — токен без срока действия придётся держать в голове вечно.
- Скопируйте URL для клонирования — Откройте репозиторий в разделе «Код» и воспользуйтесь панелью клонирования. В URL зашито ваше рабочее пространство: Git-клиент не умеет отправлять произвольные заголовки, поэтому адрес должен быть самодостаточным.
- Клонируйте репозиторий — Выполните git clone с этим URL. Когда Git спросит пароль, введите токен; имя пользователя может быть любым. Менеджер учётных данных запомнит его.
- Коммитьте и пушьте как обычно — Создавайте ветки, коммитьте и пушьте теми же командами, что и всегда. В этом процессе нет ничего специфичного для osFoundry.
- Посмотрите результат в рабочем пространстве — Пуш отражается обратно в рабочее пространство: ветка и её файлы появляются в веб-IDE и становятся доступны Maestro.
Сравнение osFoundry
| Возможность | osFoundry | Большинство других инструментов |
|---|
| Где лежит код | Настоящий Git-remote внутри вашего рабочего пространства. | Отдельная учётная запись на хостинге, подключённая интеграцией. |
| Как забрать код | git clone — стандартная команда, без шага экспорта. | Скачать архив или поставить плагин для синхронизации. |
| Учётные данные | Токены рабочего пространства со сроком действия, которые вы создаёте и отзываете. | Пароль от учётной записи или OAuth-доступ, выданный третьей стороне. |
| Редактор и remote | За обоими стоит один репозиторий, поэтому расхождений не бывает. | Внешний репозиторий, зеркалируемый в редактор и синхронизируемый фоновой задачей. |
Сценарии использования
- Разработчик, который предпочитает локальное окружение: Клонирует репозиторий рабочего пространства, работает в своём редакторе со своими инструментами и пушит обратно. Команда видит изменения в рабочем пространстве, и никому не приходится ничего экспортировать.
- Пайплайн CI: Задача сборки клонирует репозиторий по ограниченному токену со сроком действия, прогоняет тесты и обходится без человеческой учётной записи и личных учётных данных.
- Команда, которая не хочет держать код на публичном хостинге: Репозитории остаются приватными внутри рабочего пространства, но работа идёт обычным Git — приватность не приходится покупать ценой привычных инструментов.
Часто задаваемые вопросы
Что такое GitNest?
GitNest — встроенный Git-хостинг osFoundry. Он даёт каждому репозиторию в вашем рабочем пространстве настоящий Git-remote, который можно клонировать и в который можно пушить по HTTPS любым обычным Git-клиентом.
GitNest — это замена GitHub?
Нет, и такой цели нет. GitHub остаётся местом для публичного open source и сообщества вокруг него. В GitNest живут собственные репозитории вашего рабочего пространства, чтобы с ними можно было работать локально и в osFoundry, не перегоняя код между двумя системами.
Можно ли пользоваться привычными командами Git?
Да. GitNest говорит на стандартном протоколе Git smart-HTTP через эталонную реализацию самого Git, поэтому клонирование, fetch, ветвление и пуш работают ровно так же, как везде.
Поддерживает ли GitNest SSH?
Пока нет — GitNest работает только по HTTPS. Аутентификация идёт по токену доступа рабочего пространства, а не по SSH-ключу.
Как проходит аутентификация?
Создайте токен доступа в настройках и вводите его как пароль, когда Git его запрашивает. Имя пользователя не проверяется. Токен показывается один раз, ему можно задать срок действия и его можно отозвать в любой момент.
Что произойдёт, если отозвать токен?
Он перестаёт работать сразу же, на следующем запросе. Всё, что уже склонировано на машину, там и останется: отзыв токена закрывает будущий доступ, но не удаляет рабочую копию.
Мои репозитории приватные?
Да. По умолчанию репозитории доступны только внутри своего рабочего пространства, а токен достаёт лишь до репозиториев того пространства, которому он принадлежит.
Попадает ли пуш в рабочее пространство?
Да. После того как пуш принят, ветка и её файлы отражаются обратно в рабочее пространство: веб-IDE показывает отправленное, а Maestro может это прочитать.
Можно ли запушить в опубликованную версию?
Нет, и такой пуш отклоняется сразу, а не применяется наполовину. Опубликованная версия — неизменяемая запись; если пуш переписал бы её, GitNest отклоняет его и сообщает, о какой ветке речь, оставляя ваш репозиторий нетронутым.
Можно ли использовать GitNest из CI?
Да. Создайте токен со сроком действия, положите его в хранилище секретов вашего CI-провайдера и клонируйте с ним, как с любым другим Git-remote.
Цены
Хранение репозитория входит в ваше рабочее пространство — отдельной платы ни за репозиторий, ни за их количество нет. Трафик клонирования и пушей учитывается в потреблении рабочего пространства наравне с остальным трафиком.
Связанные возможности