Messages Git Commit avec ChatGPT

Les messages de commit dans Git sont souvent négligés. Beaucoup les considèrent uniquement comme un mal nécessaire pour enregistrer les modifications. Pourtant, des messages de commit pertinents sont un facteur décisif pour le succès d'un projet : ils assurent une bonne traçabilité des modifications, une collaboration efficace au sein de l'équipe et une recherche d'erreurs plus rapide. Aucune raison de faire préparer automatiquement les messages de commit à l'aide de l'IA.


A l'aide de ce que l'on appelle des Crochets il est possible d'exécuter des scripts, par exemple pour le testing automatisé ou pour la vérification du code à des événements spécifiques pendant le workflow Git. Le client côté client prepare-commit-msg-Le crochet est immédiatement avant Le script bash suivant doit par exemple être placé dans le dossier ~/git-template/hooks/prepare-commit-msg être déposés:

0d311d3e3743f65bd1f7fa370c3b3848

Enfin, on ajoute à son Clé API OpenAI à la ligne 4 et, si vous le souhaitez, modifie encore le modèle ChatGPT utilisé à la ligne 5 (dans notre exemple gpt-4o), puis nous rendons le script exécutable avec chmod +x ~/git-template/hooks/prepare-commit-msg et nous avons utilisé git config --global core.hooksPath ~/git-template/hooks le répertoire par défaut des crochets Git dans la configuration globale de Git.

Le script génère pour le diff de tous les fichiers tagués, un modèle approprié pour le message de commit: git add -A . && git commit. Il est également possible d'envoyer un message vide ("."), qui sera ensuite automatiquement écrasé.: git add -A . && git commit -m "." && git push – mais attention : ici, il n'est plus possible de valider le message.

Les modèles d'IA sont maintenant si avancés que des messages de commit automatiques très raisonnables sont générés sur la base des modifications. En adaptant le prompt (à partir de la ligne 13), il est possible d'optimiser davantage le retour. Le script fonctionne d'ailleurs aussi dans les outils Git UI comme Tour et SmartGit. Si l'on souhaite désactiver ce comportement, il suffit de cliquer sur le bouton "Désactiver". git config --global --unset core.hooksPath.

Retour