Validador de nomes de branches git
Informe o nome da branch e o seu modelo: feature/ABC-123-add-login contra type/ticket-description é válida e se divide em type feature, ticket ABC e description 123-add-login. Se não encaixar, a mensagem mostra a branch e o modelo lado a lado. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Branch
- feature/ABC-123-add-login
- Convenção
- type/ticket-description
- Nomes dos componentes
- type, ticket, description
- Número de componentes
- 3
Equipes que compartilham um monorepo ou um repositório de produto de longa duração costumam acordar uma convenção de nomes de branches para que bots de revisão, scripts de release e links de tickets interpretem cada ref sem suposições humanas. Um padrão típico é tipo barra ticket hífen descrição—por exemplo feature/ABC-123-add-login—mas cada organização inventa seus próprios separadores e a ordem dos componentes. Este validador de convenção de nomes de branches git aceita a string da branch e o modelo de convenção, verifica se o nome inteiro coincide do início ao fim e devolve cada componente nomeado para que CI, hooks e painéis apliquem a política sem regex frágeis de uso único.
Como o padrão de convenção funciona e o que é extraído
Uma convenção é um modelo curto feito de nomes de marcadores e separadores literais. Os marcadores são identificadores comuns: começam com letra ou sublinhado e continuam com letras, dígitos ou sublinhados. Todo o resto no modelo é um separador que deve aparecer literalmente no nome da branch.
O exemplo clássico type/ticket-description significa, portanto, três componentes—type, ticket e description—unidos por uma barra e depois um hífen. Quando você envia a branch feature/ABC-add-login com essa convenção, o validador devolve type igual a feature, ticket igual a ABC e description igual a add-login. O componente final pode conter os mesmos caracteres de separadores anteriores, de modo que slugs de várias palavras como add-user-login permaneçam dentro de description em vez de serem cortados no primeiro hífen.
Os nomes de componentes em uma convenção devem ser únicos; o padrão deve começar e terminar com um marcador; marcadores e separadores devem alternar. Essas regras mantêm o casador compilado determinístico e evitam capturas ambíguas.
Casos de uso
Portão CI para pull requests
Rejeite branches de PR que não coincidam com type/ticket-description antes de builds e testes caros.
Hooks de pre-commit e onboarding
Ensine aos desenvolvedores o padrão de nomenclatura da casa localmente com o mesmo casador puro que o servidor usa.
Automação de tickets e changelog
Extraia os componentes ticket e type do nome da branch para atualizar trackers e escolher seções do changelog.
Perguntas frequentes
O que acontece se o nome da branch estiver vazio?
Um nome de branch vazio ou só com espaços nunca é aceito e não é cobrado.
A parte description pode conter hífens?
Sim. O marcador final captura o sufixo restante, de modo que add-user-login permanece no último componente quando o separador anterior é um único hífen.
O validador impõe uma lista fixa de tipos de branch?
Não. Ele verifica a estrutura e extrai componentes. Aplique sua própria lista permitida no componente type se você só aceita feature, fix, chore e rótulos semelhantes.
Por que o ticket sai como ABC e não como ABC-123?
Em type/ticket-description, o ticket termina no primeiro hífen, porque esse hífen é o separador antes da descrição. Tudo o que vem depois, 123-add-login, fica na última parte, que pode ter seus próprios hífens.
Quais caracteres fazem o nome de uma branch falhar?
Espaços, pontos consecutivos, sinais de pontuação proibidos pelo git e caracteres de controle. Um nome vazio ou só com espaços também é recusado, porque o git não consegue criar uma branch sem nome.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
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.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/dev/git-branch-name-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"branch":"feature/ABC-123-add-login","convention":"type/ticket-description"}'const res = await fetch("https://api.kit.forhosting.com/dev/git-branch-name-validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"branch": "feature/ABC-123-add-login",
"convention": "type/ticket-description"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/git-branch-name-validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"branch": "feature/ABC-123-add-login",
"convention": "type/ticket-description"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/git-branch-name-validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"branch":"feature/ABC-123-add-login","convention":"type/ticket-description"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"branch":"feature/ABC-123-add-login","convention":"type/ticket-description"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/git-branch-name-validate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"branch": "feature/ABC-123-add-login",
"convention": "type/ticket-description"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.git_branch_name_validate",
"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.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Nomes vazios falham com invalid_input, assim como caracteres inseguros comuns em refs git, como espaços, pontos consecutivos e pontuação proibida.
Como o padrão de convenção funciona e o que é extraído
Se a branch não coincidir com o padrão inteiro, a tarefa falha com invalid_input e uma mensagem que cita a branch e a convenção para que os desenvolvedores corrijam o nome ou a política de um só olhar.
Contrato de entrada, checagens de segurança e formato da resposta
Caracteres de controle também são rejeitados. Chaves de saída opcionais são omitidas em vez de definidas como null. Validação falha não é cobrada. Combine a resposta com sua própria camada de política se precisar de uma lista permitida de valores de type como feature, fix, chore ou release; esta capacidade verifica a estrutura e extrai partes, não codifica o vocabulário de uma única organização. Envie por POST um corpo JSON com duas strings obrigatórias: branch, o nome candidato da branch git, e convention, o modelo de nomenclatura. Aliases são aceitos por conveniência—branch_name, name e ref para o campo da branch; pattern, format e template para o da convenção—mas os nomes canônicos aparecem na documentação e nos SDKs. Ambos os campos devem ser não vazios após rejeitar apenas espaços em branco; uma branch vazia é sempre invalid_input porque o git não pode criar uma ref de comprimento zero e a automação que esquece de passar o nome deve falhar de forma fechada. No sucesso o corpo inclui valid true, a branch e a convenção ecoadas, um objeto components mapeando cada nome de marcador ao valor capturado, component_names na ordem do modelo e component_count.
Onde um validador de nomes de branch entrega valor
Jobs de integração contínua usam um validador de convenção de nomes de branches git como primeiro passo do pipeline para que pull requests abertas com nomes ad hoc nunca cheguem a estágios caros de build. A automação de release extrai o componente ticket para abrir ou atualizar issues no tracker, e extrai o componente type para escolher seções do changelog sem gambiarras frágeis de substring. Sites de conteúdo que ranqueiam por validador de convenção de nomes de branch git se beneficiam de um formulário ao vivo cujo caminho gratuito coincide byte a byte com o caminho de automação paga. Equipes de plataforma que operam muitos repositórios publicam uma única string de convenção no portal de desenvolvedores e apontam cada modelo, bot e checklist para este endpoint, de modo que uma mudança de política seja uma única edição de string e não uma caça por scripts de shell. Como a implementação é pure parse de nível A, cada chamada bem-sucedida custa o preço base publicado US$ 0,002 sem tokens de modelo e sem rede de saída.
Perguntas técnicas
Como valido uma branch git contra uma convenção de nomes?
Envie branch (por exemplo feature/ABC-add-login) e convention (por exemplo type/ticket-description). Em caso de sucesso a API devolve valid true e um mapa components com cada parte nomeada.
Quanto custa o validador de nomes de branches git?
A ferramenta no navegador é gratuita. Solicitações API usam saldo KIT pré-pago a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.