Renovate Runner
Plataforma empresarial para distribuir y crear configuraciones personalizadas de Renovate a escala.
Repositorio: https://gitlab.wiedii.co/wildcat/renovate-runner
Versión: 6.5.0
Imagen base: renovate/renovate:43.209.1@sha256:1ac704319b8aa45a412c35d287b7ca1afeabf3d25f042eb22e4c267faf86decc
¿Qué es?
Renovate Runner cumple dos propósitos simultáneos:
- Preset compartido (
.gitlab/renovate.json): fuente de verdad de las reglas de actualización de dependencias para todos los repositorios de Wiedii. - Runner Dockerizado: imagen de contenedor que ejecuta Renovate con configuración empresarial, caché en S3 y soporte para gestores propietarios.
Preset compartido — Cómo consumirlo
Cualquier repositorio de Wiedii debe extender el preset compartido en su renovate.json raíz:
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["local>wildcat/renovate-runner//.gitlab/renovate.json"]
}
¿Qué significa local>?
Le indica a Renovate que cargue el preset desde un repositorio en la misma plataforma Git (GitLab). El formato es:
local><namespace>/<proyecto>//<ruta>
Para Wiedii, el preset vive en:
- Repositorio:
wildcat/renovate-runner - Ruta del archivo:
/.gitlab/renovate.json
Requisito: Renovate debe tener acceso de lectura al repositorio wildcat/renovate-runner.
📄 Documentación interna completa del preset:
https://gitlab.wiedii.co/wildcat/renovate-runner/-/blob/main/docs/renovate-runner-configs.md
¿Qué incluye el preset compartido?
Gestores personalizados (customManagers)
El preset detecta y actualiza automáticamente versiones de herramientas que los managers estándar de Renovate no cubren:
| Herramienta | Archivos detectados | Fuente |
|---|---|---|
| Bun | package.json, renovate.json | GitHub Releases (oven-sh/bun) |
| pnpm | package.json, renovate.json | npm |
| yarn | package.json, renovate.json | npm |
| npm | package.json, renovate.json | npm |
| Node.js | package.json, renovate.json | node datasource |
| PHP | composer.json, renovate.json | GitHub Tags |
| Python | renovate.json | Docker |
| uv | renovate.json | GitHub Releases (astral-sh/uv) |
| Terraform | renovate.json, root.hcl, *.tf | GitHub Releases |
| Terragrunt | renovate.json, root.hcl | GitHub Releases |
| TFLint | renovate.json | GitHub Releases |
| Checkov | root.hcl | PyPI |
| Imagen Renovate | *.md, .cursorrules | Docker (con digest) |
| Bun/Node en docs | *.md | GitHub Releases / node |
Políticas de seguridad
rangeStrategy: "pin"— todas las dependencias se pinnean a versiones exactas.minimumReleaseAge: "3 days"— espera 3 días antes de actualizar (evita paquetes maliciosos recién publicados).pinDigests: truepara imágenes Docker.rollbackPrs: true— crea PRs de rollback si una versión es inestable.- Integra OpenSSF Scorecard y npm minimum release age vía presets de seguridad.
config:best-practicescomo base.
Agrupaciones de actualizaciones
Las actualizaciones se agrupan en ramas únicas para reducir el ruido:
| Grupo | Incluye |
|---|---|
| Terraform and Terragrunt | Terraform, Terragrunt (source URLs + aqua en mise) |
| Bun Version Update | oven-sh/bun |
| Pnpm / Yarn / NPM | Gestores de paquetes JS |
| Go runtime/tooling | Imágenes golang, mise go/golang |
| Uv Version Update | astral-sh/uv |
| Lefthook / Hadolint / Shfmt / Shellcheck | Herramientas de dev |
| Terraform Module Updates | Módulos Terraform |
| Wiedii Registry Update | Paquetes @wiedii-registry/* |
| Checkov Version Update | checkov (uvx) |
| wiediiregistry-php | Imagen custom PHP de Wiedii |
Otras configuraciones notables
dependencyDashboard: true— dashboard de Renovate activo en GitLab.baseBranchPatterns: ["develop"]— rama base esdevelop.semanticCommits: "enabled"con scopeworkspace.configMigration: true— migra automáticamente configs obsoletas.postUpdateOptions: deduplicación de yarn, pnpm, npm; inflación de Helm; etc.ignorePresets:monorepo:terraform,group:terraformMonorepo(se usan reglas propias).- Paths ignorados:
.terragrunt-cache/,node_modules/,mise.toml.original*.
Sobrerides en repositorios consumidores
Los repositorios pueden añadir reglas sin romper el preset compartido:
{
"extends": ["local>wildcat/renovate-runner//.gitlab/renovate.json"],
"packageRules": [
{ "enabled": false, "matchPackageNames": ["terraform-aws-modules/vpc/aws"] }
]
}
El preset compartido es la fuente de verdad para reglas empresariales. Solo se añaden overrides locales cuando el proyecto tiene necesidades específicas.
Arquitectura del runner Docker
Dockerfile
├── Base: renovate/renovate:43.209.1@sha256:1ac704319b8aa45a412c35d287b7ca1afeabf3d25f042eb22e4c267faf86decc@sha256:3de1665...
├── Instala: mise (versión pinneada vía ARG)
├── Variables ENV:
│ ├── RENOVATE_REPOSITORY_CACHE=enabled