Чтобы продолжить с примером рабочего процесса, его необходимо настроить.
Конфигурацию блока можно получить, либо нажав Редактировать параметры на вкладке , либо щелкнув правой кнопкой мыши на блоке и выбрав Редактировать параметры, чтобы открыть окно . Как только у блока есть параметры, кнопка переключается на .
Чтобы настроить блоки для примера, выполните следующие шаги:
-
Откройте окно для действия
.Список локалей
-
Поля и потребуют динамических значений, которые разрешаются во время выполнения.
-
Нажмите на значок ссылки
для поля и выберите действие
.Получить токены доступа
Значок ссылки становится зеленым, и поле можно редактировать.
-
Синтаксис для доступа к свойствам ссылочного триггера или действия выглядит так:
{{$.path.to.value}}С выводом для
следующим образом:Получить токены доступа
{ "tokens": {"strings_token": "STRINGS_TOKEN", "tms_token": "TMS_TOKEN"} }что делает выражение обязательным для поля
{{$.tokens.strings_token}}. -
Нажмите на значок ссылки
для поля и выберите триггер
.uploads:create
Значок ссылки становится зеленым, и поле можно редактировать.
-
Вывод триггера
выглядит следующим образом:uploads:create
{ "ветвь": { "имя": "my_branch" }, "событие": "uploads:create", "сообщение": "user-1 инициализировал загрузку файла file.yml в проекте name_1672734591_11 в ветви my_branch\n", "проект": { "created_at": "2023-01-03 08:29:51 UTC", "id": "abcdabcdabcdabcd-11", "main_format": "yml", "name": "name_1672734591_10", "point_of_contact": null, "project_image_url": null, "slug": "name_1672734591_10", "updated_at": "2023-01-03 08:29:51 UTC", }, "upload": { "created_at": "2023-01-03 08:29:48 UTC", "filename": "file.yml", "format": "yml", "id": "upload-1", "state": "initialized", "summary": {}, "tag": null, "updated_at": "2023-01-03 08:29:48 UTC", }, "user": { "gravatar_uid": "29a2d1baa67d4ea524cf0f247f7bbb94", "id": "9c365b9a6f77c247c3de959f6152b231", "name": "Джо Сикспак", "username": "user-1" } }создание выражения, необходимого для поля
{{$.project.id}}. -
Нажмите Сохранить.
Окно закрывается, и параметры действия сохраняются.
-
-
Необходим языковой стандарт проекта по умолчанию для создания задания, передав идентификатор в действие
. ДействиеСоздать задание
принимает входные данные в формате JSON, применяет указанный фильтр и затем снова выводит JSON.Преобразовать JSON с помощью jq
-
На вкладке в окне найдите фраза-jq.
Перетащите блок действия
ниже действияПреобразовать JSON с помощью jq
, чтобы соединить их.список языковых стандартов
-
Откройте окно для действия
Преобразовать JSON с помощью jq. -
Выберите из выпадающего поля .
-
Нажмите на значок ссылки
для поля и выберите действие
.список языковых стандартов
Значок ссылки становится зеленым, и поле можно редактировать.
-
Поле принимает входные данные в формате JSON. Специальное фиксированное выражение (
@вместо$) гарантирует, что весь вывод ссылочного действия будет передан в поле.Введите выражение
{{@.outputs.result}}в поле . -
Нажмите на значок ссылки
для поля и выберите действие
.список языковых стандартов
Значок ссылки становится зеленым, и поле можно редактировать.
-
Фильтр списка языковых стандартов, который возвращает новый список, содержащий все элементы, где свойство
по умолчаниюравноtrue, требуется.В проекте может быть только один языковой стандарт по умолчанию, и в списке есть один идентифицируемый и обязательный элемент. Этот элемент доступен напрямую с помощью синтаксиса массива
.[0].Введите выражение
map(select(.default))|.[0]в поле . -
Нажмите Сохранить.
Окно закрывается, и параметры действия сохраняются.
-
-
Теперь действие
можно настроить, и оно будет использовать шаблоны из предыдущих блоков.Создать задание
-
Нажмите на значок ссылки
для поля и выберите действие
.Получить токены доступа
Значок ссылки становится зеленым, и поле можно редактировать.
Введите выражение
{{$.tokens.strings_token}}. -
Нажмите на значок ссылки
для поля и выберите триггер
.uploads:create
Значок ссылки становится зеленым, и поле можно редактировать.
Введите выражение
{{$.project.id}}. -
Нажмите на значок ссылки
для поля и выберите действие
Преобразовать JSON с помощью jq.Значок ссылки становится зеленым, и поле можно редактировать.
Введите выражение
{{@.outputs.result}}. -
Срок выполнения может быть рассчитан с помощью функций sprig или Expr, но для целей этого примера будет использована жестко закодированная дата, понятная API.
В поле введите 2023-12-31T12:00:00Z.
-
Нажмите Сохранить.
Конфигурация сохранена, и детали можно просмотреть на вкладке .
-
-
Каждое действие может иметь одно или несколько условий, объединенных логическими
ИиИЛИ. Эти условия оцениваются во время выполнения, и действие и его дочерние элементы будут выполняться только в том случае, если условие истинно.Чтобы отразить это в примере, выбрав действие
, нажмите Редактировать условия на вкладке или щелкните правой кнопкой мыши на блоке и выберите Редактировать условия.Создать задание
Открывается окно .
-
Следуя шаблонам из предыдущих блоков, свяжите поле с триггером
и введите выражениезагрузки:создать
{{$.upload.tag}}. -
Выберите НЕ из первого выпадающего списка, чтобы инвертировать утверждение.
-
Выберите ЯвляетсяNull из выпадающего списка .
-
Нажмите Сохранить.
Условие представлено на вкладке .
Рабочий процесс остановится на этом этапе, если загрузка не содержит тег (что означает, что не было новых/обновленных ключей/переводов).
-
-
Целевые языковые стандарты теперь обязательны для задания. Для целей примера будут созданы два языковых стандарта; один для испанского (es-ES) и один для немецкого (de-DE). Языковые стандарты будут добавлены к двум действиям
в окне как в шаге 3.Преобразовать JSON с помощью jq
-
В поле обоих действий введите выражение
{{@.outputs.result}}, свяжите с действиеми сохраните параметр.Список языковых стандартов
-
В поле одного действия введите выражение
map(select(.name == "es-ES"))|.[0]и свяжите с действием.Список языковых стандартов
Сохраните параметр.
-
Во втором действии введите выражение
map(select(.name == "de-DE"))|.[0]и свяжите с действием.Список языковых стандартов
Сохраните параметр.
-
-
Языковые стандарты теперь будут применены к созданию задания.
Настройте два действия
с теми же шаблонами, что и ранее определенные.Добавить целевой языковой стандарт к заданию
-
Теперь задание можно запустить.
Настройте действие
с теми же шаблонами, что и ранее определенные.Начать задание