-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path.pre-commit-config.yaml
More file actions
142 lines (126 loc) · 3.82 KB
/
.pre-commit-config.yaml
File metadata and controls
142 lines (126 loc) · 3.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# Pre-commit hooks configuration for NocoDB Simple Client
# See https://pre-commit.com for more information
repos:
# Code formatting
- repo: https://github.com/psf/black
rev: '25.1.0'
hooks:
- id: black
language_version: python3
args: [--line-length=100]
stages: [pre-commit]
exclude: ^tests/
# Import sorting
- repo: https://github.com/pycqa/isort
rev: '6.0.1'
hooks:
- id: isort
args: [--profile=black, --line-length=100]
exclude: ^tests/
# Linting and code quality
- repo: https://github.com/charliermarsh/ruff-pre-commit
rev: 'v0.12.10'
hooks:
- id: ruff
args: [--fix] # Remove --exit-non-zero-on-fix to be less strict
exclude: ^tests/
# Type checking (disabled for commit, enabled for CI)
# - repo: https://github.com/pre-commit/mirrors-mypy
# rev: 'v1.17.1'
# hooks:
# - id: mypy
# additional_dependencies:
# - types-requests
# - types-PyYAML
# args: [--ignore-missing-imports]
# files: ^src/
# Security linting
- repo: https://github.com/PyCQA/bandit
rev: '1.8.6'
hooks:
- id: bandit
args: [-c, pyproject.toml, --severity-level, medium]
additional_dependencies: ["bandit[toml]"]
files: ^src/
# General hooks
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: 'v6.0.0'
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-toml
- id: check-json
- id: check-added-large-files
args: [--maxkb=2000] # Increase limit to 2MB
- id: check-case-conflict
- id: check-merge-conflict
# Disable strict checks that can be annoying
# - id: debug-statements
# - id: check-docstring-first
# - id: check-executables-have-shebangs
# - id: check-shebang-scripts-are-executable
# Secrets detection (disabled for commit, too strict)
# - repo: https://github.com/Yelp/detect-secrets
# rev: 'v1.5.0'
# hooks:
# - id: detect-secrets
# args: ['--baseline', '.secrets.baseline']
# exclude: package.lock.json
# Documentation (disabled for commit)
# - repo: https://github.com/pycqa/pydocstyle
# rev: '6.3.0'
# hooks:
# - id: pydocstyle
# files: ^src/
# args: [--convention=google]
# Markdown linting (disabled for commit)
# - repo: https://github.com/igorshubovych/markdownlint-cli
# rev: 'v0.45.0'
# hooks:
# - id: markdownlint
# args: [--fix]
# files: \.md$
# exclude: ^CHANGELOG\.md$
# YAML formatting (disabled for commit)
# - repo: https://github.com/pre-commit/mirrors-prettier
# rev: 'v4.0.0-alpha.8'
# hooks:
# - id: prettier
# types: [yaml]
# exclude: .pre-commit-config.yaml
# License header check
- repo: local
hooks:
- id: license-header
name: Check license headers
entry: python scripts/check_license_headers.py
language: system
files: ^src/.*\.py$
pass_filenames: true
# Custom security checks
- repo: local
hooks:
- id: custom-security-check
name: Custom security checks
entry: python scripts/security_checks.py
language: system
files: ^src/.*\.py$
pass_filenames: true
# Global configuration
default_stages: [pre-commit]
fail_fast: false
minimum_pre_commit_version: '2.20.0'
# Allow auto-fixing without failing
default_install_hook_types: [pre-commit, commit-msg]
# CI configuration
ci:
autofix_commit_msg: |
[pre-commit.ci] auto fixes from pre-commit hooks
for more information, see https://pre-commit.ci
autofix_prs: true
autoupdate_branch: ''
autoupdate_commit_msg: '[pre-commit.ci] pre-commit autoupdate'
autoupdate_schedule: weekly
skip: []
submodules: false