Testar grátis
7 min leitura Guide 264 of 877

Automação de Workflow no GitScrum

Tarefas repetitivas manuais desperdiçam tempo de desenvolvedor e introduzem inconsistência. A automação de workflow no GitScrum lida com trabalho rotineiro automaticamente—movendo tarefas, enviando notificações, atribuindo trabalho—para que equipes possam focar em construir software ao invés de gerenciar processo.

Benefícios da Automação

Processo ManualAutomatizado
Lembrar de atualizar statusStatus atualiza automaticamente
Notificar pessoas manualmenteNotificações disparadas
Rastrear datas de vencimentoDatas calculadas
Atribuir baseado em regrasAuto-atribuído
Verificar itens paradosLembretes automáticos

Básico de Automação

Gatilho → Condição → Ação

ESTRUTURA DE AUTOMAÇÃO
══════════════════════

TODA AUTOMAÇÃO TEM:
─────────────────────────────────────
1. GATILHO
   "Quando algo acontece..."
   ├── Tarefa criada
   ├── Status mudou
   ├── Campo atualizado
   ├── Data de vencimento chegando
   ├── Tempo passou
   └── Evento externo (webhook)

2. CONDIÇÃO (opcional)
   "Se critérios atendidos..."
   ├── Tipo de tarefa é Bug
   ├── Prioridade é Alta
   ├── Label contém "urgente"
   ├── Assignee está vazio
   └── Sprint é atual

3. AÇÃO
   "Então faça isso..."
   ├── Mudar status
   ├── Atribuir para pessoa
   ├── Enviar notificação
   ├── Atualizar campo
   ├── Adicionar label
   └── Criar tarefa linkada

EXEMPLO:
─────────────────────────────────────
GATILHO: Status mudou para "Code Review"
CONDIÇÃO: Assignee não está vazio
AÇÃO: 
  ├── Notificar Assignee
  └── Definir Review Due Date para +24 horas

Em português claro:
"Quando uma tarefa move para Code Review,
notifique o assignee e defina data limite
de review para 24 horas a partir de agora."

Automações Comuns

Baseadas em Status

AUTOMAÇÕES DE MUDANÇA DE STATUS
═══════════════════════════════

1. AUTO-ATRIBUIR NO STATUS:
─────────────────────────────────────
Gatilho: Status → "Teste QA"
Ação: Atribuir para QA Lead
Razão: Encaminhar para pessoa certa automaticamente

2. NOTIFICAR AO BLOQUEAR:
─────────────────────────────────────
Gatilho: Status → "Bloqueado"
Condição: Tem link de blockedBy
Ação: 
  ├── Notificar Gerente de Projeto
  └── Adicionar label "needs-attention"
Razão: Expor bloqueios imediatamente

3. MOVER TAREFAS FILHAS:
─────────────────────────────────────
Gatilho: Story Pai → "Done"
Condição: Tem subtarefas incompletas
Ação: 
  ├── Alertar owner
  └── Manter pai em "Em Review"
Razão: Não fechar trabalho incompleto

4. INÍCIO → EM PROGRESSO:
─────────────────────────────────────
Gatilho: Assignee começa trabalho (primeira atividade)
Ação: Status → "Em Progresso"
Razão: Tracking automático, menos manual

SETUP NO GITSCRUM:
─────────────────────────────────────
Project → Settings → Automations → Create

┌─────────────────────────────────────────────────────────┐
│  Criar Automação                                       │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  Nome: Auto-atribuir QA                                │
│                                                         │
│  QUANDO: Status muda                                   │
│  PARA: Teste QA                                        │
│                                                         │
│  SE: Tipo = Feature OR Bug                             │
│                                                         │
│  ENTÃO:                                                 │
│  [x] Atribuir para: @maria                             │
│  [x] Notificar: Slack #qa-channel                      │
│                                                         │
│  [Salvar] [Testar]                                     │
└─────────────────────────────────────────────────────────┘

Baseadas em Tempo

AUTOMAÇÕES TEMPORAIS
════════════════════

LEMBRETE DE VENCIMENTO:
─────────────────────────────────────
Gatilho: 24h antes da due date
Condição: Status ≠ Done
Ação: 
  ├── Notificar assignee
  └── Adicionar label "due-soon"

TAREFA STALE:
─────────────────────────────────────
Gatilho: Sem atividade há 5 dias
Condição: Status = "Em Progresso"
Ação: 
  ├── Adicionar label "stale"
  ├── Notificar assignee
  └── Notificar Scrum Master se > 7 dias

REVIEW TIMEOUT:
─────────────────────────────────────
Gatilho: 48h em "Code Review"
Condição: Sem atividade de review
Ação: 
  ├── Lembrar reviewer
  └── Escalar se > 72h

FIM DE SPRINT:
─────────────────────────────────────
Gatilho: Sprint termina
Condição: Tarefa não está Done
Ação: 
  ├── Adicionar label "carryover"
  └── Mover para próximo sprint ou backlog

Baseadas em Eventos Externos

AUTOMAÇÕES VIA WEBHOOK
══════════════════════

PR ABERTO (GitHub):
─────────────────────────────────────
Gatilho: Webhook - PR opened
Condição: Título/branch contém task ID
Ação: 
  ├── Mover para "Em Review"
  ├── Linkar PR à tarefa
  └── Notificar reviewer atribuído

PR MERGEADO:
─────────────────────────────────────
Gatilho: Webhook - PR merged
Condição: PR linkado a tarefa
Ação: 
  ├── Mover para "Done"
  └── Adicionar comentário com link do merge

BUILD FALHOU:
─────────────────────────────────────
Gatilho: Webhook - CI failed
Condição: Branch tem task ID
Ação: 
  ├── Adicionar label "build-failed"
  ├── Notificar assignee
  └── Mover de volta para "Em Progresso"

DEPLOY PRODUÇÃO:
─────────────────────────────────────
Gatilho: Webhook - Production deploy
Condição: Tasks linkadas ao release
Ação: 
  ├── Adicionar label "released"
  ├── Notificar stakeholders
  └── Atualizar campo "Released Version"

Configuração Avançada

Automações Encadeadas

FLUXO DE AUTOMAÇÃO COMPLEXO
═══════════════════════════

CENÁRIO: Feature Completa
─────────────────────────────────────
1. Dev termina código
   ↓ Manual: Move para "Code Review"
   
2. AUTOMAÇÃO: Solicitar Review
   ↓ Auto: Notifica reviewers do time
   
3. Reviewer aprova PR
   ↓ AUTOMAÇÃO: Agendar QA
   ↓ Auto: Move para "Pronto para QA"
   ↓ Auto: Atribui para QA
   
4. QA aprova
   ↓ Manual: Move para "Pronto para Deploy"
   
5. PR mergeado
   ↓ AUTOMAÇÃO: Finalizar
   ↓ Auto: Move para "Done"
   ↓ Auto: Notifica PO
   ↓ Auto: Atualiza métricas

CONFIGURANDO ENCADEAMENTO:
─────────────────────────────────────
Cada automação é independente mas se conecta:
├── Automação 1: Status → Code Review
├── Automação 2: Aprovação → Pronto QA
├── Automação 3: QA OK → Pronto Deploy
└── Automação 4: Merge → Done

Não crie dependências circulares!

Condições Avançadas

CONDIÇÕES COMPLEXAS
═══════════════════

OPERADORES DISPONÍVEIS:
─────────────────────────────────────
├── Equals (=)
├── Not equals (≠)
├── Contains
├── Is empty
├── Is not empty
├── Greater than (>)
├── Less than (<)
└── In list

COMBINANDO CONDIÇÕES:
─────────────────────────────────────
AND: Todas devem ser verdadeiras
OR: Pelo menos uma verdadeira

Exemplo:
SE (Tipo = Bug) AND (Prioridade = Critical)
   AND (Assignee IS EMPTY)
ENTÃO Atribuir para @on-call-dev

CONDIÇÕES COM CAMPOS CUSTOM:
─────────────────────────────────────
SE (Customer = "Enterprise")
   AND (SLA Response Time < 4h)
ENTÃO Adicionar label "priority-support"

Monitoramento e Manutenção

Dashboard de Automações

VISIBILIDADE DE AUTOMAÇÕES
══════════════════════════

MÉTRICAS IMPORTANTES:
─────────────────────────────────────
┌─────────────────────────────────────────────────────────┐
│ AUTOMAÇÕES - Últimos 30 dias                           │
├─────────────────────────────────────────────────────────┤
│                                                         │
│ Execuções: 1,234                                       │
│ Sucesso: 1,198 (97%)                                   │
│ Falhas: 36 (3%)                                        │
│                                                         │
│ TOP 5 AUTOMAÇÕES:                                       │
│ 1. PR → In Review: 423 execuções                       │
│ 2. Merge → Done: 389 execuções                         │
│ 3. Lembrete due date: 156 execuções                    │
│ 4. Auto-assign QA: 134 execuções                       │
│ 5. Stale task alert: 98 execuções                      │
│                                                         │
│ FALHAS RECENTES:                                        │
│ • Webhook timeout (23x) - investigar                   │
│ • Assignee inválido (8x) - usuário removido           │
│ • Condição inválida (5x) - campo removido             │
└─────────────────────────────────────────────────────────┘

LOG DE EXECUÇÃO:
─────────────────────────────────────
Para cada execução:
├── Timestamp
├── Gatilho que disparou
├── Condições avaliadas
├── Ações executadas
├── Resultado (sucesso/falha)
└── Erro se houver

Manutenção Regular

CHECKLIST DE MANUTENÇÃO
═══════════════════════

MENSAL:
─────────────────────────────────────
☐ Revisar métricas de execução
☐ Investigar falhas
☐ Verificar automações não usadas
☐ Atualizar documentação

TRIMESTRAL:
─────────────────────────────────────
☐ Revisar todas as automações
☐ Validar ainda são necessárias
☐ Simplificar onde possível
☐ Remover obsoletas
☐ Alinhar com mudanças de processo

QUANDO PROCESSO MUDA:
─────────────────────────────────────
☐ Identificar automações afetadas
☐ Atualizar ou desativar
☐ Testar com novo processo
☐ Comunicar mudanças ao time
☐ Documentar alterações

Boas Práticas

Princípios

BOAS PRÁTICAS DE AUTOMAÇÃO
══════════════════════════

FAÇA:
─────────────────────────────────────
✓ Comece simples, itere
✓ Teste antes de ativar
✓ Documente o propósito
✓ Monitore regularmente
✓ Colete feedback do time
✓ Tenha um dono para cada automação

NÃO FAÇA:
─────────────────────────────────────
✗ Automatizar tudo de uma vez
✗ Criar automações sem testar
✗ Esquecer de manter
✗ Ignorar falhas
✗ Criar dependências circulares
✗ Automatizar decisões de julgamento

REGRA DE OURO:
─────────────────────────────────────
Se você precisa explicar a automação
mais de uma vez, simplifique ou remova.

Artigos Relacionados