Exercício – configurar um webhook para um repositório do GitHub
Neste exercício, você vai configurar um webhook para um repositório do GitHub. Você aprenderá a escutar eventos específicos (neste caso, eventos do Gollum) e a fazer seu webhook retornar a chamada para sua função quando o evento for disparado.
Configuração
Usando seu navegador da Web, entre em sua conta do GitHub.
Crie um repositório selecionando Novo no painel de menu à esquerda. A página Criar um repositório é exibida.
Na caixa Nome do repositório, insira um nome significativo, como LearnWebhookTest.
Selecione Público para ativar o módulo wiki e localize-o no menu.
Selecione Criar repositório. A página Configuração rápida será exibida.
Selecione o link Criar um arquivo.
Na barra de menus superior, selecione Wiki para exibir as páginas do seu repositório. Uma página de Boas-vindas é exibida.
Clique em Criar a primeira página. O modelo Criar página é exibido.
Adicione algum texto e selecione Salvar Página. A primeira página de uma Wiki é a home page.
Adicionar um webhook para o evento Gollum
Gollum é o nome de um evento do GitHub acionado sempre que uma página em um wiki do repositório é criada ou atualizada.
Na home page da exibição da Wiki, há uma barra lateral Páginas que lista as páginas do repositório. Selecione Página inicial para exibir a home page.
Na página inicial, na barra de menus superior, selecione Configurações. O painel Configurações é exibido.
Na barra lateral Configurações, selecione Webhooks. O painel Webhooks é exibido.
No canto superior direito, selecione Adicionar webhook. O GitHub poderá solicitar a confirmação da sua senha do GitHub.
No painel Webhooks/Adicionar webhook, insira os valores a seguir para cada configuração.
Configuração Valor URL do conteúdo URL do aplicativo de funções do Azure do exercício anterior. Para obter ajuda, confira a observação a seguir. Tipo de conteúdo Selecione aplicativo/json na lista suspensa. Quais eventos você deseja disparar neste webhook? Selecione Permitir que eu selecione eventos individuais. Na lista de eventos exibida, role para baixo e marque a caixa de seleção Wiki. Verifique se nenhuma outra caixa de seleção está marcada. Ativo Marcada. Dica
Copie a URL da função do painel HttpTrigger do Azure selecionando Obter URL da função na barra de comandos. A URL será parecida com:
https://<your-functionapp-name>.azurewebsites.net/api/HttpTrigger1?code=aUjXIpqdJ0ZHPQuB0SzFegxGJu0nAXmsQBnmkCpJ6RYxleRaoxJ8cQ==
Selecione Adicionar webhook. O painel Webhooks é exibido.
Verifique se o novo webhook é exibido. Ele deverá ter (gollum) no final do nome.
Testar o webhook
No GitHub, na barra de menus superior, selecione Wiki. A Página inicial criada anteriormente aparece.
Selecione Editar. O painel Editar Página Inicial é exibido.
Na área de texto do painel, digite o seguinte texto:
Testing Webhook
Selecione Salvar Página. O painel Página Inicial é exibido.
Na barra de menus superior, selecione Configurações. O painel Configurações é exibido.
Na barra lateral, escolha Webhooks. O painel Webhooks é exibido.
Selecione Editar. O painel Webhooks/Gerenciar webhook é exibido.
Selecione a guia Entregas Recentes (talvez seja necessário rolar para a parte inferior da página).
Na lista, selecione a primeira entrada de entrega (mais recente) selecionando as reticências (…).
Você verá a seção Cabeçalhos, incluindo o Evento:
Request URL: https://testwh123456.azurewebsites.net/api/HttpTrigger1?code=aUjXIpqdJ0ZHPQuB0SzFegxGJu0nAXmsQBnmkCpJ6RYxleRaoxJ8cQ%3D%3D Request method: POST Accept: */* content-type: application/json User-Agent: GitHub-Hookshot/16496cb X-GitHub-Delivery: 9ed46280-6ab3-11e9-8a19-f1a14922a239 X-GitHub-Event: gollum X-GitHub-Hook-ID: 312141005 X-GitHub-Hook-Installation-Target-ID: 394459163 X-GitHub-Hook-Installation-Target-Type: repository
Você também verá que a seção Conteúdo tem informações indicando que sua página do wiki foi editada. O conteúdo contém as seções páginas, repositório e remetente, que devem ser semelhantes ao seguinte exemplo:
"pages": [ { "page_name": "Home", "title": "Home", "summary": null, "action": "edited", "sha": "04d012c5f92a95ae3f7721173bf9f2b1b35ea22f", "html_url": "https://github.com/.../wiki/Home" } ], "repository" : { "id": 176302421, "node_id": "MDEwOlJlcG9zaXRvcnkxNzYzMDI0MjE=", "name": "tieredstorage", ... }, "sender" : { ... }
Na guia Entregas Recentes, selecione a guia Resposta.
Você verá a mensagem de resposta gerada pela função do Azure. Neste exemplo, o corpo deve conter a mensagem. Essa função de gatilho por HTTP foi executada com êxito. Transmita um nome na cadeia de consulta ou no corpo da solicitação para ter uma resposta personalizada.