{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
  "extends": ["config:base", "docker:pinDigests"],
  "minimumReleaseAge": "5 days",
  "packageRules": [
    {
      "matchFileNames": [
        "cli/**",
        "docs/**",
        "e2e/**",
        "open-api/**",
        "server/**",
        "web/**"
      ],
      "groupName": "typescript-projects",
      "matchUpdateTypes": ["minor", "patch"],
      "excludePackagePrefixes": ["exiftool", "reflect-metadata"],
      "schedule": "on tuesday"
    },
    {
      "matchFileNames": ["machine-learning/**"],
      "groupName": "machine-learning",
      "rangeStrategy": "in-range-only",
      "schedule": "on tuesday"
    },
    {
      "matchFileNames": ["mobile/**"],
      "groupName": "mobile",
      "matchUpdateTypes": ["minor", "patch"],
      "schedule": "on tuesday"
    },
    {
      "groupName": "exiftool",
      "matchPackagePrefixes": ["exiftool"],
      "schedule": "on tuesday"
    },
    {
      "groupName": "svelte",
      "matchUpdateTypes": ["major"],
      "matchPackagePrefixes": ["@sveltejs"],
      "schedule": "on tuesday"
    },
    {
      "matchFileNames": [".github/**"],
      "groupName": "github-actions",
      "schedule": "on tuesday"
    },
    {
      "groupName": "base-image",
      "matchPackagePrefixes": ["ghcr.io/immich-app/base-server"],
      "minimumReleaseAge": "0"
    },
    {
      "matchDatasources": ["docker"],
      "matchPackageNames": ["node"],
      "versionCompatibility": "^(?<version>[^-]+)(?<compatibility>-.*)?$",
      "versioning": "node",
      "schedule": "on tuesday"
    },
    {
      "packageNames": ["com.google.guava:guava"],
      "versionScheme": "docker",
      "schedule": "on tuesday"
    }
  ],
  "ignorePaths": ["mobile/openapi/pubspec.yaml"],
  "ignoreDeps": ["http", "intl"],
  "labels": ["dependencies", "renovate"]
}
