Aller au contenu
🛠️ToolsShed

Générateur de Messages Git Commit

Génère des messages au format Conventional Commits avec type, portée et description.

À propos de cet outil

Le Générateur de Messages de Confirmation Git aide les développeurs à rédiger des messages clairs et standardisés conformément à la spécification des Conventional Commits. Ce format rend le journal de contrôle de version lisible, permet la génération automatique de versions et de journaux de modifications, et améliore la collaboration d'équipe en garantissant une structure cohérente dans l'ensemble du projet. Que vous travailliez seul ou dans une grande équipe, les messages de confirmation bien formatés sont essentiels pour la maintenabilité et la traçabilité.

Pour utiliser l'outil, sélectionnez un type de confirmation (feat, fix, docs, style, refactor, test, chore ou perf), ajoutez éventuellement une portée pour clarifier quelle partie du code a changé, écrivez une description concise de la modification et inclure optionnellement un corps avec plus de détails ou des informations de pied de page, comme des références de problèmes. L'outil génère instantanément un message de Conventional Commit correctement formaté que vous pouvez copier et coller directement dans votre système de contrôle de version.

Les développeurs, les ingénieurs DevOps et les mainteneurs de code source ouvert bénéficient le plus de l'adoption des Conventional Commits, car ils permettent l'automatisation du versioning sémantique et la génération professionnelle de journaux de modifications. Bien que certains projets puissent préférer des styles de confirmation personnalisés, le format Conventional Commits est largement pris en charge par les outils de CI/CD, GitHub Actions et les plateformes de lancement sémantique, ce qui le rend idéal pour les flux de travail logiciels modernes.

Questions Fréquentes

Implémentation du Code

# Generate Conventional Commit messages programmatically
# No external library needed — plain string formatting

from dataclasses import dataclass, field
from typing import Optional

@dataclass
class CommitMessage:
    type: str                          # feat | fix | docs | style | refactor | test | chore ...
    description: str
    scope: Optional[str] = None
    body: Optional[str] = None
    breaking_change: Optional[str] = None
    footer: list[str] = field(default_factory=list)

    def render(self) -> str:
        # Header: type(scope)!: description
        scope_str = f"({self.scope})" if self.scope else ""
        bang      = "!" if self.breaking_change else ""
        header    = f"{self.type}{scope_str}{bang}: {self.description}"

        parts = [header]
        if self.body:
            parts.append("")
            parts.append(self.body)

        trailers = list(self.footer)
        if self.breaking_change:
            trailers.append(f"BREAKING CHANGE: {self.breaking_change}")
        if trailers:
            parts.append("")
            parts.extend(trailers)

        return "\n".join(parts)


# Example usage
msg = CommitMessage(
    type="feat",
    scope="auth",
    description="add OAuth2 login support",
    body="Implements Google and GitHub OAuth2 providers.\nUpdates the session schema.",
    breaking_change="remove legacy /login endpoint",
    footer=["Reviewed-by: Alice <alice@example.com>"],
)
print(msg.render())
# feat(auth)!: add OAuth2 login support
#
# Implements Google and GitHub OAuth2 providers.
# Updates the session schema.
#
# Reviewed-by: Alice <alice@example.com>
# BREAKING CHANGE: remove legacy /login endpoint

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.