9.6 KiB
🚀 Sistema de Auto-Sync RDO-C
Sistema completo de automação para sincronização automática com o repositório GitHub TS_RDO.
📋 Funcionalidades
-
✅ Sincronização Automática: Detecta mudanças e faz commit/push automático
-
✅ GitHub Actions: Deploy automático no repositório remoto
-
✅ Git Hooks: Automação local com validações
-
✅ Monitoramento de Arquivos: Watch em tempo real das mudanças
-
✅ Logs Detalhados: Sistema completo de logging e notificações
-
✅ Interface Unificada: Script principal para gerenciar tudo
🛠️ Pré-requisitos
Software Necessário
- Git (versão 2.0+)
- Node.js (versão 16+)
- NPM ou PNPM
- PowerShell 5.1+ (Windows)
Verificar Dependências
# Verificar Git
git --version
# Verificar Node.js
node --version
# Verificar NPM
npm --version
📦 Instalação
1. Configuração Inicial
# Navegar para o diretório do projeto
cd C:\Users\Marcos\Documents\GitHub\RDO-C
# Executar configuração inicial
.\scripts\start-auto-sync.ps1 -Action setup
2. Configurar Git (se necessário)
# Configurar usuário Git
git config user.name "Seu Nome"
git config user.email "seu.email@exemplo.com"
# Verificar repositório remoto
git remote -v
3. Configurar Git Hooks
# Executar script de configuração dos hooks
.\scripts\setup-git-hooks.ps1
4. Testar Sistema
# Executar testes do sistema
.\scripts\start-auto-sync.ps1 -Action test
⚙️ Configuração
Arquivo de Configuração Principal
Edite o arquivo auto-sync-config.json:
{
"repository": {
"remote_url": "https://github.com/Reifonas/TS_RDO.git",
"branch": "main",
"auto_push": true
},
"monitoring": {
"sync_interval": 300,
"file_watch_enabled": true,
"excluded_patterns": ["node_modules", ".git", "logs", "temp"]
},
"logging": {
"level": "INFO",
"console_enabled": true,
"file_enabled": true
}
}
Configuração de Notificações
Edite o arquivo logging-config.json para configurar notificações:
{
"notifications": {
"desktop": {
"enabled": true,
"levels": ["SUCCESS", "ERROR"]
},
"email": {
"enabled": false,
"smtp_server": "smtp.gmail.com",
"smtp_port": 587,
"username": "seu.email@gmail.com",
"password": "sua_senha_app",
"to": "destinatario@exemplo.com"
}
}
}
🚀 Uso
Comandos Principais
Iniciar Sistema
# Iniciar com configurações padrão
.\scripts\start-auto-sync.ps1 -Action start
# Iniciar sistema
.\scripts\start-auto-sync.ps1 -Action start
# Iniciar com todas as funcionalidades
.\scripts\start-auto-sync.ps1 -Action start -EnableNotifications -EnableFileWatch
Parar Sistema
.\scripts\start-auto-sync.ps1 -Action stop
Reiniciar Sistema
.\scripts\start-auto-sync.ps1 -Action restart -EnableNotifications
Verificar Status
.\scripts\start-auto-sync.ps1 -Action status
Parâmetros Avançados
# Configurar intervalos personalizados
.\scripts\start-auto-sync.ps1 -Action start -SyncInterval 180
# Modo verbose para debug
.\scripts\start-auto-sync.ps1 -Action start -Verbose
# Modo dry-run (simulação)
.\scripts\start-auto-sync.ps1 -Action start -DryRun
# Forçar execução
.\scripts\start-auto-sync.ps1 -Action start -Force
📁 Estrutura de Arquivos
RDO-C/
├── scripts/
│ ├── start-auto-sync.ps1 # Script principal
│ ├── auto-sync-github.ps1 # Sincronização Git
│ ├── file-watcher.ps1 # Monitoramento de arquivos
│ ├── logging-notifications.ps1 # Logs e notificações
│ └── setup-git-hooks.ps1 # Configuração de hooks
├── .github/
│ ├── workflows/
│ │ └── auto-sync-deploy.yml # GitHub Action
│ └── SECRETS_SETUP.md # Configuração de secrets
├── logs/ # Arquivos de log
├── temp/ # Arquivos temporários
├── auto-sync-config.json # Configuração principal
├── logging-config.json # Configuração de logs
└── README-AUTO-SYNC.md # Este arquivo
🔧 Scripts Individuais
1. Sincronização Manual
# Sincronização simples
.\scripts\auto-sync-github.ps1
# Com commit automático
.\scripts\auto-sync-github.ps1 -AutoCommit
# Com push automático
.\scripts\auto-sync-github.ps1 -AutoCommit -Push
2. Monitoramento de Arquivos
# Monitoramento contínuo
.\scripts\file-watcher.ps1 -Continuous
# Monitoramento com intervalo personalizado
.\scripts\file-watcher.ps1 -Continuous -SyncInterval 120
🔍 Monitoramento e Logs
Localização dos Logs
- Logs principais:
logs/auto-sync-YYYYMMDD.log - Logs de erro:
logs/error-YYYYMMDD.log - Status do sistema:
auto-sync-status.json
Visualizar Logs em Tempo Real
# Windows PowerShell
Get-Content logs\auto-sync-$(Get-Date -Format 'yyyyMMdd').log -Wait
# Ou usando tail (se disponível)
tail -f logs/auto-sync-$(Get-Date -Format 'yyyyMMdd').log
Níveis de Log
- ERROR: Erros críticos
- WARN: Avisos importantes
- INFO: Informações gerais
- SUCCESS: Operações bem-sucedidas
- DEBUG: Informações de debug (apenas com -Verbose)
🔔 Notificações
Notificações Desktop
Habilitadas por padrão no Windows. Mostra:
-
✅ Sincronizações bem-sucedidas
-
❌ Erros de sincronização
-
⚠️ Avisos importantes
Notificações por Email
Configure no arquivo logging-config.json:
- Habilite
email.enabled = true - Configure servidor SMTP
- Defina credenciais (use senhas de app para Gmail)
Webhooks e Integrações
Suporta integração com:
- Slack: Configure webhook URL
- Discord: Configure webhook URL
- Webhooks personalizados: Configure URL e formato
🔒 GitHub Actions e Secrets
Configurar Secrets no GitHub
- Acesse:
Settings > Secrets and variables > Actions - Adicione os secrets necessários:
REMOTE_REPO_TOKEN: Token de acesso ao repositórioNETLIFY_AUTH_TOKEN: Token do Netlify (se usar)NETLIFY_SITE_ID: ID do site Netlify (se usar)
Arquivo de Configuração
Veja instruções detalhadas em .github/SECRETS_SETUP.md
🐛 Solução de Problemas
Problemas Comuns
1. "Repositório não é um Git"
# Inicializar repositório Git
git init
git remote add origin https://github.com/Reifonas/TS_RDO.git
2. "Configuração do Git incompleta"
git config user.name "Seu Nome"
git config user.email "seu.email@exemplo.com"
3. "Falha na conectividade remota"
# Testar conectividade
git ls-remote origin HEAD
# Verificar URL remota
git remote -v
# Reconfigurar se necessário
git remote set-url origin https://github.com/Reifonas/TS_RDO.git
4. "Permissões de execução"
# Permitir execução de scripts
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
5. "Hooks não funcionam"
# Reconfigurar hooks
.\scripts\setup-git-hooks.ps1 -Force
# Verificar permissões
ls -la .git/hooks/
Debug Avançado
# Executar com logs detalhados
.\scripts\start-auto-sync.ps1 -Action start -Verbose -LogLevel DEBUG
# Testar componentes individualmente
.\scripts\start-auto-sync.ps1 -Action test
# Verificar status detalhado
.\scripts\start-auto-sync.ps1 -Action status
Logs de Debug
# Ver logs de erro
Get-Content logs\error-$(Get-Date -Format 'yyyyMMdd').log
# Ver logs completos
Get-Content logs\auto-sync-$(Get-Date -Format 'yyyyMMdd').log | Select-String "ERROR"
📈 Monitoramento de Performance
Métricas Disponíveis
- Número de sincronizações
- Número de erros
- Tempo de última sincronização
- Status do sistema
Visualizar Estatísticas
# Status completo
.\scripts\start-auto-sync.ps1 -Action status
# Verificar arquivo de status
Get-Content auto-sync-status.json | ConvertFrom-Json
🔄 Atualizações e Manutenção
Atualizar Sistema
- Pare o sistema:
start-auto-sync.ps1 -Action stop - Atualize os scripts
- Reinicie:
start-auto-sync.ps1 -Action restart
Limpeza de Logs
# Limpar logs antigos (mais de 30 dias)
Get-ChildItem logs\*.log | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-30)} | Remove-Item
Backup de Configuração
# Backup das configurações
Copy-Item auto-sync-config.json auto-sync-config.json.bak
Copy-Item logging-config.json logging-config.json.bak
📞 Suporte
Informações do Sistema
# Coletar informações para suporte
.\scripts\start-auto-sync.ps1 -Action test > system-info.txt
Get-Content auto-sync-status.json >> system-info.txt
Get-Content logs\auto-sync-$(Get-Date -Format 'yyyyMMdd').log | Select-Object -Last 50 >> system-info.txt
Contato
- Repositório: TS_RDO
- Issues: Use o sistema de issues do GitHub
- Documentação: Este arquivo README
📝 Changelog
v1.0.0 (2024)
-
✅ Sistema completo de auto-sync
-
✅ GitHub Actions integradas
-
✅ Git Hooks configurados
-
✅ Monitoramento de arquivos
-
✅ Logs detalhados e notificações
-
✅ Interface unificada de gerenciamento
🎉 Sistema RDO-C Auto-Sync pronto para uso!
Para começar:
.\scripts\start-auto-sync.ps1 -Action setup
.\scripts\start-auto-sync.ps1 -Action start -EnableNotifications