Mes Projets

Conventional commit checker

Un collègue a ajouté commitlint à un projet Rust. Soudainement, le dépôt avait besoin de Node.js, npm, Husky et d’un répertoire node_modules juste pour valider un message de commit. La spécification est une grammaire — l’analyser prend quelques millisecondes et n’a aucune raison d’embarquer un runtime JavaScript. Un seul binaire suffit.

Fonctionnalités

Intégrations

Hook git local — une seule commande, aucun outil supplémentaire :

commit-check install-hook

GitHub Actions :

- name: Validate commit message
  run: git log -1 --pretty=%B | docker run -i slundi/commit-check:latest validate

GitLab CI :

commit-msg-check:
  image: slundi/commit-check:latest
  script: echo "$CI_COMMIT_MESSAGE" | commit-check validate
  only: [merge_requests]

Woodpecker / Drone CI :

- name: validate-commit
  image: slundi/commit-check:latest
  commands:
    - echo "$${CI_COMMIT_MESSAGE}" | commit-check validate --verbose

Framework pre-commit (.pre-commit-config.yaml) :

repos:
  - repo: https://codeberg.org/slundi/conventional-commits
    rev: v1.0.0
    hooks:
      - id: commit-check
        stages: [commit-msg]

Nix — sans installation :

nix run github:slundi/conventional-commits -- validate --message "feat: nix support"

Comparaison

commit-checkcommitlintcommitizen
Runtime requisaucun❌ Node.js❌ Node.js / Python
Binaire statique unique
Gestion des hooks intégréeinstall-hook❌ nécessite Husky❌ nécessite Husky
Analyse sémantique des footersPartiel (regex)
Correction automatique--fix
Nettoyage du corps / trailers
Sortie JSON
Utilisable comme bibliothèque✅ crate Rust
Image Docker
Assistant interactif de commit

L’assistant interactif de commitizen pour guider la rédaction des commits est hors du périmètre de cet outil — il se concentre sur la validation, pas sur la création.

Installation

cargo install conventional-commits

Docker :

echo "feat: add login" | docker run -i slundi/commit-check:latest validate

Nix flake — sans installation :

nix run github:slundi/conventional-commits -- validate --message "feat: nix support"

Dépôt · crates.io · lib.rs