diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 5dc67390a8a..3e25a89f8b0 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -1,653 +1,7 @@ { - semanticCommits: "enabled", - extends: ["helpers:pinGitHubActionDigests"], - dependencyDashboard: true, - dependencyDashboardTitle: "Renovate Dashboard 🤖", - suppressNotifications: ["prIgnoreNotification"], - commitMessageTopic: "{{depName}}", - commitMessageExtra: "to {{newVersion}}", - commitMessageSuffix: "By Renovate", - rebaseWhen: "conflicted", - prConcurrentLimit: 150, - "ignorePaths": ["archive/**"], - 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"], - }, - ], -} + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:recommended", + "github>truecharts/public//.github/renovate/main.json5" + ] +} \ No newline at end of file diff --git a/archive/renovate.json5 b/archive/renovate.json5 new file mode 100644 index 00000000000..5dc67390a8a --- /dev/null +++ b/archive/renovate.json5 @@ -0,0 +1,653 @@ +{ + semanticCommits: "enabled", + extends: ["helpers:pinGitHubActionDigests"], + dependencyDashboard: true, + dependencyDashboardTitle: "Renovate Dashboard 🤖", + suppressNotifications: ["prIgnoreNotification"], + commitMessageTopic: "{{depName}}", + commitMessageExtra: "to {{newVersion}}", + commitMessageSuffix: "By Renovate", + rebaseWhen: "conflicted", + prConcurrentLimit: 150, + "ignorePaths": ["archive/**"], + 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"], + }, + ], +}