{ $schema: 'https://docs.renovatebot.com/renovate-schema.json', extends: [ 'config:best-practices', ':timezone(Europe/Paris)', ':label(renovate)', ':semanticPrefixFix', ':automergePr', ':automergeStableNonMajor', ':automergeDigest', ], platformAutomerge: true, gomod: { postUpdateOptions: ['gomodTidy', 'gomodUpdateImportPaths'], }, dependencyDashboardTitle: '🤖 Renovate Dashboard', commitMessageTopic: '{{depName}}', commitMessageExtra: 'to {{newVersion}}', commitMessageSuffix: '', ignorePaths: ['k8s-apps/archive/**'], customManagers: [ { customType: 'regex', managerFilePatterns: [ '/(^|/)Chart\\.yaml$/', ], matchStrings: [ 'repository: git\\+https://github.com/(?[^@\\s]+)@(?:[^?\\s]+)\\?ref=(?[^\\s]+)\\s+version: (?[^\\s]+)', ], datasourceTemplate: 'github-tags', }, ], packageRules: [ { // Go majors change the module path, so imports must be rewritten // (gomodUpdateImportPaths) and API breakage fixed by hand: require // explicit approval on the dashboard before a PR is opened. matchManagers: ['gomod'], matchUpdateTypes: ['major'], dependencyDashboardApproval: true, }, { // Temporary: cdproto's new v0.157.x tags are API-incompatible with // chromedp v0.16.0 (which needs a newer master snapshot). Hold until // chromedp releases against the tagged line, then delete this rule. matchPackageNames: ['github.com/chromedp/cdproto'], matchManagers: ['gomod'], dependencyDashboardApproval: true, }, { matchManagers: [ 'helmv3', ], matchPackageNames: [ 'local-path-provisioner', ], enabled: false, }, { matchPackageNames: [ 'velero/velero-plugin-for-aws', // FIXME: https://github.com/velero-io/velero/issues/9951 ], enabled: false, }, { matchPackageNames: [ '/^registry\\.terence\\.cloud\\//', ], enabled: false, }, { matchDatasources: [ 'helm', ], commitMessageTopic: 'chart {{depName}}', }, { matchDatasources: [ 'docker', ], commitMessageTopic: 'image {{depName}}', }, { versioning: 'regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)\\.(?\\d+)-ls(?\\d+)$', matchPackageNames: [ '/^lscr.io\\/linuxserver\\//', ], }, { versioning: 'regex:^v(?\\d+)\\.(?\\d+)\\.(?\\d+)-ls(?\\d+)$', matchPackageNames: [ '/^lscr.io\\/linuxserver\\/bazarr/', ], }, { versioning: 'regex:^(?\\d+)\\.(?\\d+)(?:\\.(?\\d+))?(?:ubu\\d+)-ls(?\\d+)$', matchPackageNames: [ '/^lscr.io\\/linuxserver\\/jellyfin/', ], }, { versioning: 'regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)(?:-r\\d+|_v\\d+(?:\\.\\d+)*)-ls(?\\d+)$', matchPackageNames: [ '/^lscr.io\\/linuxserver\\/qbittorrent/', ], }, { matchPackageNames: [ 'garage', ], matchDatasources: [ 'helm', ], overrideDatasource: 'custom.garage', registryUrls: [ 'https://git.deuxfleurs.fr/Deuxfleurs/garage/raw/branch/main/script/helm/garage/Chart.yaml', ], }, { versioning: 'regex:^(?\\d+)\\.(?\\d+)(?:\\.(?\\d+))?-(?apache|nginx)(?:-alpine)?-(?\\d+)$', matchPackageNames: [ '/modsecurity-crs/', ], }, { matchPackageNames: [ '/ghcr.io\\/dgtlmoon\\/changedetection.io/', '/otel\\/opentelemetry-collector-contrib/', '/opentelemetry-operator/', '/opentelemetry-collector/', '/ghcr.io\\/gtsteffaniak\\/filebrowser/', '/qtap/', 'mendhak/http-https-echo', 'slskd/slskd', '/valkey/', ], automerge: true, }, ], customDatasources: { garage: { format: 'yaml', transformTemplates: [ '{"releases":[{"version": $.version}]}', ], }, }, }