Skip to main content

Uso de la CLI de GitHub para reenviar webhooks para pruebas

Puedes usar GitHub CLI para probar los webhooks en tu entorno de desarrollo sin la complejidad del reenvío de puertos o el uso de herramientas de terceros.

Acerca de la recepción de webhooks con GitHub CLI

Al realizar cambios en el código de integración, la ejecución del código en un entorno local te permite probar e iterar rápidamente sin implementar el código. Puedes usar GitHub CLI para reenviar webhooks a tu entorno local.

El reenvío de webhooks en GitHub CLI solo funciona con webhooks de repositorio y de la organización. Si desea probar otros tipos de webhooks localmente, deberá hacerlo manualmente. Para obtener más información, consulta «Prueba de webhooks».

Advertencia: el reenvío de webhooks está diseñado para usarlo solo en pruebas y durante la fase de desarrollo. No se admite su uso en entornos de producción para controlar webhooks activos.

Recepción de webhooks con GitHub CLI

Para más información sobre GitHub CLI, consulta "Acerca del CLI de GitHub".

  1. Para instalar la extensión GitHub CLI para habilitar el reenvío de webhooks, usa el subcomando extension install.

    gh extension install cli/gh-webhook
    
  2. Si desea reenviar webhooks de la organización, agregue el admin:org_hook ámbito al inicio de sesión de GitHub CLI para que tenga los permisos necesarios.

    gh auth refresh --scopes admin:org_hook
    
  3. Inicia la aplicación localmente y toma nota de la dirección URL donde espera recibir los webhooks. En esta guía se supone que la aplicación escucha eventos de webhook en http://localhost:3000/webhook.

  4. Para configurar webhooks que se van a entregar a la aplicación, ejecuta el subcomando webhook forward. Reemplaza REPOSITORY por el nombre del repositorio. Por ejemplo, monalisa/octocat. Reemplaza EVENTS por una lista separada por comas de los eventos que quieres recibir. Por ejemplo, issues,pull_request. Reemplaza URL por la dirección URL local donde la aplicación espera recibir webhooks. Por ejemplo, "http://localhost:3000/webhook". Para escuchar webhooks de organización en lugar de webhooks de repositorio, reemplaza la marca --repo por la marca --org. Por ejemplo, --org="octo-org".

    gh webhook forward --repo=REPOSITORY --events=EVENTS --url=URL
    

Deja el comando en ejecución en segundo plano. Recibirás todos los eventos especificados para el repositorio especificado y los reenviarás al controlador de webhooks que se ejecuta en la dirección URL especificada.

Nota: No puede haber varias personas reenviando webhooks a la vez en un solo repositorio y organización. Si intentas configurar el reenvío de webhook y hay otra persona que está trabajando con esa organización o repositorio, recibirás un error Hook already exists.