Aller au contenu

Hooks & qualité

·1 min·
Git
Git - Cet article fait partie d'une série.
Partie 6: Cet article

Un hook est une action lancée automatiquement par Git à un moment clé (avant un commit, avant un push, etc.).
L’idée : laisser des outils vérifier/formater le code avant qu’il n’entre dans l’historique.
Avec pre-commit, ces vérifications sont centralisées et faciles à maintenir.

Installation :

uv add --dev pre-commit ruff black sqlfluff dbt-core dbt-duckdb
pre-commit install

Configuration minimale (.pre-commit-config.yaml) à intégrer à la racine du projet :

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.6.0
    hooks:
      - id: end-of-file-fixer
      - id: trailing-whitespace
      - id: check-merge-conflict
      - id: detect-private-key

  - repo: https://github.com/charliermarsh/ruff-pre-commit
    rev: v0.6.9
    hooks:
      - id: ruff
        args: [--fix]

  - repo: https://github.com/psf/black
    rev: 24.8.0
    hooks:
      - id: black

  - repo: https://github.com/sqlfluff/sqlfluff
    rev: 3.1.0
    hooks:
      - id: sqlfluff-lint
        additional_dependencies: [dbt-core, dbt-duckdb]
        args: [--dialect, duckdb, --templater, jinja]

Astuce utile :

pre-commit run --all-files   # lance tous les hooks sur tout le repo une première fois

Une exception ? git commit -m "..." --no-verify.


Premier vrai commit de code
#

Une fois la base posée, le code peut être ajouté par blocs cohérents :

git checkout -b feat/bootstrap-codebase
git add src/ scripts/ models/ pyproject.toml uv.lock
git commit -m "feat(repo): import initial extractor and dbt skeleton"
git push -u origin feat/bootstrap-codebase
Thibault CLEMENT - Intechnia
Auteur
Thibault CLEMENT - Intechnia
Data scientist
Git - Cet article fait partie d'une série.
Partie 6: Cet article