Generatore di Messaggi Git Commit
Genera messaggi in formato Conventional Commits con tipo, ambito e descrizione.
Informazioni sullo strumento
Il Generatore di Messaggi di Commit Git aiuta gli sviluppatori a scrivere messaggi chiari e standardizzati secondo la specifica dei Conventional Commits. Questo formato rende i registri di controllo versione leggibili, consente la generazione automatica di versioni e changelog, e migliora la collaborazione di team garantendo una struttura coerente di messaggi in tutto il progetto. Che tu lavori da solo o in un grande team, i messaggi di commit ben formattati sono essenziali per la manutenibilità e la tracciabilità.
Per utilizzare lo strumento, seleziona un tipo di commit (feat, fix, docs, style, refactor, test, chore o perf), aggiungi facoltativamente uno scope per chiarire quale parte della base di codice è cambiata, scrivi una descrizione concisa della modifica e includi opzionalmente un corpo con maggiori dettagli o informazioni di piè di pagina, come riferimenti a problemi. Lo strumento genera istantaneamente un messaggio Conventional Commit correttamente formattato che puoi copiare e incollare direttamente nel tuo sistema di controllo versione.
Sviluppatori, ingegneri DevOps e manutentori di progetti open source traggono il massimo vantaggio dall'adozione dei Conventional Commits, poiché abilitano l'automazione del versionamento semantico e la generazione professionale di changelog. Sebbene alcuni progetti possano preferire stili di commit personalizzati, il formato Conventional Commits è ampiamente supportato da strumenti CI/CD, GitHub Actions e piattaforme di rilascio semantico, rendendolo ideale per flussi di lavoro software moderni.
Domande Frequenti
Implementazione del Codice
# 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 endpointComments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.