Для выполнения действия необходимы учётные данные:

  • password — пароль (токен) пользователя, от имени которого будет выполнено действие;
  • username — имя пользователя, от имени которого будет выполнено действие.

CreateRepositoryFromTemplatePack — заполняет репозиторий файлами пакета шаблона из реестра шаблонов. В интерфейсе действие называется «Создать репозиторий из пакета шаблонов».

Действие загружает версию пакета, отрисовывает файлы с переданными значениями параметров, записывает в репозиторий lock-файл .ddp/template.lock.yaml и отправляет коммит в целевую ветку. По lock-файлу портал затем обновляет репозиторий до новых версий шаблона.

Пример запроса

targetRepositoryUrl: https://gitlab.example.com/group/billing-api.git
targetBranch: main
templateId: go-service
templateVersion: 1.2.0
templatePackSource: company
values:
  port: 8080

Спецификация запроса

НазваниеОбязательностьОписаниеЗначение по умолчанию
targetRepositoryUrlДаHTTPS-адрес репозитория. Хост должен совпадать с хостом внешнего сервиса действия-
targetBranchНетВетка, в которую отправляется коммитЗначение «Ветка по умолчанию» реестра шаблонов, иначе main
templateIdДаИдентификатор шаблона-
templatePackSourceДаНазвание подключения в реестре шаблонов, из которого берётся шаблон-
templateVersionНетВерсия шаблона в формате semverПоследняя версия шаблона
valuesНетЗначения параметров шаблона. Состав параметров задаёт файл values.yaml пакета-
additionalIgnorePatternsНетДополнительные glob-шаблоны путей, которые не отрисовываются и не копируются в репозиторий-
commitMessageНетСообщение коммитаchore(template): scaffold from <templateId>@<version>

Алгоритм работы

DDP:

  1. Выбирает версию шаблона в реестре templatePackSource. Версия должна иметь статус «доступна».
  2. Загружает пакет и заполняет параметры с аннотацией x-ddp-from из контекста запуска процесса.
  3. Проверяет значения параметров по схеме values.yaml и отрисовывает файлы пакета.
  4. Клонирует целевую ветку репозитория. Пустой репозиторий инициализируется.
  5. Копирует отрисованные файлы, записывает lock-файл .ddp/template.lock.yaml с идентификатором, версией шаблона и значениями параметров.
  6. Создаёт коммит и отправляет его в целевую ветку.

Ответ

Ответ действия содержит поля templateId, templateVersion, templateSource, targetBranch, commitSha, а также values.request — переданные значения параметров и values.merged — итоговые значения с учётом значений по умолчанию.

Ошибки

Сообщение об ошибке начинается с кода. Основные коды:

КодПричина
invalid_requestНе заданы templateId, templatePackSource или версия не в формате semver
pack_unavailableПодключение templatePackSource не найдено или версия недоступна
pack_not_foundВерсия шаблона не найдена
pack_deprecatedВерсия шаблона отозвана
values_invalidЗначения параметров не соответствуют схеме values.yaml или не найден путь x-ddp-from в контексте запуска
render_failedОшибка шаблонизации файлов пакета
clone_failed, push_failedОшибка клонирования репозитория или отправки коммита