Generador de Mensajes Git Commit
Genera mensajes en formato Conventional Commits con tipo, alcance y descripción.
Acerca de esta herramienta
El Generador de Mensajes de Confirmación de Git ayuda a los desarrolladores a escribir mensajes claros y estandarizados siguiendo la especificación de Conventional Commits. Este formato mejora la legibilidad del registro de control de versiones, permite la generación automática de versiones y registros de cambios, y mejora la colaboración en equipo al garantizar una estructura consistente en todo el proyecto. Ya sea que trabajes en un proyecto personal o en un equipo grande, los mensajes de confirmación bien formateados son esenciales para la mantenibilidad y la trazabilidad.
Para usar la herramienta, selecciona un tipo de confirmación (feat, fix, docs, style, refactor, test, chore o perf), opcionalmente agrega un alcance para aclarar qué parte del código cambió, escribe una descripción concisa del cambio e incluso puedes agregar más detalles en el cuerpo del mensaje o información de pie de página, como referencias de problemas. La herramienta genera instantáneamente un mensaje de Conventional Commit correctamente formateado que puedes copiar y pegar directamente en tu sistema de control de versiones.
Los desarrolladores, ingenieros de DevOps y mantenedores de código abierto se benefician más de adoptar Conventional Commits, ya que permiten la automatización de versionado semántico y la generación profesional de registros de cambios. Aunque algunos proyectos pueden preferir estilos de confirmación personalizados, el formato de Conventional Commits cuenta con amplio apoyo en herramientas de CI/CD, GitHub Actions y plataformas de lanzamiento semántico, lo que lo hace ideal para flujos de trabajo de software modernos.
Preguntas Frecuentes
Implementación de Código
# 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.