[COMMON] Add and run pre-commit linters via tox

- create a .pre-commit-config.yaml configuration file with
  * gitlint
  * trailing blanks linter
  * tabs removal linter
    - exclude .git folder from it
    - exclude Makefiles since tabs are mandatory by default in them
- create a tox pre-commit profile to run it from tox
  note gitlint is not runnable at this pre-commit stage
- create pre-commit-install and pre-commit-uninstall tox profiles to
  (un)install hooks locally and (un)perform tests at each "git commit"
  call (i.e. without calling manually the pre-commit tox profile)
- precise pre-commit stages/types in the pre-commit configuration file
  so that hooks are installed correctly. This avoids messages about
  skipped tests when they are run at a wrong stage.

Issue-ID: OOM-2643
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: Ie95bb4f6f90be80b05a1398973caffeff7936881
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 0000000..6bfce7a
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,18 @@
+---
+repos:
+  - repo: https://github.com/pre-commit/pre-commit-hooks
+    rev: v4.0.1
+    hooks:
+      - id: trailing-whitespace
+        #exclude: '^ordmodels/'
+  - repo: https://github.com/jorisroovers/gitlint
+    rev: v0.15.1
+    hooks:
+      - id: gitlint
+        stages: [commit-msg]
+  - repo: https://github.com/Lucas-C/pre-commit-hooks
+    rev: v1.1.10
+    hooks:
+      - id: remove-tabs
+        stages: [commit]
+        exclude: '^(.git/|docs/make.bat|.*/Makefile$)'