Para Continuar con el flujo de trabajo de muestra, será necesario configurarlo.
Se puede acceder a la configuración del bloque haciendo clic en Editar parámetros en la , o haciendo clic derecho en el bloque y seleccionando Editar parámetros para abrir la ventana . Una vez que un bloque tiene parámetros, el botón cambia a .
Para configurar los bloques para el ejemplo, siga estos pasos:
-
Abra la ventana para la acción
.List locales
-
Los campos y requerirán valores dinámicos que se resuelven en tiempo de ejecución.
-
Haga clic en el icono de enlace
para el campo y seleccione la acción
.Fetch access tokens
El enlace se vuelve verde y el campo se puede editar.
-
La sintaxis para acceder a las propiedades de un disparador o acción referenciada es:
{{$.path.to.value}}Con la salida para
siendo:Fetch access tokens
{ "tokens": {"strings_token": "STRINGS_TOKEN", "tms_token": "TMS_TOKEN"} }haciendo que la expresión requerida para el campo sea
{{$.tokens.strings_token}}. -
Haga clic en el icono de enlace
para el campo y seleccione el disparador
.uploads:create
El enlace se vuelve verde y el campo se puede editar.
-
La salida del disparador
se parece a:uploads:create
{ "branch": { "name": "my_branch" }, "event": "uploads:create", "message": "user-1 initialized file upload file.yml in project name_1672734591_11 within branch my_branch\n", "project": { "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": "Joe Sixpack", "username": "user-1" } }haciendo que la expresión requerida para el campo sea
{{$.project.id}}. -
Haz clic en Guardar.
La ventana se cierra y los parámetros para la acción se guardan
-
-
La localización predeterminada del proyecto es necesaria para Crear un trabajo pasando el ID a la acción
. La acciónCrear trabajo
toma una salida JSON, aplica el filtrar especificado y luego vuelve a generar JSON.Transform JSON with jq
-
Desde la pestaña en la ventana , busque phrase-jq.
Arrastre y suelte el bloque de acción
debajo de la acciónTransform JSON with jq
para conectarlos.lista localización
-
Abra la ventana para la acción
Transform JSON with jq. -
Seleccionar desde el campo desplegable .
-
Haga clic en el icono de enlace
para el campo y Seleccionar la acción
.lista localización
El enlace se vuelve verde y el campo se puede editar.
-
El campo toma la salida JSON. Una expresión fija especial (
@en lugar de$) asegura que toda la salida de la acción referenciada se pase al campo.Introduzca la expresión
{{@.outputs.result}}en el campo . -
Haga clic en el icono de enlace
para el campo y Seleccionar la acción
.lista localización
El enlace se vuelve verde y el campo se puede editar.
-
Se requiere un filtrar de la lista de localización que devuelva una nueva lista que contenga todos los elementos donde la propiedad
defaultseatrue.Solo puede haber una localización predeterminada por proyecto y la lista tiene un elemento identificable y necesario. Ese elemento se accede directamente con la sintaxis de matriz
.[0].Introduzca la expresión
map(select(.default))|.[0]en el campo . -
Haz clic en Guardar.
La ventana se cierra y los parámetros para la acción se guardan
-
-
La acción
ahora se puede configurar y usará patrones de bloques anteriores.Crear un trabajo
-
Haga clic en el icono de enlace
para el campo y seleccione la acción
.Fetch access tokens
El enlace se vuelve verde y el campo se puede editar.
Introduzca la expresión
{{$.tokens.strings_token}}. -
Haga clic en el icono de enlace
para el campo y seleccione el disparador
.uploads:create
El enlace se vuelve verde y el campo se puede editar.
Introduzca la expresión
{{$.project.id}}. -
Haga clic en el icono de enlace
para el campo y Seleccionar la acción
Transform JSON with jq.El enlace se vuelve verde y el campo se puede editar.
Introduzca la expresión
{{@.outputs.result}}. -
La fecha de vencimiento puede ser calculada con funciones sprig o Expr, pero para los propósitos de este ejemplo se usará una fecha codificada entendida por la API.
En el campo , introduzca 2023-12-31T12:00:00Z.
-
Haz clic en Guardar.
La configuración se guarda y los detalles se pueden ver en la pestaña .
-
-
Cada acción puede tener una o más condiciones combinadas con
ANDyORlógicos. Estas condiciones se evalúan en tiempo de ejecución y la acción y sus elementos secundarios solo se ejecutarán si la condición se evalúa como verdadera.Para reflejar esto en el ejemplo, mientras tiene seleccionada la acción
, haga clic en editar condiciones desde la pestaña o haga clic derecho en el bloque y seleccione editar condiciones.Crear un trabajo
Se abre la ventana .
-
Siguiendo los patrones de bloques anteriores, vincule el campo al disparador
e ingrese la expresiónuploads:create
{{$.upload.tag}}. -
Seleccionar NOT de la primera lista desplegable para invertir la declaración.
-
Seleccionar IsNull de la lista desplegable .
-
Haz clic en Guardar.
La condición se presenta en la pestaña .
El flujo de trabajo se detendrá en este punto si la carga no contiene una etiqueta (lo que significa que no hubo claves/traducciones nuevas/actualizadas).
-
-
Ahora se requieren localizaciones meta para el trabajo. Para los fines del ejemplo, se crearán dos localizaciones; una para español (es-ES) y otra para alemán (de-DE). Las localizaciones se agregarán a las dos acciones
en la ventana como en el paso 3.Transform JSON with jq
-
En el campo de ambas acciones, ingrese la expresión
{{@.outputs.result}}, vincule a la accióny guarde el parámetro.List locales
-
En el campo de una acción, ingrese la expresión
map(seleccionar(.name == \"es-ES\"))|.[0]y vincule a la acción.List locales
Guardar el parámetro.
-
En la segunda acción, ingrese la expresión
map(seleccionar(.name == \"de-DE\"))|.[0]y vincule a la acción.List locales
Guardar el parámetro.
-
-
Las localizaciones ahora se aplicarán a la creación del trabajo.
Configure las dos acciones
con los mismos patrones definidos anteriormente.Add a target locale to a job
-
El trabajo ahora se puede iniciar.
Configure la acción
con los mismos patrones definidos anteriormente.Iniciar un trabajo