Exercício – configurar um webhook para um repositório do GitHub

Concluído

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.

Configuração

  1. Inicie sessão na sua conta do GitHub no seu browser.

  2. Crie um novo repositório selecionando Novo no painel de menu esquerdo. A página Criar um novo repositório é exibida.

  3. Na caixa Nome do repositório , insira um nome significativo, como LearnWebhookTest.

  4. Selecione Público para ativar seu módulo wiki e encontre-o no menu.

  5. Selecione Create repository (Criar repositório). A página Configuração rápida é exibida.

  6. Selecione o link de criação de um novo arquivo .

  7. 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 .

  8. Selecione Create the first page (Criar a primeira página). O modelo Criar nova página é exibido.

  9. 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.

  1. 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.

  2. Na página inicial, na barra de menu superior, selecione Configurações. O painel Configurações é exibido.

  3. Na barra lateral Configurações, selecione Webhooks. O painel Webhooks é exibido.

  4. No canto superior direito, selecione Adicionar webhook. O GitHub pode pedir que você confirme sua senha para o GitHub.

  5. No painel Webhooks/ Add webhook, insira os seguintes valores para cada configuração.

    Definição Valor
    URL do payload URL para seu aplicativo de função do Azure do exercício anterior. Para obter ajuda, consulte a seguinte nota.
    Tipo de 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.
    Ativo 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==

  6. Selecione Adicionar webhook. O painel Webhooks é exibido.

  7. Verifique se o novo webhook aparece. Deve ter (gollum) no final do seu nome.

Testar o webhook

  1. No GitHub, na barra de menu superior, selecione Wiki. A página inicial que você criou anteriormente é exibida.

  2. Selecione Editar. O painel Página Inicial de Edição é exibido.

  3. Na área de texto do painel, insira o seguinte texto:

    Testing Webhook
    
  4. Selecione Salvar página. A página inicial reaparece.

  5. Na barra de menu superior, selecione Configurações. O painel Configurações é exibido.

  6. Na barra lateral, selecione Webhooks. O painel Webhooks é exibido.

  7. Selecione Editar. O painel Webhooks/Manage webhook é exibido.

  8. Selecione a guia Entregas recentes (talvez seja necessário rolar até a parte inferior da página).

  9. 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" : {
            ...
        }
    
  10. 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.