ForHosting KIT · Ferramentas para dev

Crie um slug de URL a partir de uma branch Git

Converta um nome de branch Git como feature/add-user-login em um slug curto e adequado para URL, sem levar o prefixo do fluxo ao resultado.

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

A capacidade reconhece o primeiro segmento do caminho como o tipo da branch, mantém tudo o que vem depois como parte descritiva e normaliza esse conteúdo em palavras minúsculas separadas por hífens. O processo é determinístico, dispensa acesso à rede e informa um erro claro quando existe um prefixo, mas não há uma descrição aproveitável.

Separe os metadados do fluxo da descrição útil

Equipes que usam Git normalmente iniciam nomes de branches com um tipo de fluxo, como feature, fix, chore, release ou docs. Esse primeiro segmento ajuda pessoas e automações a entender por que a branch existe, mas em geral é ruído em uma URL pública. Esta capacidade considera o texto antes da primeira barra como o prefixo de tipo e deriva o slug somente do conteúdo posterior. Por exemplo, feature/add-user-login vira add-user-login, enquanto fix/checkout/payment-timeout resulta em checkout-payment-timeout. Caminhos descritivos aninhados são preservados como palavras, em vez de descartados, permitindo que sua equipe mantenha escopos relevantes sem expor barras na URL final. Um prefixo opcional refs/heads/, frequentemente retornado por ferramentas Git e sistemas de integração contínua, é removido antes da interpretação. A operação não mantém uma lista fechada de tipos aceitos. Qualquer primeiro segmento não vazio pode ser o prefixo, portanto a mesma regra funciona com convenções locais como spike, experiment, maintenance ou um fluxo de chamados definido pela sua organização.

Entenda exatamente como o slug é normalizado

Depois de selecionar a parte descritiva, o algoritmo aplica uma sequência estável de transformações. Ele remove espaços das extremidades, normaliza caracteres latinos acentuados, converte letras em minúsculas, troca cada sequência que não seja formada por letras ASCII ou dígitos por um hífen e elimina hífens no início e no fim. Barras, espaços, sublinhados, pontuação e separadores repetidos passam, assim, à mesma forma segura para URL. Uma branch como feature/Account Settings_v2 se torna account-settings-v2. O resultado é intencionalmente previsível: não há modelo de linguagem, dicionário, consulta de rede, valor aleatório, horário nem estado do repositório. A função não inventa palavras nem tenta interpretar identificadores de chamados. Números existentes na descrição continuam presentes, o que ajuda em nomes como fix/PROJ-482-login-loop. Como a normalização pode remover símbolos e sistemas de escrita não compatíveis, a capacidade ainda verifica se resta ao menos uma letra ou um número utilizável. Se a descrição contiver apenas pontuação ou caracteres incapazes de formar o slug ASCII aceito, será retornado um erro de entrada em vez de um valor vazio silencioso.

Use o resultado com segurança em publicações e automações

O objeto retornado contém um único campo, slug, e pode alimentar diretamente uma prévia de documentação, uma URL de ambiente efêmero, um caminho de notas de versão, uma página de alterações ou um fluxo de publicação de pull requests. Valide o resultado antes de reservar uma rota caso seu destino imponha regras adicionais, como comprimento máximo, caminhos protegidos ou exigência de exclusividade. Esta capacidade não consulta seu roteador, provedor de hospedagem, serviço Git ou banco de conteúdo, portanto não sabe se o slug já está ocupado. Ela também não verifica se a string fornecida corresponde a uma branch existente; apenas aplica a convenção documentada. Branches sem barra, nomes que terminam logo após o prefixo e descrições normalizadas como slug vazio são rejeitados. Essa falha rigorosa é útil em automações porque uma origem malformada não publica acidentalmente em uma rota vazia ou genérica. Em automações via API, cada solicitação usa o preço-base publicado de US$ 0,002. A mesma transformação determinística pode ser executada no navegador para conversões individuais rápidas.

Nomeie uma implantação de prévia

Transforme uma branch de funcionalidade em um caminho legível para um ambiente isolado de revisão, sem o prefixo do fluxo.

Crie um caminho para notas de versão

Derive um segmento de URL consistente da parte descritiva de uma branch release ou fix para notas geradas.

Padronize links de pull requests

Normalize descrições aninhadas de branches em links estáveis e minúsculos usados em documentação e automações.

O que é considerado prefixo de tipo?

É o primeiro segmento não vazio antes da primeira barra. Pode ser feature, fix, chore ou qualquer tipo adotado pela sua equipe.

O que acontece com caminhos aninhados?

Todos os segmentos após a primeira barra pertencem à descrição, e seus separadores se tornam hífens no slug.

Posso enviar um nome refs/heads completo?

Sim. O início refs/heads/ é removido antes da identificação do prefixo de tipo e da parte descritiva.

Por que uma branch sem barra falha?

A capacidade exige prefixo de tipo e parte descritiva distintos, então um nome único sem separação é ambíguo.

A ferramenta verifica se a branch existe?

Não. Ela apenas processa texto de modo determinístico e nunca acessa um repositório ou serviço de hospedagem Git.

Quanto custa uma solicitação de API?

Cada solicitação de API usa o preço-base publicado de US$ 0,002; a versão do navegador executa localmente a mesma transformação.

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/dev/slug-from-git-branch

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/dev/slug-from-git-branch \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"branch":"feature/add-user-login"}'
{
  "branch": "feature/add-user-login"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.slug_from_git_branch",
  "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.

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 →