{ semanticCommits: "enabled", extends: ["helpers:pinGitHubActionDigests"], dependencyDashboard: true, dependencyDashboardTitle: "Renovate Dashboard 🤖", suppressNotifications: ["prIgnoreNotification"], commitMessageTopic: "{{depName}}", commitMessageExtra: "to {{newVersion}}", commitMessageSuffix: "By Renovate", rebaseWhen: "conflicted", prConcurrentLimit: 150, timezone: "Europe/Amsterdam", pinDigests: true, automerge: false, gitAuthor: "TrueCharts-Admin ", "helm-values": { fileMatch: [ "charts/.+/.*values\\.yaml$", "charts/.+/SCALE/.*_values\\.yaml$", ], }, helmv3: { fileMatch: ["charts/.+/Chart\\.yaml$"] }, packageRules: [ { // Bundle Github Actions matchManagers: ["github-actions"], groupName: "Github-Actions", automerge: true, }, { // Setup datasources for dep updates matchDatasources: ["helm"], matchManagers: ["helmv3"], commitMessageTopic: "Helm chart {{depName}}", ignorePaths: ["charts/unstable/**"], autoApprove: true, }, { // Global docker datasource settings matchDatasources: ["docker"], enabled: true, pinDigests: true, automerge: false, autoApprove: true, separateMinorPatch: true, ignorePaths: ["charts/unstable/**", "charts/system/**"], commitMessageTopic: "container image {{depName}}", commitMessageExtra: "to {{#if isSingleVersion}}v{{{newVersion}}}{{else}}{{{newValue}}}{{/if}}@{{newDigestShort}}", }, { // Setup datasources for github actions matchManagers: ["github-actions"], excludePackageNames: ["stefanzweifel/git-auto-commit-action"], labels: ["automerge"], automerge: true, autoApprove: true, }, { // Catch to prevent stable updates automerge: false, labels: ["update/ignored"], groupName: "ignored", matchFileNames: [ "charts/system/**", "charts/unstable/**", "charts/dev/**", "templates/app/**", ], commitMessageTopic: "Ignored Updates", autoApprove: false, }, // // Helm Deps // Ensure System Apps aren't automerged after many upstream fuckups { matchDatasources: ["helm"], automerge: false, labels: ["update/helm/system"], groupName: "helm system", matchFileNames: ["charts/system/**"], autoApprove: false, }, { matchDatasources: ["helm"], matchUpdateTypes: ["major"], automerge: false, bumpVersion: "major", labels: ["update/helm/dependency/major"], groupName: "helm dependency major", matchFileNames: ["charts/dependency/**"], autoApprove: false, }, { matchDatasources: ["helm"], automerge: true, matchUpdateTypes: ["minor"], bumpVersion: "minor", labels: ["update/helm/dependency/minor", "automerge"], matchFileNames: ["charts/dependency/**"], groupName: "helm dependency minor", }, { matchDatasources: ["helm"], automerge: true, matchUpdateTypes: ["patch"], bumpVersion: "patch", labels: ["update/helm/dependency/patch", "automerge"], matchFileNames: ["charts/dependency/**"], groupName: "helm dependency patch", }, // // Helm Charts // { matchDatasources: ["helm"], matchUpdateTypes: ["major"], bumpVersion: "major", enabled: true, labels: ["update/helm/general/major"], automerge: false, groupName: "helm general major", matchFileNames: [ "charts/stable/**", "charts/incubator/**", "charts/premium/**", "charts/system/**", ], autoApprove: false, }, { matchDatasources: ["helm"], automerge: true, enabled: true, matchUpdateTypes: ["minor"], bumpVersion: "minor", labels: ["update/helm/general/minor", "automerge"], groupName: "helm general minor", matchFileNames: [ "charts/stable/**", "charts/incubator/**", "charts/premium/**", // "charts/system/**", ], }, { matchDatasources: ["helm"], automerge: true, enabled: true, matchUpdateTypes: ["digest", "patch", "pin"], bumpVersion: "patch", labels: ["update/helm/general/non-major", "automerge"], groupName: "helm general non-major", matchFileNames: [ "charts/stable/**", "charts/incubator/**", "charts/premium/**", // "charts/system/**", ], }, // // Tag updates for semantic tags // { matchDatasources: ["docker"], matchUpdateTypes: ["major"], bumpVersion: "minor", enabled: true, labels: ["update/docker/general/major"], matchFileNames: [ "charts/dependency/**", "charts/stable/**", "charts/incubator/**", "charts/premium/**", "charts/system/**", ], autoApprove: false, }, { matchDatasources: ["docker"], automerge: true, matchUpdateTypes: ["minor"], bumpVersion: "minor", enabled: true, labels: ["update/docker/general/non-major", "automerge"], matchFileNames: [ "charts/dependency/**", "charts/stable/**", "charts/incubator/**", "charts/premium/**", // "charts/system/**", ], }, { matchDatasources: ["docker"], automerge: true, matchUpdateTypes: ["patch", "digest", "pin"], bumpVersion: "patch", enabled: true, labels: ["update/docker/general/non-major", "automerge"], matchFileNames: [ "charts/dependency/**", "charts/stable/**", "charts/incubator/**", "charts/premium/**", // "charts/system/**", ], }, // // Tag tccr.io/truecharts based on semver // { matchDatasources: ["docker"], versioning: "semver", matchPackagePrefixes: ["tccr.io/truecharts"], }, // // Tag semantic version type based on regex // { matchDatasources: ["docker"], versioning: "regex:^(?14)\\.(?\\d+)\\.(?\\d+)$", matchPackageNames: ["tccr.io/tccr/postgresql"], }, { matchDatasources: ["docker"], versioning: "regex:^v(?\\d{2})(?\\d{2})(?\\d{2})$", matchPackageNames: ["photoprism"], }, { matchDatasources: ["docker"], versioning: "regex:^v(?\\d{4})-(?\\d{2})$", matchPackageNames: ["rssbridge/rss-bridge"], }, { matchDatasources: ["docker"], versioning: "regex:^(?\\d{2})\\.(?\\d+)\\.(?\\d+)$", matchPackageNames: ["linuxserver/heimdall"], }, { matchDatasources: ["docker"], versioning: "regex:^v(?\\d+)-(?\\d+)$", matchPackagePrefixes: ["jupyter"], groupName: "jupyter", }, { matchDatasources: ["docker"], matchPackagePrefixes: ["altran1502/immich"], groupName: "immich", }, { matchDatasources: ["docker"], matchPackagePrefixes: ["portainer"], groupName: "portainer", }, { matchDatasources: ["docker"], matchPackagePrefixes: ["m1k1o/neko"], groupName: "neko", }, { matchDatasources: ["docker"], matchPackagePrefixes: ["ghcr.io/mriedmann/humhub-"], groupName: "humhub", }, { matchDatasources: ["docker"], matchPackagePrefixes: ["lscr.io/linuxserver/webtop"], groupName: "webtop", }, { matchDatasources: ["docker"], matchPackagePrefixes: ["lscr.io/linuxserver/rdesktop"], groupName: "rdesktop", }, { matchDatasources: ["docker"], matchPackagePrefixes: ["tccr.io/tccr/metallb"], groupName: "metallb", }, { matchDatasources: ["docker"], matchPackagePrefixes: ["zabbix/zabbix"], groupName: "zabbix", }, { matchDatasources: ["docker"], matchPackagePrefixes: ["vikunja"], groupName: "vikunja", }, { matchDatasources: ["docker"], matchPackagePrefixes: ["mltooling/ml-workspace"], groupName: "ml-workspace", }, { matchDatasources: ["docker"], matchPackagePrefixes: ["itzg/bungeecord"], groupName: "bungeecord", }, { matchDatasources: ["docker"], matchPackagePrefixes: ["tccr.io/tccr/nextcloud-"], groupName: "nextcloud", }, { matchDatasources: ["docker"], matchPackagePrefixes: ["itzg/minecraft-java"], groupName: "minecraft-java", }, { matchDatasources: ["docker"], matchPackagePrefixes: ["reallibrephotos/librephotos"], groupName: "librephotos", }, { matchDatasources: ["docker"], matchPackagePrefixes: ["tombursch/kitchenowl"], groupName: "kitchenowl", }, { matchDatasources: ["docker"], matchPackagePrefixes: ["ghcr.io/goauthentik/"], groupName: "authentik", }, { matchDatasources: ["docker"], matchPackagePrefixes: ["cwq1913/lama-cleaner"], groupName: "lama-cleaner", }, { matchDatasources: ["docker"], matchPackagePrefixes: ["docspell/"], groupName: "docspell", }, { matchDatasources: ["docker"], matchPackagePrefixes: ["datarhei/restreamer"], groupName: "restreamer", }, { matchDatasources: ["docker"], matchPackagePrefixes: ["penpotapp/"], groupName: "penpot", }, { matchDatasources: ["docker"], matchPackagePrefixes: ["jasongdove/ersatztv"], groupName: "ersatztv", }, // matchPackagePatterns { matchDatasources: ["docker"], versioning: "regex:^(?14)\\.(?\\d+)\\.(?\\d+)$", matchPackagePatterns: ["^bitnami/postgresql$"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^(?\\d{4})-(?\\d{2})-(?\\d{2})$", matchPackagePatterns: ["^.*oznu\\/homebridge$"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^(?\\d+)-(?\\d+)-(?\\d+)$", matchPackagePatterns: ["^jupyter\\/.+$"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)-ubuntu$", matchPackagePatterns: ["^zabbix\\/zabbix-.*$"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^stable-(?\\d{1})(?\\d{1})(?\\d{2}).*$", matchPackagePatterns: ["^jitsi\\/.*$"], groupName: "jitsi", automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^latest-(?\\d{4})-(?\\d{2})-(?\\d{2})$", matchPackagePatterns: ["^wangqiru/ttrss$"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)$", matchPackagePatterns: ["^penpot\\/.*$"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^\\d+-jammy-(?(full|lite))-v(?\\d+)\\.(?\\d+)\\.(?\\d+)$", matchPackagePatterns: ["^.+\\/koush\\/scrypted$"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^version-(?\\d+)\\.(?\\d+)\\.(?\\d+)-.*$", matchPackagePatterns: ["^.*linuxserver\\/deluge$"], automerge: true, }, // matchPackageNames { matchDatasources: ["docker"], versioning: "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)-postgres-tomcat$", matchPackageNames: ["xwiki"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^version-(?\\d+)\\.(?\\d+)\\.(?\\d+)$", matchPackageNames: ["fireflyiii/core"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^v(?\\d+)\\.(?\\d+)\\.(?\\d+)-\\d+\\.\\d+\\.\\d+$", matchPackageNames: ["netboxcommunity/netbox"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^(?\\d{2})(?\\d{2})(?\\d{2})$", matchPackageNames: ["photoprism/photoprism"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)$", matchPackageNames: ["cloudflare/cloudflared"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^version-(?\\d+)\\.(?\\d+)\\.(?\\d+)$", matchPackageNames: ["linuxserver/calibre-web"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^postgresql-v(?\\d+)\\.(?\\d+)\\.(?\\d+)$", matchPackageNames: ["ghcr.io/umami-software/umami"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^version-v(?\\d+)\\.(?\\d+)\\.?(?\\d*)$", matchPackageNames: ["linuxserver/mylar3"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^[a-z0-9]{9}-v(?\\d+)\\.(?\\d+)\\.(?\\d+)-go\\d+\\.\\d+\\.\\d+$", matchPackageNames: ["storjlabs/storagenode"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)-php8\\.0-apache$", matchPackageNames: ["joyqi/typecho"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^v\\.(?\\d+)\\.(?\\d+)\\.(?\\d+)$", matchPackageNames: ["difegue/lanraragi"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^RELEASE\\.(?\\d+)-(?\\d+)-(?\\d+)T\\d+-\\d+-\\d+Z$", matchPackageNames: ["minio/minio"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^RELEASE\\.(?\\d+)-(?\\d+)-(?\\d+)T\\d+-\\d+-\\d+Z$", matchPackageNames: ["minio/mc"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^apache-(?\\d+)\\.(?\\d+)\\.?(?\\d*)-prod$", matchPackageNames: ["kimai/kimai2"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^(?\\d+)-(?\\d+)-(?\\d+)$", matchPackageNames: ["rssbridge/rss-bridge"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^(?\\d+)-(?\\d+)-(?\\d+)$", matchPackageNames: ["alexta69/metube"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^focal-(?\\d+)\\.(?\\d+)\\.(?\\d+)$", matchPackageNames: ["codeproject/senseai-server"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^latest-(?\\d+)-(?\\d+)-(?\\d+)$", matchPackageNames: ["wangqiru/ttrss"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)(-\\d+)?$", matchPackageNames: ["kiwix/kiwix-serve"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^v(?\\d+)\\.(?\\d+)\\.(?\\d+)-omnibus$", matchPackageNames: ["ghcr.io/analogj/scrutiny"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^(?\\d+)-(?\\d+)-(?\\d+)$", matchPackageNames: ["diygod/rsshub"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)-amd64(nvidia)?$", matchPackageNames: ["blakeblackshear/frigate"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^(?\\d{1,4})\\.(?\\d+)\\.(?\\d+)$", matchPackageNames: ["kopia/kopia"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^(?\\d{4})\\.(?\\d{1,2})\\.(?\\d{1,2).*$", matchPackageNames: ["alicevision/meshroom"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^(?\\d{4})\\.(?\\d{1,2})\\.(?\\d{1,2})$", matchPackageNames: ["itzg/bungeecord"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^java8-(?\\d{4})\\.(?\\d{1,2})\\.(?\\d{1,2})$", matchPackageNames: ["itzg/bungeecord"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^java11-(?\\d{4})\\.(?\\d{1,2})\\.(?\\d{1,2})$", matchPackageNames: ["itzg/bungeecord"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^java17-(?\\d{4})\\.(?\\d{1,2})\\.(?\\d{1,2})$", matchPackageNames: ["itzg/bungeecord"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^(?\\d{4})\\.(?d{1,2})\\.(?\\d{1,2})(-java\\d{1,2}.*)?$", matchPackageNames: ["itzg/minecraft-server"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^(?\\d{4})(?\\d{2})(?\\d{2})$", matchPackageNames: ["ankicommunity/anki-sync-server"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^(?\\d+)\\.(?\\d+)-jdk17$", matchPackageNames: ["jenkins/jenkins"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^x64-v(?\\d*)\\.(?\\d*)\\.(?\\d*)$", matchPackageNames: ["housewrecker/gaps"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^(?\\d*)\\.(?\\d*)\\.(?\\d*)-\\d*$", matchPackageNames: ["sameersbn/apt-cacher-ng"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^v3-3\\.(?\\d*)\\.(?\\d*)\\.(?\\d*)$", matchPackageNames: ["ghcr.io/hotio/whisparr"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^release-(?\\d*)\\.(?\\d*)$", matchPackageNames: ["mattermost/mattermost-premium-edition"], automerge: true, }, { matchDatasources: ["docker"], versioning: "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)-.+$", matchPackageNames: ["corentinth/it-tools"], automerge: true, }, // // Version strategies // // Versioning for linuxserver two-three digit container versions { matchPackagePatterns: ["^linuxserver\\/", "^deepquestai\\/"], versioning: "regex:^(?.*?(\\d+\\.)??)(?\\d+)\\.(?\\d+)\\.?(?\\d+)?(-r?p?\\d)?$", }, { matchDatasources: ["docker"], versioning: "loose", matchPackageNames: [ "ghcr.io/onedr0p/plex", "ghcr.io/onedr0p/qbittorrent", "sirfragalot/hyperion.ng", ], }, { matchDatasources: ["docker"], matchPackageNames: [ "quay.io/helmpack/chart-releaser", "jnorwood/helm-docs", "quay.io/git-chglog/git-chglog", ], automerge: false, matchUpdateTypes: ["major", "minor", "patch", "digest", "pin"], labels: ["renovate/image", "ci"], }, ], }