Git - Controle de Versão no Lumina Flow Builder
Visão Geral
O Git Integration permite executar operações de controle de versão Git diretamente nos seus flows do Lumina. Ideal para automações que precisam gerenciar código, documentação ou qualquer conteúdo versionado.
Operações Disponíveis
Operações Básicas
- clone - Clonar repositório Git
- pull - Atualizar repositório local com mudanças remotas
- push - Enviar commits locais para repositório remoto
- fetch - Buscar atualizações do repositório remoto
Gerenciamento de Commits
- add - Adicionar arquivos à staging area
- commit - Criar commit com mudanças
- status - Ver status atual do repositório
- log - Visualizar histórico de commits
Tags e Configuração
- createTag - Criar tag no repositório
- pushTags - Enviar tags para repositório remoto
- addConfig - Adicionar configuração ao repositório
- userSetup - Configurar usuário Git (nome e email)
Quando usar Git Integration?
Use a integração Git quando precisar:
Automação de Deploy
- Deploy automatizado: Clone, pull e deploy de aplicações
- Versionamento: Criar tags de release automaticamente
- Rollback: Reverter para versões anteriores
Gerenciamento de Conteúdo
- Documentação: Atualizar docs automaticamente
- Backup: Versionar configurações e dados
- Sincronização: Manter múltiplos ambientes sincronizados
CI/CD
- Pipeline: Integrar com processos de build
- Testes: Buscar código para execução de testes
- Release: Automatizar criação de releases
Colaboração
- Notificações: Avisar equipe sobre commits
- Revisão: Automatizar processo de code review
- Métricas: Coletar dados sobre desenvolvimento
Casos de Uso Reais
1. Deploy Automatizado via WhatsApp
Usuário: /deploy producao
Sistema: Clonando repositório...
Sistema: Executando testes...
Sistema: Deploy realizado com sucesso!
Sistema: Tag v1.2.3 criada
2. Backup de Configurações
Sistema: Backup diário iniciado
Sistema: Arquivos adicionados ao Git
Sistema: Commit criado: "Backup 2025-10-13"
Sistema: Push realizado com sucesso
3. Sincronização de Documentação
Sistema: Verificando atualizações...
Sistema: Pull realizado - 3 arquivos atualizados
Sistema: Documentação sincronizada!
Requisitos
Git Instalado
- Git deve estar instalado no servidor
- Acesso ao comando
gitvia linha de comando
Permissões
- Acesso de leitura/escrita ao diretório do repositório
- Credenciais configuradas (SSH keys ou HTTPS)
Configuração
- Usuário Git configurado (nome e email)
- Repositório remoto acessível
Segurança
Credenciais
- Use SSH keys ao invés de senha
- Nunca exponha tokens em variáveis públicas
- Configure access tokens com permissões mínimas
Validação
- Valide paths antes de executar operações
- Sanitize mensagens de commit
- Verifique permissões de arquivos
Estrutura do Node Git
Todos os nodes Git compartilham esta estrutura base:
{
"id": "git_1",
"type": "git",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Git Operation",
"operation": "tipo_operacao",
"repositoryPath": "/path/to/repo",
"responseVariable": "git_result"
}
}
Parâmetros Comuns
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| operation | string | Sim | Tipo de operação Git (clone, pull, push, etc) |
| repositoryPath | string | Sim | Caminho para o repositório local |
| responseVariable | string | Não | Nome da variável para armazenar resposta |
Fluxo Típico
START → GIT_CLONE → GIT_STATUS → GIT_ADD → GIT_COMMIT → GIT_PUSH → MESSAGE → END
Boas Práticas
✅ FAÇA
- Validação: Sempre verifique se o repositório existe
- Backup: Faça pull antes de push
- Mensagens: Use mensagens descritivas nos commits
- Variáveis: Armazene resultados em variáveis
- Tratamento: Use condition para tratar erros
- Status: Verifique status antes de commit
❌ NÃO FAÇA
- Credenciais: Não hardcode senhas ou tokens
- Force Push: Evite push forçado
- Root: Não use repositórios na raiz do sistema
- Commits vazios: Não faça commits sem mudanças
- Path absolutos: Não use paths hardcoded
Exemplo Completo: Sistema de Deploy
{
"name": "Deploy Automatizado",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "input_1",
"type": "input",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Ambiente",
"parameters": {
"message": "Digite o ambiente (dev/prod):",
"variable": "ambiente"
}
}
},
{
"id": "git_pull_1",
"type": "git",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Atualizar Código",
"operation": "pull",
"repositoryPath": "/var/www/app",
"responseVariable": "pull_result"
}
},
{
"id": "git_tag_1",
"type": "git",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Criar Tag",
"operation": "createTag",
"repositoryPath": "/var/www/app",
"tagName": "deploy-{{ambiente}}-{{timestamp}}",
"tagMessage": "Deploy {{ambiente}} em {{date}}",
"responseVariable": "tag_result"
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 900, "y": 100 },
"data": {
"label": "Confirmação",
"parameters": {
"message": "Deploy {{ambiente}} realizado!\nTag: {{tag_result.tagName}}"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1100, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "input_1" },
{ "source": "input_1", "target": "git_pull_1" },
{ "source": "git_pull_1", "target": "git_tag_1" },
{ "source": "git_tag_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Troubleshooting
Erro: "Repository path is required"
- Causa: Parâmetro repositoryPath não foi fornecido
- Solução: Adicione o caminho do repositório
Erro: "Not a git repository"
- Causa: Diretório não é um repositório Git
- Solução: Execute clone primeiro ou inicialize o repositório
Erro: "Permission denied"
- Causa: Sem permissão de acesso ao repositório
- Solução: Configure SSH keys ou ajuste permissões
Erro: "Conflict detected"
- Causa: Conflitos de merge
- Solução: Resolva conflitos manualmente ou use pull com rebase
Integração com Outros Nodes
Com MESSAGE
Enviar notificações sobre operações Git
Com CONDITION
Verificar se operação foi bem-sucedida
Com VARIABLE
Armazenar resultados de operações
Com LOOP
Processar múltiplos repositórios
Com WEBHOOK
Receber eventos de GitHub/GitLab
Recursos Adicionais
Documentação Git
Tutoriais
- Git básico
- Workflows Git
- Git para automação
Próximos Passos
Escolha a operação que deseja usar:
- Iniciante: Comece com status e log
- Clone: Veja clone para baixar repositórios
- Atualização: Use pull e push
- Commits: Aprenda add e commit
- Avançado: Explore createTag e userSetup
Arquivo: src/whatsapp-flows/node-executors/git.executor.ts
Implementação completa: Todas as 12 operações Git documentadas individualmente.