Если исходный инстанс GitLab не имеет сетевого доступа к Deckhouse Code, импорт проекта по URL невозможен. Выгрузите проект в файл на исходном инстансе, а затем загрузите этот файл в Deckhouse Code.

Требования

  • Версия GitLab на исходном инстансе совпадает с версией GitLab, на которой работает Deckhouse Code, либо старше её не более чем на две минорные версии. Например, если Deckhouse Code работает на GitLab 19.1, совместимы экспорты из GitLab 19.1, 19.0 и 18.11.
  • У вас есть роль Maintainer или Owner на проекте, который нужно экспортировать.
  • У вас есть роль Maintainer или Owner на целевой группе в Deckhouse Code.

Шаги импорта

Шаг 1. Включите экспорт проектов на исходном инстансе

Администратор исходного инстанса GitLab включает функцию экспорта:

  1. Перейдите в «Admin» → «Настройки» → «Основные».
  2. Разверните «Настройки импорта и экспорта».
  3. В разделе «Экспорт проекта» выберите «Включен».
  4. Нажмите «Сохранить изменения».

Если экспорт проектов на исходном инстансе уже включён, пропустите этот шаг.

Шаг 2. Экспортируйте проект

  1. Откройте проект, который нужно перенести.
  2. Перейдите в «Настройки» → «Основные».
  3. Разверните «Расширенные».
  4. Нажмите «Экспорт проекта».
  5. После формирования экспорта скачайте файл (архив .tar.gz) по ссылке из письма или нажав «Скачать экспортируемые данные» на той же странице.

Сохраните экспортированный файл на рабочем компьютере: он понадобится на следующем шаге для загрузки в Deckhouse Code.

Шаг 3. Включите источник импорта «Экспорт в Deckhouse Code»

Администратор инстанса Deckhouse Code включает источник импорта:

  1. Перейдите в «Admin» → «Настройки» → «Основные».
  2. Разверните «Настройки импорта и экспорта».
  3. В разделе «Источники импорта» установите флажок «Экспорт в Deckhouse Code».
  4. Нажмите «Сохранить изменения».

Шаг 4. Импортируйте проект

  1. В правом верхнем углу выберите «Создать новый» (+) → «Новый проект/репозиторий».
  2. Выберите «Импортировать проект».
  3. В поле «Импортировать проект из» выберите «Экспорт в Deckhouse Code».
  4. Введите имя проекта и URL, затем выберите экспортированный файл.
  5. Нажмите «Импортировать проект».

Проверить статус импорта можно через API импорта проекта.

Для крупных проектов вместо веб-интерфейса используйте Rake-задачи для импорта проекта.

Что переносится, а что нет

Переносится: репозиторий, wiki, задачи, запросы на слияние, метки, вехи, сниппеты, релизы, прямые участники проекта, LFS-объекты, доски задач, архивные CI/CD-пайплайны, защищённые ветки и теги, правила отправки изменений.

Не переносится: CI/CD-переменные, вебхуки, логи и артефакты CI/CD-задач, образы package и container registry, зашифрованные токены, deploy keys, триггеры пайплайнов, политики безопасности.

Полный список экспортируемых и неэкспортируемых данных приведён в справке GitLab по экспорту и импорту проектов.