# https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#package-ecosystem

version: 2
updates:

  # Enable version updates for npm
  - package-ecosystem: "npm"
    target-branch: "dev"
    # Look for `package.json` and `lock` files in the `/src-ui` directory
    directory: "/src-ui"
    open-pull-requests-limit: 10
    schedule:
      interval: "monthly"
    labels:
      - "frontend"
      - "dependencies"
    # Add reviewers
    reviewers:
      - "paperless-ngx/frontend"
    groups:
      frontend-angular-dependencies:
        patterns:
          - "@angular*"
          - "@ng-*"
          - "ngx-*"
          - "ng2-pdf-viewer"
      frontend-jest-dependencies:
        patterns:
          - "@types/jest"
          - "jest*"
      frontend-eslint-dependencies:
        patterns:
          - "@typescript-eslint*"
          - "eslint"

  # Enable version updates for Python
  - package-ecosystem: "pip"
    target-branch: "dev"
    # Look for a `Pipfile` in the `root` directory
    directory: "/"
    # Check for updates once a week
    schedule:
      interval: "weekly"
    labels:
      - "backend"
      - "dependencies"
    # Add reviewers
    reviewers:
      - "paperless-ngx/backend"
    ignore:
      - dependency-name: "uvicorn"
    groups:
      development:
        patterns:
          - "*pytest*"
          - "ruff"
          - "mkdocs-material"
      django:
        patterns:
          - "*django*"
      major-versions:
        update-types:
          - "major"
      small-changes:
        update-types:
          - "minor"
          - "patch"

  # Enable updates for GitHub Actions
  - package-ecosystem: "github-actions"
    target-branch: "dev"
    directory: "/"
    schedule:
      # Check for updates to GitHub Actions every month
      interval: "monthly"
    labels:
      - "ci-cd"
      - "dependencies"
    # Add reviewers
    reviewers:
      - "paperless-ngx/ci-cd"
    groups:
      actions:
        update-types:
          - "major"
          - "minor"
          - "patch"
