-
Notifications
You must be signed in to change notification settings - Fork 93
Expand file tree
/
Copy path.pre-commit-config.yaml
More file actions
132 lines (117 loc) · 3.1 KB
/
.pre-commit-config.yaml
File metadata and controls
132 lines (117 loc) · 3.1 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
# PropChain Pre-commit Configuration
# This file configures pre-commit hooks for code quality and consistency
repos:
# Rust formatting and linting
- repo: local
hooks:
- id: rust-fmt
name: rust fmt
entry: cargo fmt
language: system
args: [--all]
pass_filenames: false
- id: rust-clippy
name: rust clippy
entry: cargo clippy
language: system
args: [--all-targets, --all-features, --, -D, warnings]
pass_filenames: false
- id: cargo-check
name: cargo check
entry: cargo check
language: system
args: [--all-features]
pass_filenames: false
# General file checks
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
args: ['--maxkb=1000']
- id: check-merge-conflict
- id: check-case-conflict
- id: check-json
- id: check-toml
- id: check-xml
- id: check-executables-have-shebangs
- id: check-shebang-scripts-are-executable
# Security checks
- repo: https://github.com/Yelp/detect-secrets
rev: v1.4.0
hooks:
- id: detect-secrets
args: ['--baseline', '.secrets.baseline']
# Markdown formatting
- repo: https://github.com/executablebooks/mdformat
rev: 0.7.16
hooks:
- id: mdformat
args: [--wrap=88]
additional_dependencies:
- mdformat-gfm
- mdformat-tables
# Shell script formatting
- repo: https://github.com/scop/pre-commit-shfmt
rev: v3.7.0-2
hooks:
- id: shfmt
args: [-w, -s, -i, '4']
# Dockerfile linting
- repo: https://github.com/hadolint/hadolint
rev: v2.12.0
hooks:
- id: hadolint-docker
args: [--ignore, DL3008, --ignore, DL3009]
# Contract-specific checks
- repo: local
hooks:
- id: cargo-contract-build
name: cargo contract build
entry: cargo contract build
language: system
args: [--quiet]
pass_filenames: false
files: ^contracts/.*\.rs$
- id: cargo-contract-test
name: cargo contract test
entry: cargo contract test
language: system
pass_filenames: false
files: ^contracts/.*\.rs$
# Documentation checks
- repo: local
hooks:
- id: cargo-doc
name: cargo doc
entry: cargo doc
language: system
args: [--no-deps, --document-private-items]
pass_filenames: false
# Configuration for specific hooks
default_language_version:
python: python3
# Exclude patterns
exclude: |
(?x)^(
target/|
.git/|
deployments/|
coverage/|
\.vscode/|
\.idea/|
node_modules/
)$
# CI configuration
ci:
autofix_commit_msg: |
[pre-commit.ci] auto fixes from pre-commit.com 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