Para continuar con el flujo de trabajo muestra, será necesario configurarlo.
Se puede acceder a la configuración de bloques haciendo clic en Editar parámetros en la pestaña o haciendo clic con el botón 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 del ejemplo, sigue estos pasos:
-
Abra la ventana
para la acción
.Lista local
-
Los campos
y requerirán valores dinámicos que se resuelvan en tiempo de ejecución.-
Haz clic en el icono de enlace
para el campo y selecciona la acción
.Obtener tokens de acceso
El enlace se vuelve verde y se puede editar el campo.
-
La sintaxis para acceder a las propiedades de un desencadenante o acción al que se hace referencia es:
{{$.path.to.value}}
Con la salida para
Fetch siendo:tokens de acceso
{ "tokens": {"strings_token": "STRINGS_TOKEN", "tms_token": "TMS_TOKEN"} }
haciendo la expresión requerida para el
{{$.tokens.strings_token}}
del campo . -
Haz clic en el icono de enlace
para el campo y selecciona el desencadenante
.uploads:crear
El enlace se vuelve verde y se puede editar el campo.
-
La salida del desencadenante
se asemeja a:uploads:crear
{ "rama": { "name": "my_branch" }, "event": "uploads:crear", "mensaje": "usuario-1 archivo inicializado cargar file.yml en proyecto nombre_1672734591_11 dentro rama my_rama\n", "proyecto": { "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" }, "cargar": { "created_at": "2023-01-03 08:29:48 UTC", "filename": "file.yml", "formato": "yml", "ID": "cargar -1", "state": "inicializado", "resumen": {}, "etiqueta": null, "updated_at": "2023-01-03 08:29:48 UTC" }, "user": { "gravatar_uid": "29a2d1baa67d4ea524cf0f247f7bbb94", "id": "9c365b9a6f77c247c3de959f6152b231", "nombre": "Joe Sixpack", "username": "user-1" } }
haciendo la expresión requerida para el
{{$.project.id}}
de campo del . -
Haz clic en Guardar.
Se cierra la ventana
y se guardan los parámetros de la acción
-
-
Se requiere la localización predeterminada del proyecto para crear un trabajo pasando el ID a la acción
. LaCrear trabajo
toma una entrada JSON, aplica el filtrado especificado y luego vuelve a emitir JSONacción Transformar JSON con jq
-
En la pestaña Phrase jq.
de la ventana , busqueArrastra y suelta el bloque de acciones
debajo de la acciónTransformar JSON con jq
para conectarlos.locales de la lista
-
Abre la ventana
paraTransformar JSON con jq
Action. -
Selecciona
en el campo desplegable . -
Haz clic en el icono de enlace
para el campo y selecciona la acción
.lista local
El enlace se vuelve verde y se puede editar el campo.
-
El campo
toma la entrada JSON. Una expresión fija especial (@
en lugar de$
) garantiza que toda la salida de la acción referenciada se pase al campo.Introduzca el
{{@.outputs.result}}
de expresión en el campo . -
Haz clic en el icono de enlace
del campo y selecciona la acción
.lista local
El enlace se vuelve verde y se puede editar el campo.
-
Se requiere un filtrado de la lista de localizaciones que devuelva una nueva lista con todos los elementos en los que la propiedad
predeterminada
seacierta
.Solo puede haber una localización predeterminada por proyecto y la lista tiene un elemento identificable y requerido. Se accede directamente a ese elemento con la sintaxis de matriz
.[0]
.Introduce la expresión
map(select(.default))|.[0]
en el campo . -
Haz clic en Guardar.
Se cierra la ventana
y se guardan los parámetros de la acción
-
-
Ya se puede configurar la acción
y usará patrones de bloques anteriores.Crear trabajo
-
Haz clic en el icono de enlace
para el campo y selecciona la acción
.Obtener tokens de acceso
El enlace se vuelve verde y se puede editar el campo.
Introduzca la expresión
{{$.tokens.strings_token}}
. -
Haz clic en el icono de enlace
para el campo y selecciona el desencadenante
.uploads:crear
El enlace se vuelve verde y se puede editar el campo.
Introduzca la expresión
{{$.project.id}}
. -
Haz clic en el icono de enlace
para el campo y selecciona
Transformar JSON con jq
Action.El enlace se vuelve verde y se puede editar el campo.
Introduzca la expresión
{{@.outputs.result}}
. -
La fecha de entrega se puede calcular con funciones sprig o Expr, pero para fines de este ejemplo se utilizará una fecha codificada de forma incorrecta entendida por la API.
En el campo 2023-12-31T12:00:00Z.
, introduzca -
Haz clic en Guardar.
Se guarda la configuración y se pueden ver los detalles en la pestaña
.
-
-
Cada acción puede tener una o más condiciones combinadas con
AND
yOR
ló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 se selecciona la acción
, haga clic en Editar condiciones desde la pestaña o haga clic con el botón derecho en el bloque y seleccione Editar condiciones.Crear un trabajo
Se abre la ventana
.-
Siguiendo patrones de bloques anteriores, vincule el campo
al
trigger e introduzca lauploads:cree
{{$.upload.tag}}
de expresión. -
Selecciona NO en la primera lista desplegable para invertir el enunciado.
-
Selecciona IsNull en 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. A efectos del ejemplo, se crearán dos localizaciones: una para español (es-ES) y otra para alemán (de-DE). Se agregarán localizaciones a las dos
acciones en la ventana como en el paso 3.transformar JSON con
-
En el campo
de ambas acciones, introduzca el{{@.outputs.result}}
de expresión, enlace a la acción
y guarde el parámetro.Lista localizaciones
-
En el campo
de una acción, introduzca la expresiónmap(select(.name == "es-ES"))|.[0]
y enlace a la acción
.Lista localizaciones
Guarda el parámetro.
-
En la segunda acción, introduce la expresión
map(select(.name == "de-DE"))|.[0]
y enlaza a la acción
.Lista localizaciones
Guarda el parámetro.
-
-
Ahora las localizaciones se aplicarán a la creación de trabajos.
Configurar las dos
con los mismos patrones definidos anteriormente.Agregar una localización meta a un trabajo
-
Ya se puede iniciar el trabajo.
Configura la acción
con los mismos patrones que se han definido anteriormente.Iniciar un trabajo