TrueChartsClone/.github/renovate.json5

653 lines
20 KiB
Plaintext

{
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 <bot@truecharts.org>",
"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:^(?<major>14)\\.(?<minor>\\d+)\\.(?<patch>\\d+)$",
matchPackageNames: ["tccr.io/tccr/postgresql"],
},
{
matchDatasources: ["docker"],
versioning: "regex:^v(?<major>\\d{2})(?<minor>\\d{2})(?<patch>\\d{2})$",
matchPackageNames: ["photoprism"],
},
{
matchDatasources: ["docker"],
versioning: "regex:^v(?<major>\\d{4})-(?<minor>\\d{2})$",
matchPackageNames: ["rssbridge/rss-bridge"],
},
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d{2})\\.(?<minor>\\d+)\\.(?<patch>\\d+)$",
matchPackageNames: ["linuxserver/heimdall"],
},
{
matchDatasources: ["docker"],
versioning: "regex:^v(?<major>\\d+)-(?<minor>\\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:^(?<major>14)\\.(?<minor>\\d+)\\.(?<patch>\\d+)$",
matchPackagePatterns: ["^bitnami/postgresql$"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d{4})-(?<minor>\\d{2})-(?<patch>\\d{2})$",
matchPackagePatterns: ["^.*oznu\\/homebridge$"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d+)-(?<minor>\\d+)-(?<patch>\\d+)$",
matchPackagePatterns: ["^jupyter\\/.+$"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)-ubuntu$",
matchPackagePatterns: ["^zabbix\\/zabbix-.*$"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^stable-(?<major>\\d{1})(?<minor>\\d{1})(?<patch>\\d{2}).*$",
matchPackagePatterns: ["^jitsi\\/.*$"],
groupName: "jitsi",
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^latest-(?<major>\\d{4})-(?<minor>\\d{2})-(?<patch>\\d{2})$",
matchPackagePatterns: ["^wangqiru/ttrss$"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)$",
matchPackagePatterns: ["^penpot\\/.*$"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^\\d+-jammy-(?<compatibility>(full|lite))-v(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)$",
matchPackagePatterns: ["^.+\\/koush\\/scrypted$"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^version-(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)-.*$",
matchPackagePatterns: ["^.*linuxserver\\/deluge$"],
automerge: true,
},
// matchPackageNames
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)-postgres-tomcat$",
matchPackageNames: ["xwiki"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^version-(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)$",
matchPackageNames: ["fireflyiii/core"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^v(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)-\\d+\\.\\d+\\.\\d+$",
matchPackageNames: ["netboxcommunity/netbox"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d{2})(?<minor>\\d{2})(?<patch>\\d{2})$",
matchPackageNames: ["photoprism/photoprism"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)$",
matchPackageNames: ["cloudflare/cloudflared"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^version-(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)$",
matchPackageNames: ["linuxserver/calibre-web"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^postgresql-v(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)$",
matchPackageNames: ["ghcr.io/umami-software/umami"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^version-v(?<major>\\d+)\\.(?<minor>\\d+)\\.?(?<patch>\\d*)$",
matchPackageNames: ["linuxserver/mylar3"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^[a-z0-9]{9}-v(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)-go\\d+\\.\\d+\\.\\d+$",
matchPackageNames: ["storjlabs/storagenode"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)-php8\\.0-apache$",
matchPackageNames: ["joyqi/typecho"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^v\\.(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)$",
matchPackageNames: ["difegue/lanraragi"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^RELEASE\\.(?<major>\\d+)-(?<minor>\\d+)-(?<patch>\\d+)T\\d+-\\d+-\\d+Z$",
matchPackageNames: ["minio/minio"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^RELEASE\\.(?<major>\\d+)-(?<minor>\\d+)-(?<patch>\\d+)T\\d+-\\d+-\\d+Z$",
matchPackageNames: ["minio/mc"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^apache-(?<major>\\d+)\\.(?<minor>\\d+)\\.?(?<patch>\\d*)-prod$",
matchPackageNames: ["kimai/kimai2"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d+)-(?<minor>\\d+)-(?<patch>\\d+)$",
matchPackageNames: ["rssbridge/rss-bridge"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d+)-(?<minor>\\d+)-(?<patch>\\d+)$",
matchPackageNames: ["alexta69/metube"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^focal-(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)$",
matchPackageNames: ["codeproject/senseai-server"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^latest-(?<major>\\d+)-(?<minor>\\d+)-(?<patch>\\d+)$",
matchPackageNames: ["wangqiru/ttrss"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)(-\\d+)?$",
matchPackageNames: ["kiwix/kiwix-serve"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^v(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)-omnibus$",
matchPackageNames: ["ghcr.io/analogj/scrutiny"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d+)-(?<minor>\\d+)-(?<patch>\\d+)$",
matchPackageNames: ["diygod/rsshub"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)-amd64(nvidia)?$",
matchPackageNames: ["blakeblackshear/frigate"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d{1,4})\\.(?<minor>\\d+)\\.(?<patch>\\d+)$",
matchPackageNames: ["kopia/kopia"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d{4})\\.(?<minor>\\d{1,2})\\.(?<patch>\\d{1,2).*$",
matchPackageNames: ["alicevision/meshroom"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d{4})\\.(?<minor>\\d{1,2})\\.(?<patch>\\d{1,2})$",
matchPackageNames: ["itzg/bungeecord"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^java8-(?<major>\\d{4})\\.(?<minor>\\d{1,2})\\.(?<patch>\\d{1,2})$",
matchPackageNames: ["itzg/bungeecord"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^java11-(?<major>\\d{4})\\.(?<minor>\\d{1,2})\\.(?<patch>\\d{1,2})$",
matchPackageNames: ["itzg/bungeecord"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^java17-(?<major>\\d{4})\\.(?<minor>\\d{1,2})\\.(?<patch>\\d{1,2})$",
matchPackageNames: ["itzg/bungeecord"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d{4})\\.(?<minor>d{1,2})\\.(?<patch>\\d{1,2})(-java\\d{1,2}.*)?$",
matchPackageNames: ["itzg/minecraft-server"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d{4})(?<minor>\\d{2})(?<patch>\\d{2})$",
matchPackageNames: ["ankicommunity/anki-sync-server"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d+)\\.(?<minor>\\d+)-jdk17$",
matchPackageNames: ["jenkins/jenkins"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^x64-v(?<major>\\d*)\\.(?<minor>\\d*)\\.(?<patch>\\d*)$",
matchPackageNames: ["housewrecker/gaps"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d*)\\.(?<minor>\\d*)\\.(?<patch>\\d*)-\\d*$",
matchPackageNames: ["sameersbn/apt-cacher-ng"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^v3-3\\.(?<major>\\d*)\\.(?<minor>\\d*)\\.(?<patch>\\d*)$",
matchPackageNames: ["ghcr.io/hotio/whisparr"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^release-(?<major>\\d*)\\.(?<minor>\\d*)$",
matchPackageNames: ["mattermost/mattermost-premium-edition"],
automerge: true,
},
{
matchDatasources: ["docker"],
versioning: "regex:^(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)-.+$",
matchPackageNames: ["corentinth/it-tools"],
automerge: true,
},
//
// Version strategies
//
// Versioning for linuxserver two-three digit container versions
{
matchPackagePatterns: ["^linuxserver\\/", "^deepquestai\\/"],
versioning: "regex:^(?<compatibility>.*?(\\d+\\.)??)(?<major>\\d+)\\.(?<minor>\\d+)\\.?(?<patch>\\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"],
},
],
}