Files
Biohazard/.renovate/groups.json5
JJGadgets 7d2b20be8e feat(renovate): add slashes to OCI split, only automerge 1st party GHAs, minimumReleaseAge
authentik use coerced semver to delete non digits from release tags
2025-03-16 05:45:40 +08:00

181 lines
6.2 KiB
Plaintext

{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"packageRules": [
// NOTE: Renovate processes rules from top to bottom, so the rules below take precedence over rules above it
{
"description": "Default options",
"matchPackageNames": ["*"],
"rebaseWhen": "conflicted",
"automerge": false
},
{
"description": "Only create GHA PRs after a week",
"matchManagers": ["github-actions"],
"matchPackageNames": ["!actions/**", "!**renovate**"],
"minimumReleaseAge": "7 days"
},
{
"description": "Auto merge Github Actions",
"matchManagers": ["github-actions"],
"matchPackageNames": ["actions/**"],
"automerge": true,
"automergeType": "pr",
"rebaseWhen": "behind-base-branch",
"ignoreTests": true,
"matchUpdateTypes": ["minor", "patch", "digest"]
},
{
"description": "Auto merge all Renovate versions",
"matchPackageNames": ["**renovate**"],
"matchUpdateTypes": ["major", "minor", "patch", "digest"],
"automerge": true,
"automergeType": "branch",
"ignoreTests": true,
"addLabels": ["renovate-itself"]
},
{
"description": "Auto merge apps in path ./kube/deploy/apps (these apps don't affect the entire Kubernetes cluster)",
// "matchDatasources": ["docker"],
"automerge": true,
"automergeType": "pr",
"rebaseWhen": "behind-base-branch",
"matchFileNames": ["kube/deploy/apps/**"],
"matchUpdateTypes": ["minor", "patch", "digest"],
"matchCurrentVersion": "!/^0\\./" // avoid breaking changes in 0.x SemVer releases
},
{
"description": "Don't auto merge specific apps in path ./kube/deploy/apps",
"matchPackageNames": ["**/reactive-resume", "**/home-assistant", "**/zigbee2mqtt"],
"automerge": false,
"matchFileNames": ["kube/deploy/apps/**"]
},
{
"description": "Cilium Group",
"groupName": "Cilium",
"matchPackageNames": ["**cilium**"],
"versioning": "semver",
"sourceUrl": "https://github.com/cilium/cilium",
"separateMinorPatch": true,
"pinDigests": false
},
{
"description": "Flux Group",
"groupName": "Flux",
"matchPackageNames": ["**flux**", "!**miniflux**"],
"matchDatasources": ["docker", "github-tags"],
"separateMinorPatch": true,
"sourceUrl": "https://github.com/fluxcd/flux2"
},
{
"description": "Flux Group (Automerge Patch)",
"groupName": "Flux",
"matchPackageNames": ["**flux**", "!miniflux"],
"matchDatasources": ["docker", "github-tags"],
"matchUpdateTypes": ["patch"],
"automerge": true,
"automergeType": "pr",
"rebaseWhen": "behind-base-branch"
},
{
"description": "authentik Group",
"groupName": "authentik",
"matchPackageNames": ["**authentik**", "ghcr.io/goauthentik/**"],
"versioning": "semver-coerced",
"sourceUrl": "https://github.com/goauthentik/authentik",
"automerge": false,
"separateMultipleMajor": true,
"separateMinorPatch": true
},
{
"description": "Immich Group",
"groupName": "Immich",
"matchPackageNames": ["**immich**"],
"versioning": "semver",
"sourceUrl": "https://github.com/immich-app/immich",
"separateMinorPatch": true
},
{
"description": "1Password Group",
"groupName": "1Password",
"matchPackageNames": ["**1password**"],
"versioning": "semver"
},
{
"description": "Talos",
"matchPackageNames": ["**siderolabs/installer"],
"overrideDepName": "{{{ replace 'installer' 'talos' depName }}}"
},
{
"description": "Kubernetes Group",
"groupName": "Kubernetes",
"matchPackageNames": ["**kubelet", "**kubectl", "**kube-apiserver"],
"versioning": "semver"
},
{
"description": "Separate all app-template updates",
"matchPackageNames": ["app-template"],
"matchDatasources": ["helm"],
"separateMajorMinor": true,
"separateMultipleMajor": true,
"separateMinorPatch": true
},
{
"description": "Manually approve app-template major releases",
"matchPackageNames": ["app-template"],
"matchDatasources": ["helm"],
"matchUpdateTypes": ["major"],
"dependencyDashboardApproval": true,
"automerge": false,
"groupName": "app-template-major"
},
{
"description": "Auto merge patch app-template versions",
"matchPackageNames": ["app-template"],
"matchDatasources": ["helm"],
"matchUpdateTypes": ["patch"],
"dependencyDashboardApproval": false,
"automerge": true,
"automergeType": "pr",
"rebaseWhen": "behind-base-branch",
"groupName": "app-template-patch"
},
{
"description": "Don't automerge app-template minor releases",
"matchPackageNames": ["app-template"],
"matchDatasources": ["helm"],
"matchUpdateTypes": ["minor"],
"dependencyDashboardApproval": false,
"automerge": false,
"groupName": "app-template-minor"
},
{
"description": "Miniflux enforce distroless images",
"matchPackageNames": ["**miniflux**"],
"matchDatasources": ["docker"],
"versioning": "semver",
"versionCompatibility": "^(?<version>[^-]+)(?<compatibility>-.*)?$"
},
// {
// "description": "SearXNG versioning",
// "matchPackageNames": ["searxng"],
// "matchDatasources": ["docker"],
// "versioning": "regex:^(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)-(:?<hash>.*)$"
// },
{
"description": "Configure more granular control for apps in ./kube/deploy/core",
"matchFileNames": ["kube/deploy/core/**"],
"automerge": false, // enforce no automerge
"separateMultipleMajor": true,
"separateMinorPatch": true
// labels handled in label subconfig
},
{
"description": "Auto merge my own images with release dates as versions, these are images I couldn't think of a better way to do versioning because of too many moving parts",
"matchPackageNames": ["**jjgadgets/k8s-crd-extractor"],
"matchUpdateTypes": ["major", "minor", "patch", "digest"],
"automerge": true,
"automergeType": "branch"
}
]
}