- Python 100%
|
|
||
|---|---|---|
| collectivit_commit_hooks | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .pre-commit-hooks.yaml | ||
| noxfile.py | ||
| pyproject.toml | ||
| README.md | ||
commit-hooks
Le nombre de dépôt augmentant avec le temps, on se retrouve avec plein de fichiers
.pre-commit-config.yaml différents, qui configurent des hooks de pre-commit pour faire
tourner différents comme ruff avec des configurations qui peuvent varier selon les
dépôt. Pour unifier les conventions et les règles de lint de tout le code CollectivIT,
ce dépỏt déclare un unique hook de commit, qui lance tous les outils de formattage /
lint avec une configuration unifiée.
Pour le configurer et faire tourner tous les outils de lint standard CollectivIT dans un
dépôt, il suffit du fichier .pre-commit-config.yaml suivant :
default_install_hook_types: [commit-msg, pre-commit]
repos:
- repo: https://git.collectivit.fr/collectivit/commit-hooks.git
rev: 0.0.1
hooks:
- id: all
En mettant le hook à jour, on profite des derniers outils de lint ajoutés et des dernières modification de la configuration.
Outils exécutés
Les outils suivants sont exécutés lorsque le hook est activé dans un dépôt :
-
conventional-pre-commit https://github.com/compilerla/conventional-pre-commit : Vérifie que les messages de commits respectent la norme "Conventionnal Commits".
-
hadolint https://github.com/hadolint/hadolint : Lint les fichiers Dockerfile.
-
j2lint https://github.com/aristanetworks/j2lint : Lint les templates Jinja2.
-
json : Utilise la librairie standard de python pour charger et formatter les fichiers json.
-
pre-commit-hooks https://github.com/pre-commit/pre-commit-hooks : Exécute certains hooks de commits proposés de base par pre-commit :
-
check-added-large-file : Empêche les fichiers de plus de 500Ko d'être ajoutés à git (les fichiers dans git LFS sont autorisés).
-
check-case-conflict : Vérifie que les fichiers commités n'entrent pas en conflits avec des fichiers au même nom mais avec une casse différente, pour éviter les problèmes sur les systèmes de fichiers non-sensibles à la casse.
-
check-merge-conflict : Vérifie que les fichiers ne contiennent pas de conflits de merge non-résolus.
-
end-of-file-fixer : S'assure que les fichiers se terminent par un retour chariot.
-
mixed-line-ending : Vérifies que les fichiers n'ont pas plusieurs types de fin de lignes (LF / CRLF).
-
trailing-whitespace : Supprime les espaces de fin de ligne.
-
-
PyMarkdownLnt https://pymarkdown.readthedocs.io/en/latest/ : Formatteur et linteur pour les fichiers Markdown.
-
Ruff https://docs.astral.sh/ruff/ : Formatteur et linteur pour les fichiers de code python.
-
shellcheck https://github.com/koalaman/shellcheck : Linteur pour les scripts shell / bash.
-
shfmt https://github.com/mvdan/sh : Formatteur pour les scripts bash/sh.
-
Tombi https://tombi-toml.github.io/tombi/docs : Formatteur et linteur pour les fichiers de configuration TOML.
-
yamlfix https://lyz-code.github.io/yamlfix/ : Formatteur et linteur pour les fichiers yaml.