ForHosting KIT · Utilidades de desarrollo

Cree un slug URL desde el nombre de una rama Git

Convierta un nombre de rama Git como feature/add-user-login en un slug breve y apto para URL, sin incluir el prefijo del flujo de trabajo.

● BetaGratis · en su navegador
Úselo desde WebAPIEmailTelegramApp pronto

La capacidad reconoce el primer segmento de la ruta como tipo de rama, conserva como descripción todo lo posterior y lo normaliza como palabras en minúsculas separadas por guiones. Es determinista, no requiere acceso a la red y devuelve un error claro cuando la rama tiene un prefijo, pero carece de una descripción utilizable.

Separe los metadatos del flujo de la descripción útil

Los equipos que usan Git suelen iniciar los nombres de rama con un tipo de flujo, como feature, fix, chore, release o docs. Ese primer segmento ayuda a las personas y a la automatización a entender el propósito de la rama, pero normalmente sobra en una URL pública. Esta capacidad interpreta el texto anterior a la primera barra como prefijo de tipo y deriva el slug únicamente de todo lo posterior. Por ejemplo, feature/add-user-login se convierte en add-user-login, mientras que fix/checkout/payment-timeout produce checkout-payment-timeout. Las rutas descriptivas anidadas se conservan como palabras en lugar de descartarse, de modo que su equipo puede mantener ámbitos significativos sin exponer barras en la URL final. Antes de interpretar la rama se elimina el prefijo opcional refs/heads/, que suelen devolver las herramientas Git y los sistemas de integración continua. La operación no utiliza una lista cerrada de tipos admitidos. Cualquier primer segmento no vacío puede actuar como prefijo, por lo que la misma regla funciona con convenciones propias como spike, experiment, maintenance o el flujo de incidencias de su organización.

Comprenda cómo se normaliza exactamente el slug

Tras seleccionar la parte descriptiva, el algoritmo aplica una secuencia estable de transformaciones. Elimina espacios exteriores, normaliza caracteres latinos acentuados, convierte las letras a minúsculas, sustituye cada grupo de caracteres que no sean letras ASCII ni dígitos por un guion y quita los guiones iniciales y finales. Por tanto, barras, espacios, guiones bajos, signos de puntuación y separadores repetidos convergen en la misma forma segura para URL. Una rama como feature/Account Settings_v2 se convierte en account-settings-v2. El resultado es deliberadamente previsible: no intervienen modelos lingüísticos, diccionarios, consultas de red, valores aleatorios, marcas temporales ni el estado del repositorio. La función no inventa palabras ni intenta interpretar identificadores de incidencias. Los números presentes en la descripción se mantienen, algo útil para nombres como fix/PROJ-482-login-loop. Como la normalización puede eliminar símbolos y escrituras no admitidas, la capacidad comprueba además que quede al menos una letra o un número válido. Si la descripción solo contiene puntuación o caracteres que no permiten formar el slug ASCII admitido, devuelve un error de entrada en vez de producir silenciosamente un valor vacío.

Use el resultado con seguridad al publicar y automatizar

El objeto devuelto contiene un único campo, slug, por lo que puede alimentar directamente una vista previa de documentación, una URL de entorno efímero, una ruta de notas de versión, una página de cambios o un flujo de publicación de solicitudes de incorporación. Valide el resultado antes de reservar una ruta si su destino impone reglas adicionales, como una longitud máxima, rutas protegidas o unicidad. Esta capacidad no consulta su enrutador, proveedor de alojamiento, servicio Git ni base de datos de contenido, así que no puede saber si el slug ya está ocupado. Tampoco valida que la cadena suministrada corresponda a una rama real del repositorio; solo aplica la convención documentada. Se rechazan las ramas sin barra, las que terminan justo después del prefijo y las descripciones que se normalizan como un slug vacío. Este fallo estricto resulta valioso en automatización, pues evita que una fuente mal formada publique accidentalmente en una ruta vacía o genérica. En la automatización mediante API, cada solicitud usa el precio base publicado de $0.002. La misma transformación determinista puede ejecutarse en el navegador para conversiones individuales rápidas.

Nombre una implementación de vista previa

Convierta una rama de funcionalidad en una ruta legible para un entorno aislado de revisión sin incluir el prefijo del flujo.

Cree una ruta para notas de versión

Derive un segmento URL coherente de la parte descriptiva de una rama release o fix para generar notas.

Estandarice enlaces de solicitudes

Normalice descripciones de ramas anidadas como enlaces estables en minúsculas para documentación y automatización.

¿Qué se considera prefijo de tipo?

El primer segmento no vacío anterior a la primera barra. Puede ser feature, fix, chore o cualquier tipo que utilice su equipo.

¿Qué ocurre con las rutas de rama anidadas?

Todos los segmentos posteriores a la primera barra forman la descripción y sus separadores se convierten en guiones.

¿Puedo enviar un nombre completo refs/heads?

Sí. Se elimina el inicio refs/heads/ antes de identificar el prefijo de tipo y la parte descriptiva.

¿Por qué falla una rama sin barra?

La capacidad exige un prefijo de tipo y una descripción diferenciados, por lo que un nombre único sin separación resulta ambiguo.

¿Comprueba si existe la rama?

No. Solo procesa texto de forma determinista y nunca se conecta a un repositorio ni a un servicio de alojamiento Git.

¿Cuánto cuesta una solicitud API?

Cada solicitud API usa el precio base publicado de $0.002; la versión del navegador ejecuta localmente la misma transformación.

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

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

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.

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 →