ForHosting KIT · Ferramentas para dev

Validador de mensagens Conventional Commits

Este validador de mensagens Conventional Commits verifica se o cabeçalho de um commit segue a estrutura conhecida de tipo, escopo opcional e descrição, e devolve essas partes como dados estruturados estáveis.

● BetaGrátis · no seu navegador
Use pelo WebAPIE-mailTelegramApp em breve

Ele reconhece os tipos comuns de build, manutenção, CI, documentação, recurso, correção, desempenho, refatoração, reversão, estilo e teste. Use-o para encontrar cabeçalhos malformados ou tipos desconhecidos antes que entrem no histórico compartilhado, no fluxo de lançamento ou no changelog automático. O resultado compacto fica pronto para scripts sem exigir outra análise de texto.

Verifique o cabeçalho e extraia campos úteis

Envie a mensagem de commit completa no campo de texto. O validador normaliza as quebras de linha e examina a primeira linha como cabeçalho de Conventional Commits; assim, a mensagem ainda pode conter abaixo uma linha vazia, parágrafos de corpo e rodapés. Um cabeçalho válido começa com um tipo reconhecido em letras minúsculas. Ele pode continuar com um escopo entre parênteses, receber um ponto de exclamação para indicar uma mudança incompatível e depois deve conter dois-pontos, exatamente um espaço separador e uma descrição não vazia. Por exemplo, <code>feat(parser): support escaped delimiters</code> devolve o tipo <code>feat</code>, o escopo <code>parser</code> e a descrição <code>support escaped delimiters</code>. O resultado normal também inclui <code>valid: true</code> e um campo booleano de incompatibilidade. Quando não há escopo, a propriedade é omitida em vez de receber um valor vazio ou nulo enganoso. Falhas de sintaxe e tipos desconhecidos produzem um erro de entrada inválida com explicação direta, permitindo que um hook do editor ou pipeline apresente uma correção útil sem interpretar um resultado analisado apenas em parte.

Entenda a convenção reconhecida

Conventional Commits define o formato do cabeçalho, mas permite que os projetos criem seu próprio vocabulário de tipos. Esta capacidade adota intencionalmente um conjunto fixo e prático para gerar resultados previsíveis entre repositórios: build, chore, ci, docs, feat, fix, perf, refactor, revert, style e test. Um cabeçalho com formato correto e outra palavra ainda falha, pois aceitar qualquer termo eliminaria a validação de tipo solicitada. Os tipos devem estar em minúsculas. Escopos são opcionais e podem conter letras minúsculas, dígitos, pontos, sublinhados, barras ou hífens; eles devem começar por letra ou dígito. Isso permite escopos comuns como <code>api</code>, <code>web-client</code> e <code>packages/core</code>, enquanto rejeita espaços ambíguos e parênteses sem correspondência. A descrição mantém pontuação e capitalização originais, mas não pode começar nem terminar com espaços. Um ponto de exclamação imediatamente antes dos dois-pontos indica mudança incompatível e é retornado separadamente. Um rodapé <code>BREAKING CHANGE</code> pode permanecer no corpo, porém o resultado atual obtém o booleano de incompatibilidade somente do marcador do cabeçalho e não interpreta a semântica dos rodapés.

Inclua validação determinística no desenvolvimento

Use o validador assim que uma mensagem proposta estiver disponível: em um hook do editor de commits, uma verificação de pull request, uma fila de merge ou um serviço que prepara metadados de lançamento. Um hook local oferece retorno mais rápido, enquanto a validação no servidor garante que commits criados por automação ou clientes alternativos sigam a mesma política. O analisador é determinístico e faz uma varredura limitada da string. Ele não acessa um provedor de repositório, inspeciona um objeto Git, deduz intenção a partir de um diff, reescreve a descrição fornecida nem contata serviços externos. Portanto, a mesma entrada gera os mesmos campos ou o mesmo erro no navegador e pela API. Trate tipo, escopo e descrição retornados como dados de classificação para agrupar changelogs, aplicar regras de lançamento ou alimentar painéis, mas mantenha separadas as verificações semânticas específicas do projeto. Por exemplo, o validador confirma que <code>fix(auth): reject expired tokens</code> é estruturalmente válido, mas não prova que a alteração corrige um defeito nem que <code>auth</code> seja um pacote permitido. Combine-o com a política do repositório quando precisar de listas de escopos ou referências a tickets mais rigorosas.

Proteja um hook commit-msg

Rejeite cabeçalhos malformados imediatamente e mostre aos autores a estrutura Conventional Commits exata exigida pelo repositório.

Valide a automação de merges

Confira mensagens criadas por squash, fila de merge ou ferramentas de lançamento antes que entrem no histórico permanente.

Classifique entradas de lançamento

Extraia tipo, escopo, descrição e incompatibilidade estáveis para agrupar changelogs ou orientar decisões de lançamento.

Quanto custa uma validação?

Cada solicitação à API custa US$ 0,002. Você também pode executar a versão para navegador diretamente nesta página.

Quais tipos de commit são reconhecidos?

Os tipos reconhecidos são build, chore, ci, docs, feat, fix, perf, refactor, revert, style e test.

O escopo é obrigatório?

Não. Tanto feat: add export quanto feat(api): add export são válidos. Quando ausente, o escopo é omitido do resultado.

A mensagem pode ter corpo e rodapés?

Sim. A primeira linha é validada como cabeçalho; as linhas seguintes permanecem na entrada, mas não são analisadas como campos de saída.

Um ponto de exclamação identifica uma mudança incompatível?

Sim. Um ponto de exclamação logo antes dos dois-pontos define incompatibilidade como verdadeira. Declarações presentes apenas no rodapé não são interpretadas.

Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.

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

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

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"
  }
}

A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

max_chars100000
max_header_chars1000
HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Ver a documentação completa do KIT →