Sistema de monitoreo automático invisible para proyectos de desarrollo que detecta cambios, ejecuta tests y envía notificaciones inteligentes.
- Monitoreo Git en tiempo real de repositorios múltiples
- Detección semántica de tipos de cambio (feat/fix/refactor)
- Análisis de archivos críticos (.env, package.json, etc.)
- Polling inteligente con optimización de recursos
- Ejecución automática de tests basada en tipo de cambio
- Paralelización inteligente de test suites
- Detección automática de frameworks (React, Python, etc.)
- Métricas de performance y cobertura
- Notificaciones inteligentes multi-canal
- Clasificación automática de severidad
- Integración Discord, Email, Slack
- Modo stealth con comunicaciones anonymizadas
git clone [repo-url]
cd eco-guardian-system
npm install
cp .env.example .env
# Configurar variables de entorno# Editar .env con tus credenciales
GITHUB_TOKEN=your_token_here
DISCORD_BOT_TOKEN=your_discord_token
MONITORED_REPOS_PATH=/path/to/your/repos# Desarrollo
npm run dev
# Producción
npm start
# Solo monitoreo
npm run monitor
# Dashboard web
npm run dashboardEl sistema detecta automáticamente y monitorea:
- CEP-FORMACION - Sistema automatización marketing (Python)
- Corsair-Command-Center - Interfaz HUD sci-fi (React/TypeScript)
- PRILABSA-WEBSITE-2025 - Sitio corporativo (React/Netlify)
- solaria-cepcomunicacion - App cliente (React/Vite)
- prilabsa-classic - Legacy website (React/TypeScript)
- Core: Node.js + Express + SQLite
- Monitoring: Chokidar + Simple-Git + GitHub APIs
- Testing: Vitest + Playwright (auto-detección)
- Notifications: Discord.js + Nodemailer
- Dashboard: React + Vite + Chart.js
- Cache: Redis para métricas tiempo real
eco-guardian-system/
├── src/
│ ├── watcher/ # ECO-WATCHER - Git monitoring
│ ├── executor/ # ECO-EXECUTOR - Test execution
│ ├── notifier/ # ECO-NOTIFIER - Smart notifications
│ ├── dashboard/ # Web dashboard
│ └── utils/ # Database, Logger, helpers
├── config/ # Configuration files
├── logs/ # System logs (anonymized)
├── data/ # SQLite database
└── docs/ # Documentation
Sistema diseñado para operar de forma invisible:
- ✅ Sin rastros identificables en logs o notificaciones
- ✅ Datos anonymizados automáticamente
- ✅ Integración nativa con proyectos existentes
- ✅ Comunicaciones cifradas entre componentes
- ✅ Métricas sanitizadas para reporting
- Commits por repositorio y autor
- Ejecuciones de tests y resultados
- Tiempo de respuesta a cambios
- Cobertura de tests por proyecto
- Notificaciones enviadas por canal
- Vista en tiempo real de actividad
- Gráficos de tendencias por proyecto
- Alertas configurables por severidad
- Exportación de reportes anonymizados
- Tests fallando en main/production
- Errores de build en deployment
- Vulnerabilidades de seguridad detectadas
- Tests fallando en features
- Performance degradation detectada
- Dependencias con updates críticos
- Nuevas features completadas
- Refactoring completado exitosamente
- Documentación actualizada
- Commits de desarrollo rutinario
- Updates de configuración menores
- Logs de monitoreo rutinario
# Desarrollo y testing
npm run dev # Hot reload development
npm run test # Run test suite
npm run test:watch # Watch mode testing
# Monitoreo
npm run monitor # Start Git monitoring
npm run monitor:debug # Debug mode with verbose logs
npm run scan # One-time repository scan
# Dashboard y reporting
npm run dashboard # Start web dashboard (port 3001)
npm run api # Start API server (port 3000)
npm run report # Generate anonymized report
# Utilidades
npm run db:migrate # Run database migrations
npm run db:seed # Seed with sample data
npm run logs:clean # Clean old log files
npm run config:validate # Validate configurationAntes de usar el CLI, configura las variables de entorno necesarias:
# Configuración básica
export N8N_BASE_URL="https://your-n8n-instance.com"
export N8N_API_KEY="your-api-key-here"
export N8N_WEBHOOK_SECRET="your-webhook-secret"
# Configuración avanzada (opcional)
export N8N_WEBHOOK_TIMEOUT="30000" # Timeout en ms
export N8N_RETRY_ATTEMPTS="3" # Reintentos en caso de fallo
export N8N_LOG_LEVEL="info" # Nivel de logging# Instalación y configuración inicial
npm install -g n8n-webhook-setup
# Configurar webhooks para un repositorio específico
export N8N_BASE_URL="https://n8n.yourdomain.com"
export N8N_API_KEY="n8n_api_1234567890abcdef"
npx n8n-webhook-setup --repo="my-project" --events="push,pull_request"
# Configuración con múltiples repositorios
export N8N_BASE_URL="https://automation.company.com"
npx n8n-webhook-setup --batch --config="./webhook-config.json"
# Modo debug con logging detallado
export N8N_LOG_LEVEL="debug"
npx n8n-webhook-setup --repo="eco-guardian" --dry-run
# Configuración con autenticación personalizada
export N8N_BASE_URL="https://workflows.internal.net"
export N8N_API_KEY="custom_token_xyz789"
export N8N_WEBHOOK_SECRET="super-secret-webhook-key"
npx n8n-webhook-setup --repo="critical-project" --secureCrear webhook-config.json para configuración batch:
{
"repositories": [
{
"name": "eco-guardian-system",
"events": ["push", "pull_request", "release"],
"branch_filter": "main,develop"
},
{
"name": "project-alpha",
"events": ["push"],
"branch_filter": "main"
}
],
"global_settings": {
"timeout": 30000,
"retry_attempts": 3,
"stealth_mode": true
}
}# Verificar conectividad
curl -H "X-N8N-API-KEY: $N8N_API_KEY" "$N8N_BASE_URL/api/v1/workflows"
# Solución:
# - Verificar que N8N_BASE_URL sea accesible
# - Comprobar que N8N_API_KEY sea válida
# - Revisar firewall y configuración de red# Debug de webhooks
export N8N_LOG_LEVEL="debug"
npx n8n-webhook-setup --test --repo="your-repo"
# Verificar logs
tail -f logs/webhook-setup.log# Verificar permisos de API
curl -H "X-N8N-API-KEY: $N8N_API_KEY" "$N8N_BASE_URL/api/v1/me"
# Solución:
# - Regenerar API key con permisos completos
# - Verificar roles de usuario en n8n# Aumentar timeout
export N8N_WEBHOOK_TIMEOUT="60000"
npx n8n-webhook-setup --repo="large-project" --timeout=60000-
Reintentos Progresivos
- Intento 1: Inmediato
- Intento 2: 5 segundos
- Intento 3: 15 segundos
- Intento 4: 30 segundos
-
Fallback a Polling
# Si webhooks fallan, activar polling export ECO_FALLBACK_MODE="polling" export ECO_POLLING_INTERVAL="30000" # 30 segundos npm run monitor:fallback
-
Notificaciones de Degradación
- Alertas automáticas cuando el sistema entra en modo fallback
- Métricas de disponibilidad y performance
- Recuperación automática cuando el servicio se restaura
{
"fallback_policy": {
"max_retries": 3,
"retry_delay_ms": [1000, 5000, 15000],
"fallback_to_polling": true,
"polling_interval_ms": 30000,
"health_check_interval_ms": 60000,
"auto_recovery": true
},
"monitoring": {
"track_fallback_usage": true,
"alert_on_degradation": true,
"metrics_retention_days": 30
}
}# Diagnóstico completo del sistema
npm run diagnose
# Verificar estado de webhooks
npm run webhook:status
# Forzar modo fallback
npm run force:fallback
# Recuperación manual
npm run recover:webhooks
# Limpiar estado corrupto
npm run clean:state# Logs específicos por componente
tail -f logs/webhook-setup.log # Configuración de webhooks
tail -f logs/fallback.log # Activación de fallback
tail -f logs/recovery.log # Procesos de recuperación
tail -f logs/health-check.log # Monitoreo de salud
# Análisis de errores
grep "ERROR" logs/*.log | tail -20
grep "FALLBACK" logs/*.log | tail -10- React/Vite:
npm test,npm run build - Python:
pytest,python -m unittest - Node.js:
npm test,jest - General: Lint, type-check, custom scripts
Crear .eco-guardian.json en la raíz del proyecto:
{
"enabled": true,
"testCommand": "npm test",
"buildCommand": "npm run build",
"criticalFiles": [".env", "package.json"],
"notifications": {
"channels": ["discord", "email"],
"severity": "medium"
},
"stealth": true
}Sistema desarrollado para operación autónoma. Para configuración avanzada consultar la documentación técnica en /docs/.
Desarrollado con 🔒 y ⚡ - Sistema de monitoreo invisible y automatizado