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 Manual | Automatizado |
|---|---|
| Lembrar de atualizar status | Status atualiza automaticamente |
| Notificar pessoas manualmente | Notificações disparadas |
| Rastrear datas de vencimento | Datas calculadas |
| Atribuir baseado em regras | Auto-atribuído |
| Verificar itens parados | Lembretes 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.