{ extends: [ ":enableRenovate", "config:base", ":disableRateLimiting", ":dependencyDashboard", ":semanticCommits", ":separatePatchReleases", "docker:enableMajor", ":enablePreCommit", "github>auricom/home-ops//.github/renovate/autoMerge", "github>auricom/home-ops//.github/renovate/groups", "github>auricom/home-ops//.github/renovate/labels", "github>auricom/home-ops//.github/renovate/semanticCommits", ], platform: "github", username: "feisar-bot[bot]", repositories: ["auricom/home-ops"], assignees: ["auricom"], onboarding: false, requireConfig: false, gitAuthor: "feisar-bot ", dependencyDashboardTitle: "Renovate Dashboard 🤖", suppressNotifications: ["prIgnoreNotification"], rebaseWhen: "conflicted", ignorePaths: [ "cluster/base/", "**/backup-job.yaml", "**/trash-updater-job.yaml", "**/travelstories/**", ], // set up renovate managers "docker-compose": { fileMatch: [ "(^|/)docker-compose.*.ya?ml$", "(^|/)docker-compose.*.ya?ml.j2$", ], }, "helm-values": { fileMatch: ["cluster/.+/helm-release\\.yaml$"], }, helmv3: { fileMatch: ["charts/.+/Chart\\.yaml$"], }, kubernetes: { fileMatch: ["cluster/.+\\.yaml$"], }, flux: { fileMatch: ["cluster/.+\\.yaml$"], }, regexManagers: [ { description: "Process CRD dependencies", fileMatch: ["cluster/configuration/crds/.+\\.ya?ml$"], matchStrings: [ // GitRepository where 'Git release/tag' matches 'Helm' version "registryUrl=(?\\S+) chart=(?\\S+)\n.*?(?[^-\\s]*)\n", // Kustomization where 'GitHub release artifact URL' matches 'Docker image' version "datasource=(?\\S+) image=(?\\S+)\n.*?-\\s(.*?)/(?[^/]+)/[^/]+\n", ], datasourceTemplate: "{{#if datasource}}{{{datasource}}}{{else}}helm{{/if}}", }, { description: "Process various dependencies", fileMatch: ["ansible/.+\\.ya?ml$", "cluster/.+\\.ya?ml$"], matchStrings: [ 'datasource=(?\\S+) depName=(?\\S+)( versioning=(?\\S+))?\n.*?"(?.*)"\n', ], datasourceTemplate: "{{#if datasource}}{{{datasource}}}{{else}}github-releases{{/if}}", versioningTemplate: "{{#if versioning}}{{{versioning}}}{{else}}semver{{/if}}", }, { description: "Process raw GitHub URLs", fileMatch: ["cluster/.+\\.ya?ml$"], matchStrings: [ "https:\\/\\/raw.githubusercontent.com\\/(?[\\w\\d\\-_]+\\/[\\w\\d\\-_]+)\\/(?[\\w\\d\\.\\-_]+)\\/.*", ], datasourceTemplate: "github-releases", versioningTemplate: "semver", }, ], packageRules: [ // setup datasources { matchDatasources: ["helm"], ignoreDeprecated: true, }, { matchDatasources: ["docker"], commitMessageExtra: "to {{newVersion}}", }, // custom versioning { matchDatasources: ["docker"], versioning: "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)-(?.*)$", matchPackageNames: ["blakeblackshear/frigate"], }, { matchDatasources: ["docker"], versioning: "regex:^RELEASE\\.(?\\d+)-(?\\d+)-(?\\d+)T.*Z(-(?.*))?$", matchPackageNames: ["quay.io/minio/minio"], }, { matchDatasources: ["docker"], versioning: "loose", matchPackageNames: ["ghcr.io/k8s-at-home/qbittorrent"], }, { matchDatasources: ["docker"], versioning: "regex:^version-v(?\\d+)\\.(?\\d+)\\.(?\\d+)$", matchPackageNames: [ "ghcr.io/linuxserver/bookstack", "ghcr.io/linuxserver/calibre", "ghcr.io/linuxserver/healthchecks", ], }, { matchDatasources: ["docker"], versioning: "regex:^version-(?\\d+)\\.(?\\d+)\\.(?\\d+)$", matchPackageNames: ["ghcr.io/linuxserver/resilio-sync"], }, ], }