Pular para o conteúdo

Gatilhos das automações

Os cinco tipos de gatilho: horário, Git do projeto, evento do Elyra, GitHub ou GitLab e webhook, com os eventos e filtros de cada um.

Ver Markdown

O gatilho é o “quando” da automação. Na frase do editor, clique em quando isto acontecer e escolha um dos cinco tipos.

Lista de gatilhos do editor: Horário, Git do projeto, Evento do Elyra, GitHub ou GitLab e Webhook

Gatilho Dispara quando Precisa de
Horário Chega o horário marcado Elyra aberto
Git do projeto Há commit, push, troca de branch, merge ou conflito no repositório do projeto Elyra aberto
Evento do Elyra Um agente termina ou espera você, chega mensagem a um cartão, ou um comando falha Elyra aberto
GitHub ou GitLab Um PR é aberto ou mergeado, uma review é pedida, o CI falha ou uma issue é aberta Elyra Cloud ativo
Webhook Outro sistema faz uma chamada assinada ao endereço da automação Elyra Cloud ativo

Os dois últimos aparecem como Requer Elyra Cloud ativo e ficam indisponíveis enquanto o Cloud não estiver ativo neste computador.

Horário

Escolha a repetição:

Forma Exemplo Quando usar
Todo dia Todo dia às 9:00 Quase sempre
Dias úteis Dias úteis às 9:00 Rotina de trabalho
Semanal Segundas às 9:00 Uma vez por semana
A cada hora A cada hora, no minuto 30 Escolhe-se o minuto
Cron 0 9 * * 1-5 Horário específico

O cron tem cinco campos: minuto, hora, dia, mês e dia da semana. O editor diz se a expressão é válida. O fuso horário também é escolhido (por padrão, o deste computador): um “às 9” no fuso errado roda na hora errada.

Se o Elyra estiver fechado no horário, a execução não acontece e fica registrada no histórico.

Git do projeto

Marque um ou mais eventos:

Evento Quando
commit Um commit novo no repositório
push O push é percebido pelo avanço da branch remota; é uma aproximação
troca de branch A branch em uso mudou
merge Houve um merge
conflito Apareceu um conflito

O campo Só na branch limita o gatilho: vazio, vale qualquer branch; com um nome, só dispara quando o evento acontece com essa branch em uso.

O Elyra observa o repositório do projeto, inclusive por SSH, sem instalar nada na pasta .git.

Evento do Elyra

Evento Quando
um agente terminar Um agente de um cartão do projeto termina o trabalho
um agente esperar você Um agente fica esperando uma resposta ou uma decisão
chegar mensagem para um cartão Uma mensagem chega a um cartão
um comando falhar ou o terminal sair com erro Um terminal termina com erro
uma tarefa ser criada no Quadro Uma tarefa nova é gravada no Quadro de trabalho do projeto
uma tarefa ser movida para uma coluna Uma tarefa muda de coluna; escolha a coluna de destino no editor

Os eventos do Quadro saem da própria gravação, sem polling. A automação que fez a mudança não dispara a si mesma; outras automações podem reagir, com o limite de disparos protegendo contra ciclos. O campo De qual cartão limita os eventos de cartão; o padrão é Qualquer cartão do projeto.

GitHub ou GitLab

Informe o provedor, o repositório no formato dono/nome e os eventos:

Evento GitHub GitLab
PR aberto Pull request aberto Merge request aberto
PR mergeado Pull request fechado como mergeado Merge request mergeado
Review pedida Review solicitada num pull request Não há evento equivalente
CI falhou Execução de workflow, check suite ou check run com falha Pipeline com falha
Issue aberta Issue aberta Issue aberta

Depois de salvar, abra o detalhe da automação: ali ficam o endereço (Copiar endereço) e o segredo, que você cola no provedor. O passo a passo está em Webhook, GitHub e GitLab.

Webhook

Uma chamada de outro sistema dispara a automação. Também depende do Elyra Cloud, endereço e segredo. O passo a passo, com curl, está em Webhook, GitHub e GitLab.

Pela linha de comando

O gatilho vai em --trigger-json, um objeto JSON com o campo kind:

kind Campos Exemplo
schedule expression (cron ou RRULE), timezone; opcional dtstart {"kind":"schedule","timezone":"America/Sao_Paulo","expression":"0 22 * * *"}
git-local repoId, events (commit, push, branch-change, merge, conflict), branch (opcional) {"kind":"git-local","repoId":"meu-projeto","events":["commit"]}
elyra-event events (agent-finished, agent-waiting, card-message, terminal-error, work-item-created, work-item-moved), cardId (opcional), columnId (obrigatório com work-item-moved) {"kind":"elyra-event","events":["work-item-moved"],"columnId":"done"}
git-remote provider (github ou gitlab), repo (dono/nome), events (pr-opened, pr-merged, review-requested, ci-failed, issue-opened) {"kind":"git-remote","provider":"github","repo":"empresa/projeto","events":["pr-opened"]}
webhook nenhum {"kind":"webhook"}
  • Num gatilho schedule, os campos de horário vêm do próprio JSON; não combine com --trigger, --schedule, --time, --day ou --timezone.
  • Para qualquer outro kind, --trigger, --prompt e --provider continuam obrigatórios: são o texto que versões antigas do Elyra leem.
  • Ao editar com elyra automations edit, --trigger-json troca o gatilho inteiro.

Limites que valem para todos

  • Um disparo a cada 30 segundos, por automação. Se o gatilho dispara de novo antes disso, a execução seguinte não acontece e fica no histórico como “Não executada: limite de disparos”.
  • Fila de abertura. Se chegarem mais de 50 eventos enquanto o Elyra está abrindo, os excedentes são descartados e o histórico mostra “Não executada: fila de eventos cheia”.
  • Sem Cloud, sem fila. Se o Cloud estiver desligado quando o GitHub, o GitLab ou o outro sistema chamar, ele precisa reenviar a chamada: o Elyra não guarda uma fila.

Ver também