ForHosting KIT · Utilidades de desarrollo

Validador y analizador de mensajes Conventional Commits

Este validador de mensajes Conventional Commits comprueba si la cabecera de un commit sigue la estructura habitual de tipo, ámbito opcional y descripción, y devuelve esas partes como datos estructurados estables.

● BetaGratis · en su navegador
Úselo desde WebAPIEmailTelegramApp pronto

Reconoce los tipos comunes de compilación, mantenimiento, CI, documentación, funcionalidad, corrección, rendimiento, refactorización, reversión, estilo y pruebas. Úselo para detectar cabeceras mal formadas o tipos desconocidos antes de incorporarlos al historial compartido, a un flujo de publicación o a un registro de cambios automático. El resultado compacto queda listo para scripts sin análisis de texto adicional.

Compruebe la cabecera y extraiga campos útiles

Envíe el mensaje de commit completo en el campo de texto. El validador normaliza los finales de línea y examina la primera línea como cabecera de Conventional Commits, por lo que el mensaje puede conservar debajo una línea en blanco, párrafos de cuerpo y pies. Una cabecera válida comienza con un tipo reconocido en minúsculas. Puede continuar con un ámbito entre paréntesis, añadir un signo de exclamación para señalar un cambio incompatible y, después, debe contener dos puntos, exactamente un espacio separador y una descripción no vacía. Por ejemplo, <code>feat(parser): support escaped delimiters</code> produce el tipo <code>feat</code>, el ámbito <code>parser</code> y la descripción <code>support escaped delimiters</code>. El resultado normal también incluye <code>valid: true</code> y un campo booleano de cambio incompatible. Si no existe ámbito, la propiedad se omite en vez de rellenarse con un valor vacío o nulo engañoso. Los errores de sintaxis y los tipos desconocidos generan un error de entrada no válida con una explicación directa, para que un hook del editor o una canalización muestre una corrección útil sin interpretar un resultado parcial.

Conozca la convención reconocida

Conventional Commits define la forma de una cabecera, pero permite que cada proyecto establezca su vocabulario de tipos. Esta capacidad utiliza deliberadamente un conjunto fijo y práctico para ofrecer resultados previsibles entre repositorios: build, chore, ci, docs, feat, fix, perf, refactor, revert, style y test. Una cabecera bien formada con otra palabra también falla, porque aceptar cualquier término impediría validar el tipo solicitado. Los tipos deben estar en minúsculas. Los ámbitos son opcionales y pueden contener letras minúsculas, dígitos, puntos, guiones bajos, barras o guiones; deben empezar por una letra o un dígito. Así se admiten ámbitos habituales como <code>api</code>, <code>web-client</code> y <code>packages/core</code>, mientras se rechazan espacios ambiguos y paréntesis sin pareja. La descripción conserva su puntuación y uso de mayúsculas originales, pero no puede empezar ni terminar con espacios. Un signo de exclamación justo antes de los dos puntos indica un cambio incompatible y se devuelve por separado. Un pie <code>BREAKING CHANGE</code> puede permanecer en el cuerpo, aunque el resultado actual calcula el booleano únicamente desde el signo de la cabecera y no interpreta la semántica de los pies.

Integre una validación determinista en el desarrollo

Utilice el validador en cuanto esté disponible el mensaje propuesto: en un hook del editor de commits, una comprobación de pull request, una cola de fusión o un servicio que prepare metadatos de publicación. Un hook local ofrece la respuesta más rápida, mientras que la validación del servidor garantiza que los commits creados mediante automatización o clientes alternativos sigan la misma política. El analizador es determinista y realiza un recorrido acotado de la cadena. No consulta un alojamiento de repositorios, inspecciona objetos Git, deduce intenciones a partir de un diff, reescribe la descripción ni contacta con servicios externos. Por ello, la misma entrada produce los mismos campos o el mismo error en el navegador y mediante la API. Use el tipo, ámbito y descripción devueltos como datos de clasificación para agrupar registros de cambios, aplicar reglas de publicación o alimentar paneles, pero mantenga aparte las comprobaciones semánticas propias del proyecto. Por ejemplo, puede confirmar que <code>fix(auth): reject expired tokens</code> es válido estructuralmente, pero no que el cambio corrija un defecto ni que <code>auth</code> sea un paquete permitido. Añada la política del repositorio si necesita listas de ámbitos o referencias a incidencias más estrictas.

Proteja un hook commit-msg

Rechace cabeceras mal formadas al instante y muestre a los autores la estructura Conventional Commits exacta que espera el repositorio.

Valide la automatización de fusiones

Compruebe mensajes creados por squash, colas de fusión o herramientas de publicación antes de incorporarlos al historial permanente.

Clasifique entradas de publicación

Extraiga tipo, ámbito, descripción y estado incompatible estables para agrupar cambios o tomar decisiones de publicación.

¿Cuánto cuesta una validación?

Cada solicitud a la API cuesta $0.002. También puede ejecutar la versión para navegador directamente en esta página.

¿Qué tipos de commit se reconocen?

Los tipos reconocidos son build, chore, ci, docs, feat, fix, perf, refactor, revert, style y test.

¿Es obligatorio indicar un ámbito?

No. Tanto feat: add export como feat(api): add export son válidos. Si falta, el ámbito se omite del resultado.

¿Puede el mensaje incluir cuerpo y pies?

Sí. La primera línea se valida como cabecera; las líneas posteriores se conservan como entrada, pero no se convierten en campos de salida.

¿Un signo de exclamación identifica un cambio incompatible?

Sí. Un signo de exclamación justo antes de los dos puntos establece el valor incompatible como verdadero. No se interpretan declaraciones presentes solo en el pie.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

POSThttps://api.kit.forhosting.com/dev2/commit-message-lint

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

curl -X POST https://api.kit.forhosting.com/dev2/commit-message-lint \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"feat(parser): support escaped delimiters"}'
{
  "text": "feat(parser): support escaped delimiters"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev2.commit_message_lint",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

max_chars100000
max_header_chars1000
HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Ver la documentación completa del KIT →