Exercício – configurar um webhook para um repositório do GitHub
Neste exercício, irá configurar um webhook para um repositório do GitHub. Você aprenderá como ouvir eventos específicos (neste caso, o evento Gollum ) e como fazer o retorno de chamada do webhook em sua função quando o evento for acionado.
Configurar
Inicie sessão na sua conta do GitHub no seu browser.
Crie um novo repositório selecionando Novo no painel de menu esquerdo. A página Criar um novo repositório é exibida.
Na caixa Nome do repositório , insira um nome significativo, como LearnWebhookTest.
Selecione Público para ativar seu módulo wiki e encontre-o no menu.
Selecione Create repository (Criar repositório). A página Configuração rápida é exibida.
Selecione o link criando um novo arquivo .
Na barra de menu superior, selecione Wiki para exibir as páginas em seu repositório (ou repo). É apresentada uma página de boas-vindas .
Selecione Create the first page (Criar a primeira página). O modelo Criar nova página é exibido.
Adicione algum texto e selecione Salvar página. A primeira página de um Wiki é a página inicial.
Adicionar um webhook para o evento Gollum
Gollum é o nome de um evento GitHub que é acionado sempre que uma página no wiki de um repositório é criada ou atualizada.
Na página inicial na visualização Wiki há uma barra lateral Páginas que lista as páginas em seu repositório. Selecione Início para exibir a página inicial.
Na página inicial, na barra de menu 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 pode pedir que você confirme sua senha para o GitHub.
No painel Webhooks/ Add webhook, insira os seguintes valores para cada configuração.
Definição Value URL do payload URL para seu aplicativo de função do Azure do exercício anterior. Para obter ajuda, consulte a seguinte nota. Tipo do conteúdo Na lista suspensa, selecione application/json. Que eventos gostaria de desencadear este webhook? Selecione Permitir que eu selecione eventos individuais. Na lista de eventos exibida, role para baixo e marque a caixa de seleção Wiki . Certifique-se de que nenhuma outra caixa de seleção esteja marcada. Ativos Selecionado. Gorjeta
Copie a URL da função do painel HttpTrigger do Azure selecionando Obter URL da função na barra de comandos. O seu URL é semelhante a:
https://<your-functionapp-name>.azurewebsites.net/api/HttpTrigger1?code=aUjXIpqdJ0ZHPQuB0SzFegxGJu0nAXmsQBnmkCpJ6RYxleRaoxJ8cQ==
Selecione Adicionar webhook. O painel Webhooks é exibido.
Verifique se o novo webhook aparece. Deve ter (gollum) no final do seu nome.
Testar o webhook
No GitHub, na barra de menu superior, selecione Wiki. A página inicial que você criou anteriormente é exibida.
Selecione Editar. O painel Página Inicial de Edição é exibido.
Na área de texto do painel, insira o seguinte texto:
Testing Webhook
Selecione Salvar página. A página inicial reaparece.
Na barra de menu superior, selecione Configurações. O painel Configurações é exibido.
Na barra lateral, selecione Webhooks. O painel Webhooks é exibido.
Selecione Editar. O painel Webhooks/Manage webhook é exibido.
Selecione a guia Entregas recentes (talvez seja necessário rolar até a parte inferior da página).
Na lista, selecione a entrada de entrega superior (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 Carga útil contém informações indicando que sua página wiki foi editada. A carga útil contém páginas, repositório e seções de remetente , que devem se parecer com o exemplo a seguir:
"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.
Verá a mensagem de resposta gerada pela função do Azure. Para este exemplo, o corpo deve incluir a mensagem: Esta função acionada por HTTP foi executada com êxito. Passar um nome na cadeia de caracteres de consulta ou no corpo da solicitação para obter uma resposta personalizada.