blob: 6302502124d5c0b3b8a93126f71d39c96afa4cc0 [file] [log] [blame]
Joey Armstrongf2f0a3f2024-04-04 15:50:09 -04001---
2
3# -----------------------------------------------------------------------
Joey Armstrongbd667e32024-04-10 16:54:11 -04004# [NOTE] - Propogate .pre-commit-config.yaml edits to all repositories!
5# -----------------------------------------------------------------------
Joey Armstrongf22de9d2024-04-26 11:37:52 -04006# [NOTE] - Common config file source lives in repo:onf-make
Joey Armstrong95a52432024-04-29 15:26:18 -04007# - https://gerrit.opencord.org/plugins/gitiles/
8# onf-make/+/refs/heads/master/.pre-commit-config.yaml
Joey Armstrongf22de9d2024-04-26 11:37:52 -04009# -----------------------------------------------------------------------
Joey Armstrongbd667e32024-04-10 16:54:11 -040010# [TODO]
11# - pre-commit yaml config exists individually within repositories.
12# - Generally lint config and benavior is consistent for all repos.
13# - Exclusions and bulk cleanup necessitate per-repo custom configs.
14# - Dynamically generate this config file from common and custom
15# -----------------------------------------------------------------------
16
17# -----------------------------------------------------------------------
Joey Armstrongf2f0a3f2024-04-04 15:50:09 -040018# Copyright 2024 Open Networking Foundation Contributors
19#
20# Licensed under the Apache License, Version 2.0 (the "License");
21# you may not use this file except in compliance with the License.
22# You may obtain a copy of the License at
23#
Joey Armstrongbd667e32024-04-10 16:54:11 -040024# http://www.apache.org/licenses/LICENSE-2.0
Joey Armstrongf2f0a3f2024-04-04 15:50:09 -040025#
26# Unless required by applicable law or agreed to in writing, software
27# distributed under the License is distributed on an "AS IS" BASIS,
28# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
29# See the License for the specific language governing permissions and
30# limitations under the License.
31# -----------------------------------------------------------------------
32# SPDX-FileCopyrightText: 2024 Open Networking Foundation Contributors
33# SPDX-License-Identifier: Apache-2.0
34# -----------------------------------------------------------------------
35# See https://pre-commit.com for more information
36# See https://pre-commit.com/hooks.html for more hooks
37# -----------------------------------------------------------------------
Joey Armstrong6f046d02024-04-22 13:29:56 -040038# .pre-commit-config-yaml 2024-04-19 v0.4
Joey Armstrongf2f0a3f2024-04-04 15:50:09 -040039# -----------------------------------------------------------------------
40
Joey Armstrong95a52432024-04-29 15:26:18 -040041# ci:
Joey Armstrong6f046d02024-04-22 13:29:56 -040042# autofix_commit_msg: "Chore: pre-commit autoupdate"
43## skip: [sync]
44# skip:
45# # pre-commit.ci does not have actionlint installed
46# - actionlint
47#
48# exclude: '^docs/conf.py'
Joey Armstrongbd667e32024-04-10 16:54:11 -040049
Joey Armstrongf2f0a3f2024-04-04 15:50:09 -040050repos:
Joey Armstrongbd667e32024-04-10 16:54:11 -040051 - repo: https://github.com/pre-commit/pre-commit-hooks
Joey Armstrongf2f0a3f2024-04-04 15:50:09 -040052 rev: v4.5.0
53 hooks:
54 - id: trailing-whitespace
Joey Armstrongf2f0a3f2024-04-04 15:50:09 -040055 - id: check-added-large-files
Joey Armstrong6f046d02024-04-22 13:29:56 -040056 - id: check-ast
57 - id: check-json
58 - id: check-merge-conflict
59 - id: check-xml
60 - id: check-yaml
Joey Armstrong95a52432024-04-29 15:26:18 -040061 # - id: debug-statements
Joey Armstrong6f046d02024-04-22 13:29:56 -040062 - id: end-of-file-fixer
63 - id: fix-encoding-pragma
Joey Armstrong95a52432024-04-29 15:26:18 -040064 # - id: double-quote-string-fixer
Joey Armstrong6f046d02024-04-22 13:29:56 -040065 - id: requirements-txt-fixer
66 - id: mixed-line-ending
67 args: ['--fix=lf']
68
69 - repo: https://github.com/jorisroovers/gitlint
70 rev: acc9d9de6369b76d22cb4167029d2035e8730b98 # frozen: v0.19.1
71 hooks:
72 - id: gitlint
Joey Armstrongf2f0a3f2024-04-04 15:50:09 -040073
Joey Armstrongbd667e32024-04-10 16:54:11 -040074 - repo: https://github.com/koalaman/shellcheck-precommit
Joey Armstrongf2f0a3f2024-04-04 15:50:09 -040075 rev: v0.10.0
76 hooks:
77 - id: shellcheck
78
Joey Armstrongbd667e32024-04-10 16:54:11 -040079 - repo: https://github.com/adrienverge/yamllint.git
Joey Armstrongf2f0a3f2024-04-04 15:50:09 -040080 rev: v1.35.1
81 hooks:
82 - id: yamllint
83
Joey Armstrong95a52432024-04-29 15:26:18 -040084 ## -----------------------------------------------------------------------
85 ## [SOURCE] Documentation
86 ## -----------------------------------------------------------------------
Joey Armstrongbd667e32024-04-10 16:54:11 -040087 - repo: https://github.com/rstcheck/rstcheck
88 rev: v6.2.1
89 hooks:
90 - id: rstcheck
91
92 - repo: https://github.com/markdownlint/markdownlint
93 rev: v0.13.0
94 hooks:
95 - id: markdownlint
Joey Armstrong95a52432024-04-29 15:26:18 -040096 # - id: markdownlint_docker
Joey Armstrongbd667e32024-04-10 16:54:11 -040097
Joey Armstrong95a52432024-04-29 15:26:18 -040098 ## -----------------------------------------------------------------------
99 ## [SOURCE] Docker
100 ## -----------------------------------------------------------------------
Joey Armstrongbd667e32024-04-10 16:54:11 -0400101 - repo: https://github.com/hadolint/hadolint
102 rev: v2.12.0
103 hooks:
Joey Armstrong95a52432024-04-29 15:26:18 -0400104 # - id: hadolint # local tool install
105 - id: hadolint-docker
Joey Armstrongbd667e32024-04-10 16:54:11 -0400106
Joey Armstrong95a52432024-04-29 15:26:18 -0400107 ## -----------------------------------------------------------------------
108 ## [SOURCE] Golang
109 ## -----------------------------------------------------------------------
Joey Armstrong6f046d02024-04-22 13:29:56 -0400110 - repo: https://github.com/golangci/golangci-lint
111 rev: v1.41.1
112 hooks:
113 - id: golangci-lint
114
Joey Armstrong95a52432024-04-29 15:26:18 -0400115 ## -----------------------------------------------------------------------
116 ## [SOURCE] REUSE License Checking
117 ## -----------------------------------------------------------------------
118 - repo: https://github.com/fsfe/reuse-tool
119 rev: v3.0.2
120 hooks:
121 - id: reuse
122 # - id: add-license-headers
Joey Armstrongbd667e32024-04-10 16:54:11 -0400123
Joey Armstrong95a52432024-04-29 15:26:18 -0400124# - repo: https://github.com/ansys/pre-commit-hooks
125 # rev: v0.2.9
126 # hooks:
127 # - id: add-license-headers
128 # args:
129 # - --custom_copyright=custom copyright phrase
130 # - --custom_template=template_name
131 # - --custom_license=license_name
132 # - --ignore_license_check
133 # - --start_year=2023
134
135 ## -----------------------------------------------------------------------
136 ## [SOURCE] Python
137 ## -----------------------------------------------------------------------
138 - repo: https://github.com/psf/black
139 rev: 22.10.0
140 hooks:
141 - id: black
Joey Armstrongf2f0a3f2024-04-04 15:50:09 -0400142
Joey Armstrongbd667e32024-04-10 16:54:11 -0400143# - repo: https://github.com/PyCQA/doc8
Joey Armstrong95a52432024-04-29 15:26:18 -0400144 # rev: v1.1.1
145 # hooks:
146 # - id: doc8
Joey Armstrongbd667e32024-04-10 16:54:11 -0400147
Joey Armstrong95a52432024-04-29 15:26:18 -0400148 ## -----------------------------------------------------------------------
149 ## [SOURCE] Spelling
150 ## -----------------------------------------------------------------------
151 - repo: https://github.com/codespell-project/codespell
152 rev: v2.2.4
153 hooks:
154 - id: codespell
155
156 ## -----------------------------------------------------------------------
157 ## [SOURCE] Testing
158 ## -----------------------------------------------------------------------
Joey Armstrongbd667e32024-04-10 16:54:11 -0400159 - repo: https://github.com/MarketSquare/robotframework-tidy
160 rev: 4.11.0
161 hooks:
162 - id: robotidy
Joey Armstrongf2f0a3f2024-04-04 15:50:09 -0400163
164# -------------------------------------------------------------------
165# https://docs.python.org/3/library/re.html#regular-expression-syntax
166# -------------------------------------------------------------------
167exclude: |
168 (?x)^(
169 ^jjb/.* |
170 ^makefiles/.* |
171 ^lf/.* |
172 ^.venv/.* |
173 ^jenkins-scripts/.* |
174 ^lf-ansible/.* |
175 ^packer/.* |
176 ^test/.* |
177 ^jjb/pipeline/voltha/voltha-physical-soak-dt-tests.groovy
178 )$
179
180# [SEE ALSO]
181# -----------------------------------------------------------------------
182# https://github.com/memfault/interrupt/blob/master/example/pre-commit/.pre-commit-config.yaml
183# https://pre-commit.com/hooks.html
184# https://github.com/floatingpurr/sync_with_poetry/blob/main/.pre-commit-config.yaml
185# https://github.com/the-common/pre-commit-config-template/blob/master/.pre-commit-config.yaml
186# https://github.com/memfault/interrupt/blob/master/example/pre-commit/.pre-commit-config.yaml
187# -----------------------------------------------------------------------
188# https://www.hatica.io/blog/pre-commit-git-hooks/
189# -----------------------------------------------------------------------
190
191# [EOF]