Для выполнения действия необходимы учётные данные:
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:
- Выбирает версию шаблона в реестре
templatePackSource. Версия должна иметь статус «доступна». - Загружает пакет и заполняет параметры с аннотацией
x-ddp-fromиз контекста запуска процесса. - Проверяет значения параметров по схеме
values.yamlи отрисовывает файлы пакета. - Клонирует целевую ветку репозитория. Пустой репозиторий инициализируется.
- Копирует отрисованные файлы, записывает lock-файл
.ddp/template.lock.yamlс идентификатором, версией шаблона и значениями параметров. - Создаёт коммит и отправляет его в целевую ветку.
Ответ
Ответ действия содержит поля 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 | Ошибка клонирования репозитория или отправки коммита |