Git Commit Format

Par openshift · hypershift

Appliquer les règles de formatage des commits conventionnels HyperShift. À utiliser lors de la génération de messages de commit ou de la création de commits.

npx skills add https://github.com/openshift/hypershift --skill Git Commit Format

Règles de formatage des messages de commit Git

Appliquez le format de commit conventionnel pour tous les commits git du projet HyperShift.

Format du message de commit

<type>(<scope>): <description>

[optional body]

[footers]

Types de commit

  • feat: Nouvelles fonctionnalités
  • fix: Corrections de bugs
  • docs: Modifications de documentation
  • style: Modifications de style de code (formatage, etc.)
  • refactor: Refactorisation de code (pas de changements fonctionnels)
  • test: Ajout/mise à jour de tests
  • chore: Tâches de maintenance
  • build: Système de build ou changements de dépendances
  • ci: Changements CI/CD
  • perf: Améliorations de performance
  • revert: Annuler un commit précédent

Changements avec rupture

Avec ! pour attirer l'attention

feat!: send email when product shipped

Avec le footer BREAKING CHANGE

feat: allow config to extend other configs

BREAKING CHANGE: `extends` key now used for extending config files

Avec ! et BREAKING CHANGE

chore!: drop support for Node 6

BREAKING CHANGE: use JavaScript features not available in Node 6.

Footers obligatoires

Footer Signed-off-by

TOUJOURS inclure le footer Signed-off-by avec nom et email.

Obtenez les identifiants dans cet ordre de priorité :

  1. Variables d'environnement : $GIT_AUTHOR_NAME et $GIT_AUTHOR_EMAIL
  2. Configuration Git : git config user.name et git config user.email
  3. Si aucun n'est configuré, demander à l'utilisateur de fournir les détails

Footer Assisted-by

Inclure un footer Assisted-by: LLM quand un assistant IA aide à créer ou générer le message de commit. Ne pas l'inclure pour les messages de commit rédigés par un humain.

Assisted-by: LLM

Règles de validation Gitlint

  • Exécuter make run-gitlint pour valider les messages de commit
  • Ligne de titre : 120 caractères maximum
  • Ligne de body : 140 caractères maximum par ligne
  • Utiliser le format de commit conventionnel
  • Inclure les footers obligatoires (Signed-off-by)
  • Pas d'espaces blancs en fin de ligne

Exemples

Commit simple

docs: correct spelling of CHANGELOG

Signed-off-by: Bryan Cox <brcox@redhat.com>
Assisted-by: LLM

Avec scope

feat(azure): add workload identity support

Signed-off-by: Bryan Cox <brcox@redhat.com>
Assisted-by: LLM

Multi-paragraphes avec footers

fix: prevent racing of requests

Introduce request ID and reference to latest request. Dismiss
incoming responses other than from latest request.

Remove timeouts which were used to mitigate racing but are
obsolete now.

Reviewed-by: Jane Doe
Refs: #123
Signed-off-by: Bryan Cox <brcox@redhat.com>
Assisted-by: LLM

Exemples de commit conventionnel

Message de commit avec description et footer de changement avec rupture :

feat: allow provided config object to extend other configs

Signed-off-by: Bryan Cox <brcox@redhat.com>
BREAKING CHANGE: `extends` key in config file is now used for extending other config files

Message de commit avec ! pour attirer l'attention sur un changement avec rupture :

feat!: send an email to the customer when a product is shipped

Signed-off-by: Bryan Cox <brcox@redhat.com>

Message de commit avec scope et ! pour attirer l'attention sur un changement avec rupture :

feat(api)!: send an email to the customer when a product is shipped

Signed-off-by: Bryan Cox <brcox@redhat.com>

Message de commit avec ! et footer BREAKING CHANGE :

chore!: drop support for Node 6

Signed-off-by: Bryan Cox <brcox@redhat.com>
BREAKING CHANGE: use JavaScript features not available in Node 6.

Message de commit sans body :

docs: correct spelling of CHANGELOG

Signed-off-by: Bryan Cox <brcox@redhat.com>

Message de commit avec scope :

feat(lang): add Polish language

Signed-off-by: Bryan Cox <brcox@redhat.com>

Message de commit avec body multi-paragraphes et plusieurs footers :

fix: prevent racing of requests

Introduce a request ID and a reference to the latest request. Dismiss
incoming responses other than from the latest request.

Remove timeouts which were used to mitigate the racing issue but are
obsolete now.

Reviewed-by: Z
Refs: #123
Signed-off-by: Bryan Cox <brcox@redhat.com>

Checklist rapide

Lors de la création de commits :

  • [ ] Utiliser le format de commit conventionnel : <type>(<scope>): <description>
  • [ ] Utiliser un sujet impératif et expliquer le « Pourquoi » et le « Comment » si approprié
  • [ ] Titre sous 120 caractères
  • [ ] Lignes de body sous 140 caractères
  • [ ] Inclure le footer Signed-off-by
  • [ ] Si un assistant IA a aidé à créer ou générer le message de commit, inclure Assisted-by: LLM ; l'ometre pour les messages rédigés par un humain
  • [ ] Valider avec make run-gitlint
  • [ ] Utiliser ! ou BREAKING CHANGE pour les changements avec rupture

Référence

Conventional Commits Specification: https://www.conventionalcommits.org/en/v1.0.0/#specification

Skills similaires