# 依存パッケージの定期更新 PR（Dependabot version updates）
# 脆弱性検出（Dependabot alerts / security updates）はリポジトリ設定で有効化済み（本ファイルとは独立に動く）
version: 2
updates:
  # NuGet（packages.config は本体・テストの各プロジェクト直下にある）
  - package-ecosystem: "nuget"
    directories:
      - "/TIASshot"
      - "/TIASshot.Tests"
    schedule:
      interval: "weekly"
    open-pull-requests-limit: 5
    commit-message:
      prefix: "[update]"
    # グループは記述順に評価され，依存は最初に一致したグループへ入る．
    # そのため OpenCvSharp 専用グループを minor-and-patch より先に置く
    groups:
      # OpenCvSharp は OpenCV 本体に追随するバージョニングで semver 契約を持たず，
      # 第 2 セグメントの bump でも破壊的変更が入る（4.10→4.13 で ArUco API が変更された）．
      # よって update-types を指定せず major / minor / patch を区別なく本グループで拾う．
      # またマネージド（OpenCvSharp4・Extensions・Windows・WpfExtensions）とネイティブ
      # （runtime.win）は同一バージョンで揃える必要があるため，常に 1 つの PR に束ねる（lockstep）．
      # 本グループは自動マージ禁止（.claude/deps-update-skip.md）．実機または fixture 回帰で確認する
      opencvsharp:
        patterns:
          - "OpenCvSharp4"
          - "OpenCvSharp4.*"
      # groups の applies-to は既定が version-updates のため，上のグループは
      # security update 経路には効かない．脆弱性修正で 5 パッケージが個別 PR に割れ，
      # マネージドとネイティブが食い違ったままマージされるのを防ぐミラーグループ
      opencvsharp-security:
        applies-to: "security-updates"
        patterns:
          - "OpenCvSharp4"
          - "OpenCvSharp4.*"
      # OpenCvSharp 以外の minor / patch をまとめる．
      # patterns の "*" は OpenCvSharp にも一致するため exclude-patterns で明示的に外す
      # （記述順による振り分けと合わせた二重の保険）
      minor-and-patch:
        patterns:
          - "*"
        exclude-patterns:
          - "OpenCvSharp4"
          - "OpenCvSharp4.*"
        update-types:
          - "minor"
          - "patch"

  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "weekly"
    commit-message:
      prefix: "[update]"
    groups:
      actions:
        patterns:
          - "*"
