{
  "semanticCommits": "enabled",
  "extends": ["helpers:pinGitHubActionDigests"],
  "dependencyDashboard": true,
  "dependencyDashboardTitle": "Renovate Dashboard 🤖",
  "suppressNotifications": ["prIgnoreNotification"],
  "commitMessageTopic": "{{depName}}",
  "commitMessageExtra": "to {{newVersion}}",
  "commitMessageSuffix": "",
  "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": [
    // Setup datasources for dep updates
    {
      "datasources": ["helm"],
      "matchManagers": ["helmv3"],
      "commitMessageTopic": "Helm chart {{depName}}"
    },
    // global docker datasource settings
    {
      "datasources": ["docker"],
      "matchManagers": ["helm-values"],
      "enabled": true,
      "pinDigests": true,
      "automerge": false,
      "commitMessageTopic": "container image {{depName}}",
      "commitMessageExtra": "to {{#if isSingleVersion}}v{{{newVersion}}}{{else}}{{{newValue}}}{{/if}}",
      "matchUpdateTypes": ["major", "minor", "patch", "digest"],
    },
    {
      "datasources": ["docker"],
      "enabled": true,
      "pinDigests": true,
      "automerge": false,
      "separateMinorPatch": true,
      "commitMessageTopic": "container image {{depName}}",
      "commitMessageExtra": "to {{#if isSingleVersion}}v{{{newVersion}}}{{else}}{{{newValue}}}{{/if}}",
    },
    // Setup datasources for github actions
    {
      "matchManagers": ["github-actions"],
      "excludePackageNames": ["stefanzweifel/git-auto-commit-action"],
      "automerge": true,
    },
    //
    // helm deps
    //
    {
      "matchDatasources": ["helm"],
      "updateTypes": ["major"],
      "automerge": false,
      "bumpVersion": "major",
      "labels": ["update/helm/dependency/major"],
      "groupName": ["helm dependency major"],
      "matchPaths": ["charts/dependency/**"],
    },
    {
      "matchDatasources": ["helm"],
      "automerge": false,
      "matchUpdateTypes": [
        "minor",
        "patch"
      ],
      "bumpVersion": "patch",
      "labels": ["update/helm/dependency/non-major", "automerge"],
      "matchPaths": ["charts/dependency/**"],
      "groupName": "helm dependency non-major",
    },
    //
    // helm ent
    //
    {
      "matchDatasources": ["helm"],
      "updateTypes": ["major"],
      "bumpVersion": "major",
      "enabled": true,
      "labels": ["update/helm/general/major"],
      "groupName": ["helm general major"],
      "matchPaths": ["charts/enterprise/**"],
      "schedule": [
        "before 10pm on tuesday"
      ],
    },
    {
      "matchDatasources": ["helm"],
      "automerge": false,
      "matchUpdateTypes": [
        "minor",
        "patch"
      ],
      "enabled": true,
      "bumpVersion": "patch",
      "labels": ["update/helm/general/non-major", "automerge"],
      "groupName": "helm general non-major",
      "matchPaths": ["charts/enterprise/**"],
      "schedule": [
        "before 10pm on tuesday"
      ],
    },
    //
    // helm charts
    //
    {
      "matchDatasources": ["helm"],
      "updateTypes": ["major"],
      "bumpVersion": "major",
      "enabled": false,
      "labels": ["update/helm/general/major"],
      "groupName": ["helm general major"],
      "matchPaths": ["charts/incubator/**", "charts/SCALE/**", "charts/dev/**", "charts/stable/**", "templates/app/**"],
      "schedule": [
        "before 10pm on tuesday"
      ],
    },
    {
      "matchDatasources": ["helm"],
      "automerge": false,
      "enabled": true,
      "matchUpdateTypes": [
        "minor",
        "patch"
      ],
      "bumpVersion": "patch",
      "labels": ["update/helm/general/non-major", "automerge"],
      "groupName": "helm general non-major",
      "matchPaths": ["charts/incubator/**", "charts/SCALE/**", "charts/dev/**", "charts/stable/**", "templates/app/**"],
      "schedule": [
        "before 10pm on tuesday"
      ],
    },
    //
    // Tag updates for semantic tags on enterprise Apps
    //
    {
      "matchDatasources": ["docker"],
      "updateTypes": ["major"],
      "enabled": true,
      "bumpVersion": "major",
      "labels": ["update/docker/enterprise/major"],
      "matchPaths": ["charts/enterprise/**"],
    },
    {
      "matchDatasources": ["docker"],
      "automerge": false,
      "matchUpdateTypes": [
        "minor",
      ],
      "enabled": true,
      "bumpVersion": "patch",
      "labels": ["update/docker/enterprise/minor"],
      "matchPaths": ["charts/enterprise/**"],
    },
    {
      "matchDatasources": ["docker"],
      "automerge": false,
      "matchUpdateTypes": [
        "patch",
        "digest",
        "pin",
      ],
      "bumpVersion": "patch",
      "enabled": true,
      "labels": ["update/docker/enterprise/patch", "automerge"],
      "matchPaths": ["charts/enterprise/**"],
    },
    //
    // Tag updates for semantic tags on incubator and dev charts
    //
    {
      "matchDatasources": ["docker"],
      "updateTypes": ["major"],
      "bumpVersion": "minor",
      "enabled": false,
      "labels": ["update/docker/incubator/major", "automerge"],
      "matchPaths": ["charts/incubator/**", "charts/dev/**"],
    },
    {
      "matchDatasources": ["docker"],
      "automerge": false,
      "matchUpdateTypes": [
        "minor",
        "patch",
        "digest",
        "pin",
      ],
      "bumpVersion": "patch",
      "enabled": false,
      "labels": ["update/docker/incubator/non-major", "automerge"],
      "matchPaths": ["charts/incubator/**", "charts/dev/**"],
    },
    //
    // Tag updates for semantic tags on all but enterprise and incubator Apps
    //
    {
      "matchDatasources": ["docker"],
      "updateTypes": ["major"],
      "bumpVersion": "minor",
      "enabled": true,
      "labels": ["update/docker/general/major", "automerge"],
      "matchPaths": ["charts/dependency/**", "charts/SCALE/**", "charts/stable/**", "templates/app/**"],
    },
    {
      "matchDatasources": ["docker"],
      "automerge": false,
      "matchUpdateTypes": [
        "minor",
        "patch",
        "digest",
        "pin",
      ],
      "bumpVersion": "patch",
      "enabled": true,
      "labels": ["update/docker/general/non-major", "automerge"],
      "matchPaths": ["charts/dependency/**", "charts/SCALE/**", "charts/library/**", "charts/stable/**", "templates/app/**"],
    },
    //
    // Tag semantic version type based on regex
    //
    {
      "matchDatasources": ["docker"],
      "versioning": "regex:^(?<major>14)\\.(?<minor>\\d+)\\.(?<patch>\\d+)$",
      "matchPackageNames": ["tccr.io/truecharts/postgresql"],
    },
    {
      "matchDatasources": ["docker"],
      "versioning": "regex:^v(?<major>\\d{2})(?<minor>\\d{2})(?<patch>\\d{2})$",
      "matchPackageNames": ["tccr.io/truecharts/photoprism"],
    },
    {
      "matchDatasources": ["docker"],
      "versioning": "regex:^v(?<major>\\d{4})-(?<minor>\\d{2})$",
      "matchPackageNames": ["tccr.io/truecharts/rss-bridge"],
    },
    {
      "matchDatasources": ["docker"],
      "versioning": "regex:^v(?<major>\\d+)-(?<minor>\\d+)$",
      "matchPackagePrefixes": ["tccr.io/truecharts/jupyter"],
      "groupName": "jupyter",
    },
    {
      "matchDatasources": ["docker"],
      "versioning": "regex:^(?<major>\\d{1})(?<minor>\\d{1})(?<patch>\\d{2})$",
      "matchPackagePrefixes": ["tccr.io/truecharts/jitsi"],
      "groupName": "jitsi",
    },
    {
      "matchDatasources": ["docker"],
      "matchPackagePrefixes": ["tccr.io/truecharts/immich"],
      "groupName": "immich",
    },
    {
      "matchDatasources": ["docker"],
      "matchPackagePrefixes": ["tccr.io/truecharts/neko"],
      "groupName": "neko",
    },
    {
      "matchDatasources": ["docker"],
      "matchPackagePrefixes": ["tccr.io/truecharts/webtop"],
      "groupName": "webtop",
    },
    {
      "matchDatasources": ["docker"],
      "matchPackagePrefixes": ["tccr.io/truecharts/zabbix"],
      "groupName": "zabbix",
    },
    {
      "matchDatasources": ["docker"],
      "matchPackagePrefixes": ["tccr.io/truecharts/vikunja"],
      "groupName": "vikunja",
    },
    {
      "matchDatasources": ["docker"],
      "matchPackagePrefixes": ["tccr.io/truecharts/ml-workspace"],
      "groupName": "ml-workspace",
    },
    {
      "matchDatasources": ["docker"],
      "matchPackagePrefixes": ["tccr.io/truecharts/bungeecord"],
      "groupName": "bungeecord",
    },
    {
      "matchDatasources": ["docker"],
      "matchPackagePrefixes": ["tccr.io/truecharts/minecraft-java"],
      "groupName": "minecraft-java",
    },
    {
      "matchDatasources": ["docker"],
      "matchPackagePrefixes": ["tccr.io/truecharts/mealie"],
      "groupName": "mealie",
    },
    {
      "matchDatasources": ["docker"],
      "matchPackagePrefixes": ["tccr.io/truecharts/librephotos"],
      "groupName": "librephotos",
    },
    {
      "matchDatasources": ["docker"],
      "matchPackagePrefixes": ["tccr.io/truecharts/kitchenowl"],
      "groupName": "kitchenowl",
    },
    {
      "matchDatasources": ["docker"],
      "matchPackagePrefixes": ["tccr.io/truecharts/authentik"],
      "groupName": "authentik",
    },
    {
      "matchDatasources": ["docker"],
      "matchPackagePrefixes": ["tccr.io/truecharts/lama-cleaner"],
      "groupName": "lama-cleaner",
    },
    {
      "matchDatasources": ["docker"],
      "matchPackagePrefixes": ["tccr.io/truecharts/rickroll"],
      "groupName": "rickroll",
    },
    {
      "matchDatasources": ["docker"],
      "matchPackagePrefixes": ["tccr.io/truecharts/scrypted"],
      "groupName": "scrypted",
    },
    {
      "matchDatasources": ["docker"],
      "matchPackagePrefixes": ["tccr.io/truecharts/docspell"],
      "groupName": "docspell",
    },
    {
      "matchDatasources": ["docker"],
      "matchPackagePrefixes": ["tccr.io/truecharts/restreamer"],
      "groupName": "restreamer",
    },
    {
      "matchDatasources": ["docker"],
      "matchPackagePrefixes": ["tccr.io/truecharts/penpot"],
      "groupName": "penpot",
    },
    {
      "matchDatasources": ["docker"],
      "matchPackagePrefixes": ["tccr.io/truecharts/rdesktop"],
      "groupName": "rdesktop",
    },
    {
      "matchDatasources": ["docker"],
      "matchPackagePrefixes": ["tccr.io/truecharts/ersatztv"],
      "groupName": "ersatztv",
    }
  ]
}
