default_install_hook_types: [pre-commit, prepare-commit-msg]
ci:
  autofix_commit_msg: ":lipstick: auto fix by pre-commit hooks"
  autofix_prs: true
  autoupdate_branch: main
  autoupdate_schedule: monthly
  autoupdate_commit_msg: ":arrow_up: auto update by pre-commit hooks"
repos:
  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.8.1
    hooks:
      - id: ruff
        args: [--fix, --exit-non-zero-on-fix]
        stages: [pre-commit]

  - repo: https://github.com/pycqa/isort
    rev: 5.13.2
    hooks:
      - id: isort
        stages: [pre-commit]

  - repo: https://github.com/psf/black
    rev: 24.10.0
    hooks:
      - id: black
        stages: [pre-commit]

  - repo: https://github.com/pre-commit/mirrors-prettier
    rev: v4.0.0-alpha.8
    hooks:
      - id: prettier
        types_or: [javascript, jsx, ts, tsx, markdown, yaml, json]
        exclude: "admin-frontend/"
        stages: [pre-commit]

  - repo: https://github.com/pre-commit/mirrors-eslint
    rev: v9.16.0
    hooks:
      - id: eslint
        additional_dependencies:
          - "eslint@8.57.0"
          - "@typescript-eslint/eslint-plugin"
          - "@typescript-eslint/parser"
          - "eslint-config-airbnb"
          - "eslint-config-airbnb-typescript"
          - "eslint-import-resolver-typescript"
          - "eslint-plugin-import"
          - "eslint-plugin-jsx-a11y"
          - "eslint-plugin-react"
          - "eslint-plugin-react-hooks"
          - "eslint-plugin-react-redux"
        types_or: [ts, tsx]
        types: []
        files: ^admin-frontend/
        args:
          [
            --fix,
            -c,
            "./admin-frontend/.eslintrc.json",
            --rule,
            "import/no-unresolved: off",
          ]

  - repo: https://github.com/nonebot/nonemoji
    rev: v0.1.4
    hooks:
      - id: nonemoji
        stages: [prepare-commit-msg]

exclude: "CHANGELOG.md"