{
  "enabled": true,
  "dependencyDashboard": true,
  "dependencyDashboardTitle": "Renovate Dashboard",
  "assigneesFromCodeOwners": true,
  "reviewersFromCodeOwners": true,
  "suppressNotifications": ["prIgnoreNotification"],
  "rebaseWhen": "conflicted",
  "prConcurrentLimit": 5,
  "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}}",
      "separateMinorPatch": true
    },
    // global docker datasource settings
    {
      "datasources": ["docker"],
      "matchManagers": ["helm-values"],
      "enabled": true,
      "commitMessageTopic": "container image {{depName}}",
      "commitMessageExtra": "to {{#if isSingleVersion}}v{{{newVersion}}}{{else}}{{{newValue}}}{{/if}}",
      "matchUpdateTypes": ["major", "minor", "patch"],
    },
    //
    // Common library dep
    //
    {
      "matchDatasources": ["helm"],
      "updateTypes": ["major"],
      "bumpVersion": "major",
      "labels": ["dependency/major"],
      "packageNames": ["common"],
      "groupName": ["internal major dep"]
    },
    {
      "matchDatasources": ["helm"],
      "updateTypes": ["minor"],
      "bumpVersion": "minor",
      "labels": ["dependency/minor"],
      "packageNames": ["common"],
      "groupName": ["internal minor dep"]
    },
    {
      "matchDatasources": ["helm"],
      "automerge": true,
      "updateTypes": ["patch"],
      "bumpVersion": "patch",
      "labels": ["dependency/patch"],
      "packageNames": ["common"],
      "groupName": ["internal patch dep"]
    },
    //
    // External helm deps
    //
    {
      "matchDatasources": ["helm"],
      "commitMessagePrefix": "[{{{parentDir}}}]",
      "branchTopic": "{{{parentDir}}}-{{{depNameSanitized}}}-{{{newMajor}}}{{#if isPatch}}.{{{newMinor}}}{{/if}}.x{{#if isLockfileUpdate}}-lockfile{{/if}}",
      "updateTypes": ["major"],
      "bumpVersion": "major",
      "labels": ["dependency/major"],
      "excludePackageNames": ["common"],
      "schedule": [
        "on tuesday"
      ]
    },
    {
      "matchDatasources": ["helm"],
      "updateTypes": ["minor"],
      "bumpVersion": "minor",
      "labels": ["dependency/minor"],
      "excludePackageNames": ["common"],
      "groupName": ["external minor dep"],
      "schedule": [
        "on tuesday"
      ]
    },
    {
      "matchDatasources": ["helm"],
      "updateTypes": ["patch"],
      "bumpVersion": "patch",
      "labels": ["dependency/patch"],
      "excludePackageNames": ["common"],
      "groupName": ["external patch dep"],
      "schedule": [
        "on tuesday"
      ]
    },
    //
    // Tag updates for semantic tags
    //
    {
      "matchDatasources": ["docker"],
      "commitMessagePrefix": "[{{{parentDir}}}]",
      "branchTopic": "{{{parentDir}}}-{{{depNameSanitized}}}-{{{newMajor}}}{{#if isPatch}}.{{{newMinor}}}{{/if}}.x{{#if isLockfileUpdate}}-lockfile{{/if}}",
      "updateTypes": ["major"],
      "bumpVersion": "major",
      "labels": ["tag/major"],
      "schedule": [
        "on tuesday"
      ]
    },
    {
      "matchDatasources": ["docker"],
      "updateTypes": ["minor"],
      "bumpVersion": "minor",
      "labels": ["tag/minor"],
      "groupName": ["minor"],
      "schedule": [
        "on tuesday"
      ]
    },
    {
      "matchDatasources": ["docker"],
      "updateTypes": ["patch"],
      "bumpVersion": "patch",
      "labels": ["tag/patch"],
      "groupName": ["patch"],
      "schedule": [
        "on tuesday"
      ]
    },
    //
    // Version strategies
    //
    // Versioning for linuxserver two-three digit container versions
    {
      "packagePatterns": ["^linuxserver\\/"],
      "versionScheme": "regex:^(?<compatibility>.*?(\\d+\\.)??)(?<major>\\d+)\\.(?<minor>\\d+)\\.?(?<patch>\\d+)?(-r?p?\\d)?$"
    },
    // Versioning for slightly problematic container versions
    {
      "matchDatasources": ["docker"],
      "versioning": "loose",
      "matchPackageNames": [
        "ghcr.io/truecharts/plex",
        "ghcr.io/truecharts/qbittorrent",
      ],
    },
  ]
}
