Saltar al contenido
🛠️ToolsShed

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 endpoint

Comments & Feedback

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