Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

Esta versão do GitHub Enterprise será descontinuada em Esta versão do GitHub Enterprise foi descontinuada em 2020-08-20. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, melhorar a segurança e novos recursos, upgrade to the latest version of GitHub Enterprise. Para ajuda com a atualização, contact GitHub Enterprise support.

Versão do artigo: Enterprise Server 2.18

Configurar seu servidor para receber cargas

Aprenda a configurar um servidor para gerenciar as cargas de webhook recebidas.

Neste artigo

Agora que nosso webhook está pronto para enviar mensagens, vamos configurar um servidor do Sinatra básico para gerenciar as cargas recebidas.

Lembre-se de que definimos especificamente nossa URL de webhook como http://localhost:4567/payload. Uma vez que estamos desenvolvendo localmente, precisamos expor nosso ambiente de desenvolvimento local à internet, para que o GitHub possa enviar mensagens e nosso servidor local possa processá-las.

Observação: você pode baixar o código-fonte completo para este projeto no repositório de amostra de plataforma.

Usando o ngrok

Primeiro, vamos instalar um programa para expor nosso host local à internet. Nós usaremos o ngrok para fazer isso. ngrok é um download grátis, disponível para todos os principais sistemas operacionais.

Após concluir essa etapa, você poderá expor seu host local, executando ./ngrok http 4567 na linha de comando. Você deve ver uma linha parecida mais ou menos com isso:

$ Forwarding    http://7e9ea9dc.ngrok.io -> 127.0.0.1:4567

Copie essa URL *.ngrok.io estranha! Estamos agora retornando para a URL da carga e colando este servidor nesse campo. Deve parecer como http://7e9ea9dc.ngrok.io/payload.

Ao fazer isso, nós nos preparamos para expor nosso host local no caminho /payload para a internet.

Escrevendo o servidor

Agora vem a parte divertida! Queremos que nosso servidor escute as solicitações de POST, em /payload, porque foi onde informamos ao GitHub que era a nossa URL. Já que o ngrok está expondo o nosso ambiente local. não precisamos configurar um servidor real on-line e podemos testar felizmente o nosso código localmente.

Vamos configurar um pouco o aplicativo Sinatra para fazer algo com as informações. Nossa configuração inicial do a configuração pode parecer como isso:

require 'sinatra'
require 'json'

post '/payload' do
  push = JSON.parse(request.body.read)
  puts "I got some JSON: #{push.inspect}"
end

(Se você não estiver familiarizado com a forma como Sinatra funciona, recomendamos a leitura do guia do Sinatra.)

Inicie este servidor.

Desde que configuramos nosso webhook para ouvir eventos que gerenciam Problemas, siga em frente e crie uma novo problema no repositório que você está testando. Depois de criar, volte para o terminal. Você deve ver algo assim em sua saída:

$ ~/Developer/platform-samples/hooks/ruby/configuring-your-server $ ruby server.rb
> == Sinatra/1.4.4 has taken the stage on 4567 for development with backup from Thin
> >> Thin web server (v1.5.1 codename Straight Razor)
> >> Maximum connections set to 1024
> >> Listening on localhost:4567, CTRL+C to stop
> I got some JSON: {"action"=>"opened", "issue"=>{"url"=>"...

Sucesso! Você configurou seu servidor com sucesso para ouvir webhooks. Seu servidor agora pode processar essas informações da forma que você achar melhor. Por exemplo, se você estiver configurando um aplicativo web "real", é possível que você queira registrar uma parte da saída do JSON em uma base de dados.

Para obter informações adicionais sobre como trabalhar com webhooks e divertir-se e lucrar, acesse o guia Testando webhooks.

Pergunte a uma pessoa

Não consegue encontrar o que procura?

Entrar em contato