diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 6a5b152dd..0a3b93682 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -1,123 +1,118 @@ { - extends: [ - ":enableRenovate", + "extends": [ "config:base", + "docker:enableMajor", ":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", + ":automergeDigest", + ":automergeBranchPush", + "github>auricom/home-ops//.github/renovate/autoMerge.json5", + "github>auricom/home-ops//.github/renovate/commitMessage.json5", + "github>auricom/home-ops//.github/renovate/groups.json5", + "github>auricom/home-ops//.github/renovate/labels.json5", + "github>auricom/home-ops//.github/renovate/semanticCommits.json5" ], - 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: [ + "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", + "commitBodyTable": true, + "ignorePaths": [ "cluster/base/", "**/backup-job.yaml", - "**/trash-updater-job.yaml", - "**/travelstories/**", + "**/trash-updater-job.yaml" ], // set up renovate managers "docker-compose": { - fileMatch: [ - "(^|/)docker-compose.*.ya?ml$", - "(^|/)docker-compose.*.ya?ml.j2$", - ], + "fileMatch": ["ansible/.+/docker-compose.*\\.ya?ml(\\.j2)?$"] + }, + "flux": { + "fileMatch": ["cluster/.+\\.ya?ml$"] }, "helm-values": { - fileMatch: ["cluster/.+/helm-release\\.yaml$"], + "fileMatch": ["cluster/.+\\.ya?ml$"] }, - helmv3: { - fileMatch: ["charts/.+/Chart\\.yaml$"], + "kubernetes": { + "fileMatch": ["cluster/.+\\.ya?ml$"] }, - kubernetes: { - fileMatch: ["cluster/.+\\.yaml$"], - }, - flux: { - fileMatch: ["cluster/.+\\.yaml$"], - }, - regexManagers: [ + "regexManagers": [ { - description: "Process CRD dependencies", - fileMatch: ["cluster/configuration/crds/.+\\.ya?ml$"], - matchStrings: [ + "description": "Process CRD dependencies", + "fileMatch": ["cluster/.+\\.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", + "datasource=(?\\S+) image=(?\\S+)\n.*?-\\s(.*?)/(?[^/]+)/[^/]+\n" ], - datasourceTemplate: "{{#if datasource}}{{{datasource}}}{{else}}helm{{/if}}", + "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', + "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}}", + "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\\.\\-_]+)\\/.*", + "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", - }, + "datasourceTemplate": "github-releases", + "versioningTemplate": "semver" + } ], - packageRules: [ + "packageRules": [ // setup datasources { - matchDatasources: ["helm"], - ignoreDeprecated: true, + "matchDatasources": ["helm"], + "ignoreDeprecated": true }, { - matchDatasources: ["docker"], - commitMessageExtra: "to {{newVersion}}", + "matchDatasources": ["docker"], + "commitMessageExtra": "to {{newVersion}}" }, // custom versioning { - matchDatasources: ["docker"], - versioning: "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)-(?.*)$", - matchPackageNames: ["blakeblackshear/frigate"], + "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": "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": "loose", + "matchPackageNames": ["ghcr.io/k8s-at-home/qbittorrent"] }, { - matchDatasources: ["docker"], - versioning: "regex:^version-v(?\\d+)\\.(?\\d+)\\.(?\\d+)$", - matchPackageNames: [ + "matchDatasources": ["docker"], + "versioning": "regex:^version-v(?\\d+)\\.(?\\d+)\\.(?\\d+)$", + "matchPackageNames": [ "ghcr.io/linuxserver/bookstack", "ghcr.io/linuxserver/calibre", - "ghcr.io/linuxserver/healthchecks", - ], + "ghcr.io/linuxserver/healthchecks" + ] }, { - matchDatasources: ["docker"], - versioning: "regex:^version-(?\\d+)\\.(?\\d+)\\.(?\\d+)$", - matchPackageNames: ["ghcr.io/linuxserver/resilio-sync"], - }, - ], + "matchDatasources": ["docker"], + "versioning": "regex:^version-(?\\d+)\\.(?\\d+)\\.(?\\d+)$", + "matchPackageNames": ["ghcr.io/linuxserver/resilio-sync"] + } + ] } diff --git a/.github/renovate/autoMerge.json b/.github/renovate/autoMerge.json deleted file mode 100644 index ef5e056fd..000000000 --- a/.github/renovate/autoMerge.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "packageRules": [ - { - "matchDatasources": ["docker", "github-tags"], - "automerge": true, - "automergeType": "branch", - "requiredStatusChecks": null, - "matchUpdateTypes": ["minor", "patch"], - "matchPackageNames": [ - "ghcr.io/k8s-at-home/prowlarr-nightly", - "renovatebot/github-action", - "oxsecurity/megalinter" - ] - } - ] -} diff --git a/.github/renovate/autoMerge.json5 b/.github/renovate/autoMerge.json5 new file mode 100644 index 000000000..8e06d318b --- /dev/null +++ b/.github/renovate/autoMerge.json5 @@ -0,0 +1,34 @@ +{ + "packageRules": [ + { + "description": "Auto merge container digests", + "matchDatasources": ["docker"], + "automerge": true, + "automergeType": "branch", + "requiredStatusChecks": null, + "matchUpdateTypes": ["digest"], + "matchPackagePattern": ["ghcr.io/k8s-at-home", "ghcr.io/auricom"] + }, + { + "description": "Auto merge containers", + "matchDatasources": ["docker"], + "automerge": true, + "automergeType": "branch", + "requiredStatusChecks": null, + "matchUpdateTypes": ["minor", "patch"], + "matchPackageNames": ["ghcr.io/onedr0p/prowlarr-nightly"] + }, + { + "description": "Auto merge GitHub Actions", + "matchDatasources": ["github-tags"], + "automerge": true, + "automergeType": "branch", + "requiredStatusChecks": null, + "matchUpdateTypes": ["minor", "patch"], + "matchPackageNames": [ + "lycheeverse/lychee-action", + "renovatebot/github-action" + ] + } + ] +} diff --git a/.github/renovate/commitMessage.json5 b/.github/renovate/commitMessage.json5 new file mode 100644 index 000000000..c06e19b8a --- /dev/null +++ b/.github/renovate/commitMessage.json5 @@ -0,0 +1,15 @@ +{ + commitMessageTopic: "{{depName}}", + commitMessageExtra: "to {{newVersion}}", + commitMessageSuffix: "", + packageRules: [ + { + matchDatasources: ["helm"], + commitMessageTopic: "chart {{depName}}", + }, + { + matchDatasources: ["docker"], + commitMessageTopic: "image {{depName}}", + }, + ], +} diff --git a/.github/renovate/groups.json b/.github/renovate/groups.json5 similarity index 100% rename from .github/renovate/groups.json rename to .github/renovate/groups.json5 diff --git a/.github/renovate/labels.json b/.github/renovate/labels.json5 similarity index 98% rename from .github/renovate/labels.json rename to .github/renovate/labels.json5 index 36da3e72a..b66c69474 100644 --- a/.github/renovate/labels.json +++ b/.github/renovate/labels.json5 @@ -35,6 +35,6 @@ { "matchManagers": ["github-actions"], "addLabels": ["renovate/github-action"] - } + } ] - } \ No newline at end of file + } diff --git a/.github/renovate/semanticCommits.json b/.github/renovate/semanticCommits.json5 similarity index 100% rename from .github/renovate/semanticCommits.json rename to .github/renovate/semanticCommits.json5