Skip to content

Instantly share code, notes, and snippets.

@4383
Last active September 3, 2020 08:00
Show Gist options
  • Save 4383/bd7fbe2f8a1fcf19b335f7a94e1f1c1d to your computer and use it in GitHub Desktop.
Save 4383/bd7fbe2f8a1fcf19b335f7a94e1f1c1d to your computer and use it in GitHub Desktop.
pre-commit git patch
From 6eb68519a9e917169e7285df14c7ea20d0ff58a5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20Beraud?= <[email protected]>
Date: Tue, 7 Jul 2020 11:33:55 +0200
Subject: [PATCH] Introducing usage of pre-commit
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Adding pre-commit
Introduced changes:
- pre-commit config and rules
- Add pre-commit to pep8 gate, Flake8 is covered in the pre-commit hooks.
- Applying fixes for pre-commit compliance in all code.
Also commit hash will be used instead of version tags in pre-commit to
prevend arbitrary code from running in developer's machines.
pre-commit will be used to:
- trailing whitespace;
- Replaces or checks mixed line ending (mixed-line-ending);
- Forbid files which have a UTF-8 byte-order marker (check-byte-order-marker);
- Checks that non-binary executables have a proper
shebang (check-executables-have-shebangs);
- Check for files that contain merge conflict strings (check-merge-conflict);
- Check for debugger imports and py37+ breakpoint()
calls in python source (debug-statements);
- Attempts to load all yaml files to verify syntax (check-yaml);
- Run flake8 checks (flake8) (local)
For further details about tests please refer to:
https://github.com/pre-commit/pre-commit-hooks
Change-Id: Ibd0c3d64fdc5c293d9d676d33eab828d9fde971f
Co-authored-by: Moisés Guimarães de Medeiros <[email protected]>
---
.pre-commit-config.yaml | 36 ++++++++++++++++++++++++++++++++++++
doc/source/conf.py | 0
test-requirements.txt | 1 +
tox.ini | 2 +-
4 files changed, 38 insertions(+), 1 deletion(-)
create mode 100644 .pre-commit-config.yaml
mode change 100755 => 100644 doc/source/conf.py
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 0000000..e188d0a
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,36 @@
+---
+# We from the Oslo project decided to pin repos based on the
+# commit hash instead of the version tag to prevend arbitrary
+# code from running in developer's machines. To update to a
+# newer version, run `pre-commit autoupdate` and then replace
+# the newer versions with their commit hash.
+
+default_language_version:
+ python: python3
+
+repos:
+ - repo: https://github.com/pre-commit/pre-commit-hooks
+ rev: ebc15addedad713c86ef18ae9632c88e187dd0af # v3.1.0
+ hooks:
+ - id: trailing-whitespace
+ # Replaces or checks mixed line ending
+ - id: mixed-line-ending
+ args: ['--fix', 'lf']
+ exclude: '.*\.(svg)$'
+ # Forbid files which have a UTF-8 byte-order marker
+ - id: check-byte-order-marker
+ # Checks that non-binary executables have a proper shebang
+ - id: check-executables-have-shebangs
+ # Check for files that contain merge conflict strings.
+ - id: check-merge-conflict
+ # Check for debugger imports and py37+ breakpoint()
+ # calls in python source
+ - id: debug-statements
+ - id: check-yaml
+ files: .*\.(yaml|yml)$
+ - repo: https://gitlab.com/pycqa/flake8
+ rev: 181bb46098dddf7e2d45319ea654b4b4d58c2840 # 3.8.3
+ hooks:
+ - id: flake8
+ additional_dependencies:
+ - hacking>=3.0.1,<3.1.0
diff --git a/doc/source/conf.py b/doc/source/conf.py
old mode 100755
new mode 100644
diff --git a/test-requirements.txt b/test-requirements.txt
index 2726df6..4b4821e 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -7,6 +7,7 @@ pifpaf>=0.10.0 # Apache-2.0
# Bandit security code scanner
bandit>=1.1.0,<1.6.0 # Apache-2.0
stestr>=2.0.0 # Apache-2.0
+pre-commit>=2.6.0 # MIT
python-memcached>=1.56 # PSF
pymongo!=3.1,>=3.0.2 # Apache-2.0
etcd3gw>=0.2.0 # Apache-2.0
diff --git a/tox.ini b/tox.ini
index 20103d0..d3be70c 100644
--- a/tox.ini
+++ b/tox.ini
@@ -24,7 +24,7 @@ commands =
[testenv:pep8]
deps = {[testenv]deps}
commands =
- flake8
+ pre-commit run -a
# Run security linter
bandit -r oslo_cache -x tests -n5
--
2.20.1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment