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

Concluído

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

  1. Usando seu navegador da Web, entre em sua conta do GitHub.

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

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

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

  5. Selecione Criar repositório. A página Configuração rápida será exibida.

  6. Selecione o link Criar um arquivo.

  7. Na barra de menus superior, selecione Wiki para exibir as páginas do seu repositório. Uma página de Boas-vindas é exibida.

  8. Clique em Criar a primeira página. O modelo Criar página é exibido.

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

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

  2. Na página inicial, na barra de menus 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 poderá solicitar a confirmação da sua senha do GitHub.

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

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

  7. Verifique se o novo webhook é exibido. Ele deverá ter (gollum) no final do nome.

Testar o webhook

  1. No GitHub, na barra de menus superior, selecione Wiki. A Página inicial criada anteriormente aparece.

  2. Selecione Editar. O painel Editar Página Inicial é exibido.

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

    Testing Webhook
    
  4. Selecione Salvar Página. O painel Página Inicial é exibido.

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

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

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

  8. Selecione a guia Entregas Recentes (talvez seja necessário rolar para a parte inferior da página).

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