diff --git a/.github/renovate/folders/clusters.json5 b/.github/renovate/folders/clusters.json5 index 5c60941b8c4..9a6a78be423 100644 --- a/.github/renovate/folders/clusters.json5 +++ b/.github/renovate/folders/clusters.json5 @@ -5,6 +5,7 @@ "github>truecharts/public//.github/renovate/kinds/flux.json5", "github>truecharts/public//.github/renovate/kinds/helm-values.json5", "github>truecharts/public//.github/renovate/kinds/docker.json5", - "github>truecharts/public//.github/renovate/special/talconfig.json5" + "github>truecharts/public//.github/renovate/special/talconfig.json5", + "github>truecharts/public//.github/renovate/special/customClusterManagers.json5" ] } \ No newline at end of file diff --git a/.github/renovate/main.json5 b/.github/renovate/main.json5 index fffa0f86650..8688465a8cd 100644 --- a/.github/renovate/main.json5 +++ b/.github/renovate/main.json5 @@ -20,7 +20,11 @@ "github>truecharts/public//.github/renovate/updates/calver.json5", "github>truecharts/public//.github/renovate/basics/commitMessage.json5", "github>truecharts/public//.github/renovate/basics/labels.json5", - "github>truecharts/public//.github/renovate/special/groups.json5" + "github>truecharts/public//.github/renovate/special/groups.json5", + "github>truecharts/public//.github/renovate/special/automerge.json5", + "github>truecharts/public//.github/renovate/special/customRules.json5", + "github>truecharts/public//.github/renovate/special/customVersioning.json5", + "github>truecharts/public//.github/renovate/special/schedules.json5" ], // Main Renovate configuration that lists package rules for various paths "packageRules": [ diff --git a/.github/renovate/special/customManagers.json5 b/.github/renovate/special/customClusterManagers.json5 similarity index 86% rename from .github/renovate/special/customManagers.json5 rename to .github/renovate/special/customClusterManagers.json5 index 4fb8fe68bff..20a4df38418 100644 --- a/.github/renovate/special/customManagers.json5 +++ b/.github/renovate/special/customClusterManagers.json5 @@ -4,7 +4,7 @@ { "customType": "regex", "description": ["Process custom dependencies"], - "fileMatch": ["(^|/)kubernetes/.+\\.ya?ml(?:\\.j2)?$"], + "fileMatch": ["(^|/)clusters/.+\\.ya?ml(?:\\.j2)?$"], "matchStrings": [ "datasource=(?\\S+) depName=(?\\S+)( repository=(?\\S+))?\\n.+: (&\\S+\\s)?(?\\S+)", "datasource=(?\\S+) depName=(?\\S+)\\n.+/(?(v|\\d)[^/]+)" @@ -14,7 +14,7 @@ { "customType": "regex", "description": ["Process CloudnativePG Postgresql version"], - "fileMatch": ["(^|/)kubernetes/.+\\.ya?ml(?:\\.j2)?$"], + "fileMatch": ["(^|/)clusters/.+\\.ya?ml(?:\\.j2)?$"], "matchStrings": ["imageName: (?\\S+):(?.*\\-.*)"], "datasourceTemplate": "docker", "versioningTemplate": "redhat" diff --git a/.github/renovate/special/customRules.json5 b/.github/renovate/special/customRules.json5 index 2fc858f2711..a41954f7809 100644 --- a/.github/renovate/special/customRules.json5 +++ b/.github/renovate/special/customRules.json5 @@ -1,40 +1,5 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "packageRules": [ - { - "description": ["Loose versioning for non-semver packages"], - "matchDatasources": ["docker"], - "matchPackagePatterns": ["cross-seed", "plex"], - "versioning": "loose" - }, - { - "description": ["Custom schedule for frequently updated packages"], - "matchDataSources": ["docker", "helm"], - "matchPackagePatterns": ["minio", "postgresql", "reloader"], - "schedule": ["on the first day of the month"] - }, - { - "description": ["Custom versioning for k3s"], - "matchDatasources": ["github-releases"], - "matchPackagePatterns": ["k3s"], - "versioning": "regex:^v(?\\d+)\\.(?\\d+)\\.(?\\d+)(?\\+k3s)(?\\d+)$" - }, - { - "description": ["Custom versioning for minio"], - "matchDatasources": ["docker"], - "matchPackagePatterns": ["minio"], - "versioning": "regex:^RELEASE\\.(?\\d+)-(?\\d+)-(?\\d+)T.*Z$" - }, - { - "matchDatasources": ["docker"], - "matchPackagePatterns": ["kopia"], - "allowedVersions": "<999" - }, - { - "matchDatasources": ["docker"], - "matchPackagePatterns": ["postgresql"], - "allowedVersions": "<17" - } - ] } \ No newline at end of file diff --git a/.github/renovate/special/customVersioning.json5 b/.github/renovate/special/customVersioning.json5 new file mode 100644 index 00000000000..f8e183ca725 --- /dev/null +++ b/.github/renovate/special/customVersioning.json5 @@ -0,0 +1,235 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "packageRules": [ + { + "description": ["Loose versioning for non-semver packages"], + "matchDatasources": ["docker"], + "matchPackagePatterns": ["cross-seed", "plex"], + "versioning": "loose" + }, + { + "description": ["Custom versioning for k3s"], + "matchDatasources": ["github-releases"], + "matchPackagePatterns": ["k3s"], + "versioning": "regex:^v(?\\d+)\\.(?\\d+)\\.(?\\d+)(?\\+k3s)(?\\d+)$" + }, + { + "description": ["Custom versioning for minio"], + "matchDatasources": ["docker"], + "matchPackagePatterns": ["minio"], + "versioning": "regex:^RELEASE\\.(?\\d+)-(?\\d+)-(?\\d+)T.*Z$" + }, + { + "matchDatasources": ["docker"], + "matchPackagePatterns": ["kopia"], + "allowedVersions": "<999" + }, + { + "matchDatasources": ["docker"], + "matchPackagePatterns": ["postgresql"], + "allowedVersions": "<17" + }, +{ + matchDatasources: ["docker"], + versioning: "regex:^(?14)\\.(?\\d+)\\.(?\\d+)$", + matchPackageNames: ["tccr.io/tccr/postgresql"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^v(?\\d{2})(?\\d{2})(?\\d{2})$", + matchPackageNames: ["photoprism"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^v(?\\d{4})-(?\\d{2})$", + matchPackageNames: ["rssbridge/rss-bridge"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^(?\\d{2})\\.(?\\d+)\\.(?\\d+)$", + matchPackageNames: ["linuxserver/heimdall"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^v(?\\d+)-(?\\d+)$", + matchPackagePrefixes: ["jupyter"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^(?14)\\.(?\\d+)\\.(?\\d+)$", + matchPackagePatterns: ["^bitnami/postgresql$"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^(?\\d{4})-(?\\d{2})-(?\\d{2})$", + matchPackagePatterns: ["^.*oznu\\/homebridge$"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^(?\\d+)-(?\\d+)-(?\\d+)$", + matchPackagePatterns: ["^jupyter\\/.+$"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)-ubuntu$", + matchPackagePatterns: ["^zabbix\\/zabbix-.*$"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^stable-(?\\d{1})(?\\d{1})(?\\d{2}).*$", + matchPackagePatterns: ["^jitsi\\/.*$"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^latest-(?\\d{4})-(?\\d{2})-(?\\d{2})$", + matchPackagePatterns: ["^wangqiru/ttrss$"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)$", + matchPackagePatterns: ["^penpot\\/.*$"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^\\d+-jammy-(?(full|lite))-v(?\\d+)\\.(?\\d+)\\.(?\\d+)$", + matchPackagePatterns: ["^.+\\/koush\\/scrypted$"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^version-(?\\d+)\\.(?\\d+)\\.(?\\d+)-.*$", + matchPackagePatterns: ["^.*linuxserver\\/deluge$"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)-postgres-tomcat$", + matchPackageNames: ["xwiki"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^version-(?\\d+)\\.(?\\d+)\\.(?\\d+)$", + matchPackageNames: ["fireflyiii/core"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^v(?\\d+)\\.(?\\d+)\\.(?\\d+)-\\d+\\.\\d+\\.\\d+$", + matchPackageNames: ["netboxcommunity/netbox"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^(?\\d{2})(?\\d{2})(?\\d{2})$", + matchPackageNames: ["photoprism/photoprism"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)$", + matchPackageNames: ["cloudflare/cloudflared"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^version-(?\\d+)\\.(?\\d+)\\.(?\\d+)$", + matchPackageNames: ["linuxserver/calibre-web"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^postgresql-v(?\\d+)\\.(?\\d+)\\.(?\\d+)$", + matchPackageNames: ["ghcr.io/umami-software/umami"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^version-v(?\\d+)\\.(?\\d+)\\.?(?\\d*)$", + matchPackageNames: ["linuxserver/mylar3"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^[a-z0-9]{9}-v(?\\d+)\\.(?\\d+)\\.(?\\d+)-go\\d+\\.\\d+\\.\\d+$", + matchPackageNames: ["storjlabs/storagenode"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)-php8\\.0-apache$", + matchPackageNames: ["joyqi/typecho"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^v\\.(?\\d+)\\.(?\\d+)\\.(?\\d+)$", + matchPackageNames: ["difegue/lanraragi"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^RELEASE\\.(?\\d+)-(?\\d+)-(?\\d+)T\\d+-\\d+-\\d+Z$", + matchPackageNames: ["minio/minio"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^RELEASE\\.(?\\d+)-(?\\d+)-(?\\d+)T\\d+-\\d+-\\d+Z$", + matchPackageNames: ["minio/mc"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^apache-(?\\d+)\\.(?\\d+)\\.?(?\\d*)-prod$", + matchPackageNames: ["kimai/kimai2"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^(?\\d+)-(?\\d+)-(?\\d+)$", + matchPackageNames: ["rssbridge/rss-bridge"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^(?\\d+)-(?\\d+)-(?\\d+)$", + matchPackageNames: ["alexta69/metube"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^focal-(?\\d+)\\.(?\\d+)\\.(?\\d+)$", + matchPackageNames: ["codeproject/senseai-server"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^latest-(?\\d+)-(?\\d+)-(?\\d+)$", + matchPackageNames: ["codeproject/senseai-client"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^v(?\\d+)\\.(?\\d+)\\.(?\\d+)$", + matchPackagePatterns: ["^snyk/snyk$"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)$", + matchPackageNames: ["ghcr.io/cirruslabs/ubuntu"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)$", + matchPackageNames: ["bcavin/hexo"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)$", + matchPackageNames: ["linode/lke"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)$", + matchPackageNames: ["mcr.microsoft.com/mssql/server"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^\\d+\\.(?\\d+)\\.(?\\d+)\\.(?\\d+)$", + matchPackageNames: ["mcr.microsoft.com/dotnet/runtime"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)$", + matchPackageNames: ["coder/coder"], +}, +{ + matchDatasources: ["docker"], + versioning: "regex:^latest-(?\\d+)\\.(?\\d+)\\.(?\\d+)$", + matchPackageNames: ["registry.gitlab.com/gitlab-org/gitlab-runner"], +} + + + ] +} \ No newline at end of file diff --git a/.github/renovate/special/groups.json5 b/.github/renovate/special/groups.json5 index 20d57744cf3..fd319e5b8d7 100644 --- a/.github/renovate/special/groups.json5 +++ b/.github/renovate/special/groups.json5 @@ -62,116 +62,170 @@ }, "separateMinorPatch": true }, - { - matchDatasources: ["docker"], - versioning: "regex:^v(?\\d+)-(?\\d+)$", - matchPackagePrefixes: ["jupyter"], - groupName: "jupyter", + { + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["jupyter"], + "groupName": "jupyter" }, { - matchDatasources: ["docker"], - matchPackagePrefixes: ["altran1502/immich"], - groupName: "immich", + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["altran1502/immich"], + "groupName": "immich" }, { - matchDatasources: ["docker"], - matchPackagePrefixes: ["portainer"], - groupName: "portainer", + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["portainer"], + "groupName": "portainer" }, { - matchDatasources: ["docker"], - matchPackagePrefixes: ["m1k1o/neko"], - groupName: "neko", + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["m1k1o/neko"], + "groupName": "neko" }, { - matchDatasources: ["docker"], - matchPackagePrefixes: ["ghcr.io/mriedmann/humhub-"], - groupName: "humhub", + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["ghcr.io/mriedmann/humhub-"], + "groupName": "humhub" }, { - matchDatasources: ["docker"], - matchPackagePrefixes: ["lscr.io/linuxserver/webtop"], - groupName: "webtop", + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["lscr.io/linuxserver/webtop"], + "groupName": "webtop" }, { - matchDatasources: ["docker"], - matchPackagePrefixes: ["lscr.io/linuxserver/rdesktop"], - groupName: "rdesktop", + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["lscr.io/linuxserver/rdesktop"], + "groupName": "rdesktop" }, { - matchDatasources: ["docker"], - matchPackagePrefixes: ["tccr.io/tccr/metallb"], - groupName: "metallb", + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["tccr.io/tccr/metallb"], + "groupName": "metallb" }, { - matchDatasources: ["docker"], - matchPackagePrefixes: ["zabbix/zabbix"], - groupName: "zabbix", + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["zabbix/zabbix"], + "groupName": "zabbix" }, { - matchDatasources: ["docker"], - matchPackagePrefixes: ["vikunja"], - groupName: "vikunja", + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["vikunja"], + "groupName": "vikunja" }, { - matchDatasources: ["docker"], - matchPackagePrefixes: ["mltooling/ml-workspace"], - groupName: "ml-workspace", + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["mltooling/ml-workspace"], + "groupName": "ml-workspace" }, { - matchDatasources: ["docker"], - matchPackagePrefixes: ["itzg/bungeecord"], - groupName: "bungeecord", + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["itzg/bungeecord"], + "groupName": "bungeecord" }, { - matchDatasources: ["docker"], - matchPackagePrefixes: ["tccr.io/tccr/nextcloud-"], - groupName: "nextcloud", + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["tccr.io/tccr/nextcloud-"], + "groupName": "nextcloud" }, { - matchDatasources: ["docker"], - matchPackagePrefixes: ["itzg/minecraft-java"], - groupName: "minecraft-java", + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["itzg/minecraft-java"], + "groupName": "minecraft-java" }, { - matchDatasources: ["docker"], - matchPackagePrefixes: ["reallibrephotos/librephotos"], - groupName: "librephotos", + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["reallibrephotos/librephotos"], + "groupName": "librephotos" }, { - matchDatasources: ["docker"], - matchPackagePrefixes: ["tombursch/kitchenowl"], - groupName: "kitchenowl", + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["tombursch/kitchenowl"], + "groupName": "kitchenowl" }, { - matchDatasources: ["docker"], - matchPackagePrefixes: ["ghcr.io/goauthentik/"], - groupName: "authentik", + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["ghcr.io/goauthentik/"], + "groupName": "authentik" }, { - matchDatasources: ["docker"], - matchPackagePrefixes: ["cwq1913/lama-cleaner"], - groupName: "lama-cleaner", + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["cwq1913/lama-cleaner"], + "groupName": "lama-cleaner" }, { - matchDatasources: ["docker"], - matchPackagePrefixes: ["docspell/"], - groupName: "docspell", + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["docspell/"], + "groupName": "docspell" }, { - matchDatasources: ["docker"], - matchPackagePrefixes: ["datarhei/restreamer"], - groupName: "restreamer", + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["datarhei/restreamer"], + "groupName": "restreamer" }, { - matchDatasources: ["docker"], - matchPackagePrefixes: ["penpotapp/"], - groupName: "penpot", + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["penpotapp/"], + "groupName": "penpot" }, { - matchDatasources: ["docker"], - matchPackagePrefixes: ["jasongdove/ersatztv"], - groupName: "ersatztv", + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["jasongdove/ersatztv"], + "groupName": "ersatztv" + }, + { + "matchDatasources": ["docker"], + "matchPackagePatterns": ["^jitsi\\/.*$"], + "groupName": "jitsi" + }, + { + "matchDatasources": ["docker"], + "matchPackageNames": ["fireflyiii/core"], + "groupName": "fireflyiii" + }, + { + "matchDatasources": ["docker"], + "matchPackageNames": ["cloudflare/cloudflared"], + "groupName": "cloudflare" + }, + { + "matchDatasources": ["docker"], + "matchPackageNames": ["linuxserver/calibre-web"], + "groupName": "calibre-web" + }, + { + "matchDatasources": ["docker"], + "matchPackageNames": ["ghcr.io/umami-software/umami"], + "groupName": "umami" + }, + { + "matchDatasources": ["docker"], + "matchPackageNames": ["storjlabs/storagenode"], + "groupName": "storagenode" + }, + { + "matchDatasources": ["docker"], + "matchPackageNames": ["jenkins/jenkins"], + "groupName": "jenkins" + }, + { + "matchDatasources": ["docker"], + "matchPackageNames": ["housewrecker/gaps"], + "groupName": "gaps" + }, + { + "matchDatasources": ["docker"], + "matchPackageNames": ["ghcr.io/hotio/whisparr"], + "groupName": "whisparr" + }, + { + "matchDatasources": ["docker"], + "matchPackageNames": ["mattermost/mattermost-premium-edition"], + "groupName": "mattermost" + }, + { + "matchDatasources": ["docker"], + "matchPackageNames": ["corentinth/it-tools"], + "groupName": "it-tools" } ] } \ No newline at end of file diff --git a/.github/renovate/special/schedules.json5 b/.github/renovate/special/schedules.json5 new file mode 100644 index 00000000000..d38931ef6af --- /dev/null +++ b/.github/renovate/special/schedules.json5 @@ -0,0 +1,11 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "packageRules": [ + { + "description": ["Custom schedule for frequently updated packages"], + "matchDataSources": ["docker", "helm"], + "matchPackagePatterns": ["minio", "postgresql", "reloader"], + "schedule": ["on the first day of the month"] + } + ] +} \ No newline at end of file diff --git a/.github/renovate/updates/digest.json5 b/.github/renovate/updates/digest.json5 index e5e1b90c23a..20c29c90407 100644 --- a/.github/renovate/updates/digest.json5 +++ b/.github/renovate/updates/digest.json5 @@ -2,7 +2,8 @@ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "digest": { "enabled": true, // Enable digest updates - "automerge": true + "automerge": true, + "autoApprove": true }, "ignore": [ // Add any paths or patterns to ignore specific digest updates, if necessary diff --git a/.github/renovate/updates/major.json5 b/.github/renovate/updates/major.json5 index a33ed5eeb68..78cf6cad7ae 100644 --- a/.github/renovate/updates/major.json5 +++ b/.github/renovate/updates/major.json5 @@ -1,7 +1,8 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "major": { - "enabled": true // Enable minor updates + "enabled": true, // Enable minor updates + "autoApprove": false }, "ignore": [ // Add any paths or patterns to ignore specific minor updates, if necessary diff --git a/.github/renovate/updates/minor.json5 b/.github/renovate/updates/minor.json5 index 19b50df09ae..7cccdca6a61 100644 --- a/.github/renovate/updates/minor.json5 +++ b/.github/renovate/updates/minor.json5 @@ -1,7 +1,8 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "minor": { - "enabled": true // Enable minor updates + "enabled": true, // Enable minor updates + "autoApprove": true }, "ignore": [ // Add any paths or patterns to ignore specific minor updates, if necessary diff --git a/.github/renovate/updates/patch.json5 b/.github/renovate/updates/patch.json5 index 7a9b5153616..2d0884cd48d 100644 --- a/.github/renovate/updates/patch.json5 +++ b/.github/renovate/updates/patch.json5 @@ -2,7 +2,8 @@ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "patch": { "enabled": true, // Enable patch updates - "automerge": true + "automerge": true, + "autoApprove": true }, "ignore": [ // Add any paths or patterns to ignore specific patch updates, if necessary