version: 2
updates:
  # Maven dependencies
  - package-ecosystem: maven
    directory: /
    schedule:
      interval: weekly
      day: monday
    open-pull-requests-limit: 10
    labels:
      - dependencies
      - chore
    groups:
      # Group minor/patch Quarkus updates together
      quarkus:
        patterns:
          - "io.quarkus*"
        update-types:
          - minor
          - patch
      # Group minor/patch LangChain4j updates together
      langchain4j:
        patterns:
          - "dev.langchain4j*"
        update-types:
          - minor
          - patch
      # Group all other minor/patch updates
      minor-and-patch:
        patterns:
          - "*"
        exclude-patterns:
          - "io.quarkus*"
          - "dev.langchain4j*"
        update-types:
          - minor
          - patch

  # Docker base image digests
  - package-ecosystem: docker
    directory: /src/main/docker
    schedule:
      interval: weekly
      day: monday
    open-pull-requests-limit: 3
    labels:
      - dependencies
      - security
    commit-message:
      prefix: "chore(docker)"

  # ClusterFuzzLite base image digest
  - package-ecosystem: docker
    directory: /.clusterfuzzlite
    schedule:
      interval: weekly
      day: monday
    open-pull-requests-limit: 3
    labels:
      - dependencies
      - security
    commit-message:
      prefix: "chore(docker)"

  # GitHub Actions versions
  - package-ecosystem: github-actions
    directory: /
    schedule:
      interval: weekly
      day: monday
    open-pull-requests-limit: 5
    labels:
      - dependencies
      - ci
