# Copyright (c) Microsoft Corporation. All rights reserved.
#
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file

version: 2
updates:
  # All Rust/Cargo directories are grouped into a single entry so that
  # when a dependency is updated, Dependabot bumps it across the root
  # workspace AND every binding, preventing version skew.
  - package-ecosystem: "cargo"
    directories:
      - "/"
      - "/bindings/ffi"
      - "/bindings/java"
      - "/bindings/python"
      - "/bindings/ruby"
      - "/bindings/wasm"
    schedule:
      interval: "weekly"
    commit-message:
      prefix: "build(deps)"
    groups:
      # Bundle all Cargo dependency updates into a single PR. Without this,
      # dependabot creates a separate PR per directory for the same dependency,
      # and each individual PR fails to build due to version skew.
      rust-dependencies:
        patterns:
          - "*"
    # Ignore vendored mimalloc crates; updates are managed manually.
    ignore:
      - dependency-name: "regorus-mimalloc"
      - dependency-name: "regorus-mimalloc-sys"

  - package-ecosystem: "gomod"
    directory: "/bindings/go"
    schedule:
      interval: "weekly"
    commit-message:
      prefix: "build(deps)"
    groups:
      per-dependency:
        patterns:
          - "*"

  - package-ecosystem: "maven"
    directory: "/bindings/java"
    schedule:
      interval: "weekly"
    commit-message:
      prefix: "build(deps)"
    groups:
      per-dependency:
        patterns:
          - "*"

  - package-ecosystem: "nuget"
    directory: "/bindings/csharp"
    schedule:
      interval: "weekly"
    commit-message:
      prefix: "build(deps)"
    groups:
      per-dependency:
        patterns:
          - "*"

  - package-ecosystem: "pip"
    directory: "/bindings/python"
    schedule:
      interval: "weekly"
    commit-message:
      prefix: "build(deps)"
    groups:
      per-dependency:
        patterns:
          - "*"

  - package-ecosystem: "bundler"
    directory: "/bindings/ruby"
    schedule:
      interval: "weekly"
    commit-message:
      prefix: "build(deps)"
    groups:
      per-dependency:
        patterns:
          - "*"

  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "weekly"
    commit-message:
      prefix: "ci(deps)"
    groups:
      github-actions:
        patterns:
          - "*"
