En pocas palabras
Herramienta que detecta nuevas versiones de dependencias y propone actualizaciones mediante pull requests o merge requests configurables.
Qué problema resuelve
Dependencias desactualizadas, revisiones manuales repetitivas y acumulación de actualizaciones difíciles de abordar.
Cuándo utilizarlo
Repositorios con paquetes, imágenes de contenedor y herramientas o infraestructura compatibles, incluidos registros privados configurados. Ejemplo: agrupar actualizaciones menores y programarlas semanalmente.
De la idea a la práctica
Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.
Cómo funciona
Renovate detecta archivos compatibles, consulta registros y prepara cambios de versión y lockfiles. Las reglas permiten agrupar paquetes, programar propuestas y elegir qué actualizaciones se pueden integrar automáticamente.
Ejemplo: agrupar cambios pequeños
Un archivo renovate.json puede comenzar así:
{
"extends": ["config:recommended"],
"packageRules": [
{
"matchUpdateTypes": ["minor", "patch"],
"groupName": "actualizaciones menores"
}
]
}
Configuración más completa
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended",
":semanticCommits",
":timezone(America/Bogota)"
],
"schedule": ["before 7am on monday"],
"prConcurrentLimit": 5,
"minimumReleaseAge": "3 days",
"dependencyDashboard": true,
"packageRules": [
{
"matchUpdateTypes": ["minor", "patch"],
"matchCurrentVersion": "!/^0/",
"groupName": "dependencias menores",
"automerge": true
},
{
"matchPackageNames": ["org.springframework.boot{/,}**"],
"groupName": "Spring Boot"
},
{
"matchUpdateTypes": ["major"],
"labels": ["actualizacion-mayor"],
"automerge": false
},
{
"matchDepTypes": ["devDependencies"],
"automerge": true
}
],
"vulnerabilityAlerts": {
"labels": ["seguridad"],
"schedule": ["at any time"]
}
}
| Opción | Por qué |
|---|---|
minimumReleaseAge |
No proponer versiones recién publicadas; protege frente a paquetes comprometidos y releases retiradas |
schedule |
Concentrar PRs en un momento de la semana |
groupName |
Un PR por familia en lugar de veinte |
dependencyDashboard |
Issue con el estado de todas las actualizaciones pendientes |
vulnerabilityAlerts |
Actualizaciones de seguridad fuera del calendario |
Ecosistemas compatibles
Maven, Gradle, npm/pnpm/yarn, pip/uv/Poetry, Go, Cargo, Docker (FROM, Compose, Helm, Kubernetes), GitHub Actions, GitLab CI, Terraform, mise y muchos más. Un mismo bot mantiene al día el código, la infraestructura y los pipelines.
Formas de ejecución
| Opción | Uso |
|---|---|
| Mend Renovate App (GitHub) | Instalación inmediata, sin infraestructura |
| Renovate autoalojado | GitLab, Bitbucket, Azure DevOps o registros privados; job programado o contenedor |
| Renovate CE / EE | Servidor con webhooks y planificación para muchas organizaciones |
Preset corporativo
Publica una configuración común en un repositorio (krediya/renovate-config) y referencia con "extends": ["github>krediya/renovate-config"]. Cada repositorio hereda reglas, horarios y agrupaciones, y solo declara sus excepciones.
Renovate frente a Dependabot
Dependabot viene integrado en GitHub y es sencillo; Renovate ofrece agrupación más flexible, más gestores de paquetes, presets compartidos, dashboard y funciona fuera de GitHub. Para muchas organizaciones, la combinación ganadora es Renovate para versiones y un escáner como Trivy para vulnerabilidades.
Criterios de implementación
Empieza con propuestas revisadas y pruebas confiables. Si activas automerge, define alcance y protección de ramas con verificaciones obligatorias. Las dependencias privadas requieren acceso a sus registros; evita credenciales en la configuración versionada.
Continúa en las fuentes
Documentación oficial para verificar detalles y explorar más.