Skip to main content

Usando a CLI do GitHub para encaminhar webhooks para teste

É possível usar o GitHub CLI para testar webhooks no ambiente de desenvolvimento sem a complexidade do encaminhamento de porta ou de ferramentas de terceiros.

Sobre como receber webhooks com GitHub CLI

Ao fazer alterações no código de integração, execute-o em um ambiente local para testar e iterar rapidamente sem precisar realizar implantações. É possível usar GitHub CLI para encaminhar webhooks ao ambiente local.

O encaminhamento de webhook na GitHub CLI funciona somente com webhooks de repositório e de organização. Se quiser testar outros tipos de webhooks localmente, precisará fazer isso manualmente. Para obter mais informações, confira "Testar webhooks".

Aviso: o encaminhamento de webhook foi projetado somente para uso durante testes e desenvolvimento. Não há suporte para uso em ambientes de produção ao lidar com webhooks ativos.

Como receber webhooks com a GitHub CLI

Para saber mais sobre GitHub CLI, confira "Sobre o a CLI do GitHub".

  1. Para instalar a extensão de GitHub CLI a fim de habilitar o encaminhamento de webhook, use o subcomando extension install.

    gh extension install cli/gh-webhook
    
  2. Se você quiser encaminhar webhooks da organização, adicione o escopo admin:org_hook ao seu logon do GitHub CLI para ter as permissões necessárias.

    gh auth refresh --scopes admin:org_hook
    
  3. Inicie o aplicativo localmente e anote a URL em que ele espera receber webhooks. Este guia pressupõe que o aplicativo está ouvindo eventos de webhook em http://localhost:3000/webhook.

  4. Para configurar os webhooks para serem entregues ao aplicativo, execute o subcomando webhook forward. Substitua REPOSITORY pelo nome do repositório. Por exemplo, monalisa/octocat. Substitua EVENTS por uma lista separada por vírgulas dos eventos que você deseja receber. Por exemplo, issues,pull_request. Substitua URL pela URL local em que o aplicativo espera receber webhooks. Por exemplo, "http://localhost:3000/webhook". Para escutar webhooks de organização em vez de webhooks de repositório, substitua o sinalizador --repo pelo sinalizador --org. Por exemplo, --org="octo-org".

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

Deixe o comando em execução em segundo plano. Ele receberá todos os eventos especificados para o repositório indicado e os encaminhará para o manipulador de webhook em execução na URL especificada.

Observação: somente uma pessoa pode usar o encaminhamento de webhook por vez para cada repositório e organização. Ao tentar configurar o encaminhamento de webhook, se outra pessoa já estiver trabalhando com essa organização ou repositório, você receberá um erro Hook already exists.