mirror of
https://github.com/onyx-dot-app/onyx.git
synced 2026-02-16 23:35:46 +00:00
Co-authored-by: Wenxi <wenxi@onyx.app> Co-authored by: joachim-danswer <joachim@danswer.ai> Co-authored-by: rohoswagger <roshan@onyx.app>
183 lines
6.1 KiB
YAML
183 lines
6.1 KiB
YAML
default_install_hook_types:
|
|
- pre-commit
|
|
- post-checkout
|
|
- post-merge
|
|
- post-rewrite
|
|
repos:
|
|
- repo: https://github.com/astral-sh/uv-pre-commit
|
|
# From: https://github.com/astral-sh/uv-pre-commit/pull/53/commits/d30b4298e4fb63ce8609e29acdbcf4c9018a483c
|
|
rev: d30b4298e4fb63ce8609e29acdbcf4c9018a483c
|
|
hooks:
|
|
- id: uv-sync
|
|
args: ["--locked", "--all-extras"]
|
|
- id: uv-lock
|
|
- id: uv-export
|
|
name: uv-export default.txt
|
|
args:
|
|
[
|
|
"--no-emit-project",
|
|
"--no-default-groups",
|
|
"--no-hashes",
|
|
"--extra",
|
|
"backend",
|
|
"-o",
|
|
"backend/requirements/default.txt",
|
|
]
|
|
files: ^(pyproject\.toml|uv\.lock|backend/requirements/.*\.txt)$
|
|
- id: uv-export
|
|
name: uv-export dev.txt
|
|
args:
|
|
[
|
|
"--no-emit-project",
|
|
"--no-default-groups",
|
|
"--no-hashes",
|
|
"--extra",
|
|
"dev",
|
|
"-o",
|
|
"backend/requirements/dev.txt",
|
|
]
|
|
files: ^(pyproject\.toml|uv\.lock|backend/requirements/.*\.txt)$
|
|
- id: uv-export
|
|
name: uv-export ee.txt
|
|
args:
|
|
[
|
|
"--no-emit-project",
|
|
"--no-default-groups",
|
|
"--no-hashes",
|
|
"--extra",
|
|
"ee",
|
|
"-o",
|
|
"backend/requirements/ee.txt",
|
|
]
|
|
files: ^(pyproject\.toml|uv\.lock|backend/requirements/.*\.txt)$
|
|
- id: uv-export
|
|
name: uv-export model_server.txt
|
|
args:
|
|
[
|
|
"--no-emit-project",
|
|
"--no-default-groups",
|
|
"--no-hashes",
|
|
"--extra",
|
|
"model_server",
|
|
"-o",
|
|
"backend/requirements/model_server.txt",
|
|
]
|
|
files: ^(pyproject\.toml|uv\.lock|backend/requirements/.*\.txt)$
|
|
- id: uv-run
|
|
name: Check lazy imports
|
|
args: ["--active", "--with=onyx-devtools", "ods", "check-lazy-imports"]
|
|
pass_filenames: true
|
|
files: ^backend/(?!\.venv/|scripts/).*\.py$
|
|
# NOTE: This takes ~6s on a single, large module which is prohibitively slow.
|
|
# - id: uv-run
|
|
# name: mypy
|
|
# args: ["--all-extras", "mypy"]
|
|
# pass_filenames: true
|
|
# files: ^backend/.*\.py$
|
|
|
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
rev: 3e8a8703264a2f4a69428a0aa4dcb512790b2c8c # frozen: v6.0.0
|
|
hooks:
|
|
- id: check-added-large-files
|
|
name: Check for added large files
|
|
args: ["--maxkb=1500"]
|
|
|
|
- repo: https://github.com/rhysd/actionlint
|
|
rev: a443f344ff32813837fa49f7aa6cbc478d770e62 # frozen: v1.7.9
|
|
hooks:
|
|
- id: actionlint
|
|
|
|
- repo: https://github.com/psf/black
|
|
rev: 8a737e727ac5ab2f1d4cf5876720ed276dc8dc4b # frozen: 25.1.0
|
|
hooks:
|
|
- id: black
|
|
language_version: python3.11
|
|
|
|
# this is a fork which keeps compatibility with black
|
|
- repo: https://github.com/wimglenn/reorder-python-imports-black
|
|
rev: f55cd27f90f0cf0ee775002c2383ce1c7820013d # frozen: v3.14.0
|
|
hooks:
|
|
- id: reorder-python-imports
|
|
args: ["--py311-plus", "--application-directories=backend/"]
|
|
# need to ignore alembic files, since reorder-python-imports gets confused
|
|
# and thinks that alembic is a local package since there is a folder
|
|
# in the backend directory called `alembic`
|
|
exclude: ^backend/alembic/
|
|
|
|
# These settings will remove unused imports with side effects
|
|
# Note: The repo currently does not and should not have imports with side effects
|
|
- repo: https://github.com/PyCQA/autoflake
|
|
rev: 0544741e2b4a22b472d9d93e37d4ea9153820bb1 # frozen: v2.3.1
|
|
hooks:
|
|
- id: autoflake
|
|
args:
|
|
[
|
|
"--remove-all-unused-imports",
|
|
"--remove-unused-variables",
|
|
"--in-place",
|
|
"--recursive",
|
|
]
|
|
|
|
- repo: https://github.com/golangci/golangci-lint
|
|
rev: 9f61b0f53f80672872fced07b6874397c3ed197b # frozen: v2.7.2
|
|
hooks:
|
|
- id: golangci-lint
|
|
entry: bash -c "find tools/ -name go.mod -print0 | xargs -0 -I{} bash -c 'cd \"$(dirname {})\" && golangci-lint run ./...'"
|
|
|
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
# Ruff version.
|
|
rev: 971923581912ef60a6b70dbf0c3e9a39563c9d47 # frozen: v0.11.4
|
|
hooks:
|
|
- id: ruff
|
|
|
|
- repo: https://github.com/pre-commit/mirrors-prettier
|
|
rev: ffb6a759a979008c0e6dff86e39f4745a2d9eac4 # frozen: v3.1.0
|
|
hooks:
|
|
- id: prettier
|
|
types_or: [html, css, javascript, ts, tsx]
|
|
language_version: system
|
|
|
|
- repo: https://github.com/sirwart/ripsecrets
|
|
rev: 7d94620933e79b8acaa0cd9e60e9864b07673d86 # frozen: v0.1.11
|
|
hooks:
|
|
- id: ripsecrets
|
|
args:
|
|
- --additional-pattern
|
|
- ^sk-[A-Za-z0-9_\-]{20,}$
|
|
|
|
- repo: local
|
|
hooks:
|
|
- id: terraform-fmt
|
|
name: terraform fmt
|
|
entry: terraform fmt -recursive
|
|
language: system
|
|
pass_filenames: false
|
|
files: \.tf$
|
|
|
|
- id: npm-install
|
|
name: npm install
|
|
description: "Automatically run 'npm install' after a checkout, pull or rebase"
|
|
language: system
|
|
entry: bash -c 'cd web && npm install --no-save'
|
|
pass_filenames: false
|
|
files: ^web/package(-lock)?\.json$
|
|
stages: [post-checkout, post-merge, post-rewrite]
|
|
- id: npm-install-check
|
|
name: npm install --package-lock-only
|
|
description: "Check the 'web/package-lock.json' is updated"
|
|
language: system
|
|
entry: bash -c 'cd web && npm install --package-lock-only'
|
|
pass_filenames: false
|
|
files: ^web/package(-lock)?\.json$
|
|
|
|
# Uses tsgo (TypeScript's native Go compiler) for ~10x faster type checking.
|
|
# This is a preview package - if it breaks:
|
|
# 1. Try updating: cd web && npm update @typescript/native-preview
|
|
# 2. Or fallback to tsc: replace 'tsgo' with 'tsc' below
|
|
- id: typescript-check
|
|
name: TypeScript type check
|
|
entry: bash -c 'cd web && npx tsgo --noEmit --project tsconfig.types.json'
|
|
language: system
|
|
pass_filenames: false
|
|
files: ^web/.*\.(ts|tsx)$
|