Alejandría

Busca en Alejandría

Herramientas

Renovate

Propone actualizaciones de dependencias con reglas compartidas.

01

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.

02

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.