{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
  "extends": [
    "config:best-practices",
    ":approveMajorUpdates",
    ":maintainLockFilesWeekly",
    "group:postcss",
    "group:linters",
    "schedule:daily",
    "schedule:automergeDaily"
  ],
  "ignorePresets": [
    ":semanticPrefixFixDepsChoreOthers",
    "docker:pinDigests",
    "helpers:pinGitHubActionDigests"
  ],
  "semanticCommits": "disabled",
  "postUpdateOptions": ["gomodTidy", "gomodUpdateImportPaths", "npmDedupe"],
  "prConcurrentLimit": 5,
  "packageRules": [
    {
      "description": "Require approval for go and python minor version",
      "matchDepNames": ["go", "python", "golang", "docker.io/golang", "docker.io/library/golang"],
      "matchUpdateTypes": ["minor"],
      "dependencyDashboardApproval": true
    },
    {
      "description": "Require dashboard approval for some deps",
      "matchDepNames": ["github.com/go-ap/activitypub", "bitnami/minio"],
      "dependencyDashboardApproval": true
    },
    {
      "description": "Group golang packages",
      "matchDepNames": ["go", "golang", "docker.io/golang", "docker.io/library/golang"],
      "groupName": "golang packages"
    },
    {
      "description": "Group nodejs packages",
      "matchDepNames": ["node", "docker.io/node", "docker.io/library/node"],
      "groupName": "nodejs packages"
    },
    {
      "description": "Automerge renovate updates",
      "matchDatasources": ["docker"],
      "matchPackageNames": ["ghcr.io/visualon/renovate"],
      "matchUpdateTypes": ["minor", "patch", "digest"],
      "automerge": true
    },
    {
      "description": "Update renovate with higher prio to come through rate limit",
      "matchDatasources": ["docker"],
      "matchDepNames": ["ghcr.io/visualon/renovate"],
      "prPriority": 10
    },
    {
      "description": "Disable actions/cascading-pr for now <https://github.com/renovatebot/renovate/issues/28120>",
      "matchDepNames": ["actions/cascading-pr"],
      "matchManagers": ["github-actions"],
      "enabled": false
    }
  ],
  "customManagers": [
    {
      "description": "Update go-version in forgejo workflows",
      "customType": "regex",
      "fileMatch": ["^.forgejo/workflows/.+\\.yml$"],
      "matchStrings": ["\\s+go-version: ['\"]?(?<currentValue>.+?)['\"]?\\s"],
      "depNameTemplate": "go",
      "datasourceTemplate": "golang-version",
      "versioningTemplate": "go-mod-directive"
    },
    {
      "description": "Update node-version in forgejo workflows",
      "customType": "regex",
      "fileMatch": ["^.forgejo/workflows/.+\\.yml$"],
      "matchStrings": ["\\s+node-version: ['\"]?(?<currentValue>.+?)['\"]?\\s"],
      "depNameTemplate": "node",
      "datasourceTemplate": "node-version"
    },
    {
      "description": "Update deps inside Makefile",
      "customType": "regex",
      "fileMatch": ["^Makefile$"],
      "matchStrings": [" \\?= (?<depName>.+?)@(?<currentValue>.+?) # renovate: datasource=(?<datasource>.+?)\\s"]
    }
  ]
}
