Skip to main content

Esta versão do GitHub Enterprise será descontinuada em 2022-06-03. 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.

We've recently moved some of the REST API documentation. If you can't find what you're looking for, you might try the new Branches, Collaborators, Commits, Deploy Keys, Deployments, GitHub Pages, Releases, Metrics, Webhooks REST API pages.

Webhooks

A API de webhooks permite que você crie e gerencie webhooks para seus repositórios.

Os webhooks de repositório permitem que você receba cargas de POST de HTTP sempre que certos eventos ocorrerem em um repositório. The webhook REST APIs enable you to manage repository, organization, and app webhooks. You can also use the REST API to change the configuration of the webhook. Por exemplo, você pode modificar a URL da carga, tipo de conteúdo, verificação de SSL e segredo. Para obter mais informações, consulte:

Se você deseja configurar um único webhook para receber eventos de todos os repositórios da organização, consulte nossa documentação de API para Webhooks de organização.

Além da API REST, GitHub também pode servir como um núcleo de PubSubHubbub para repositórios.

Receber Webhooks

Para que GitHub Enterprise Server envie cargas de webhook, seu servidor deve ser acessível pela internet. É altamente recomendável o uso de SSL para que possamos enviar cargas criptografadas por HTTPS.

Cabeçalhos de webhook

GitHub Enterprise Server enviará ao longo de vários cabeçalhos de HTTP para diferenciar entre tipos de evento e identificadores de carga. Consulte cabeçalhos de webhook para obter informações.

PubSubHubbub

O GitHub também pode servir como um centro de PubSubHubbub para todos os repositórios. O PSHB é um simples protocolo de publicação/assinatura que permite o registro de servidores para receber atualizações quando um tópico é atualizado. As atualizações são enviadas com uma solicitação HTTP do tipo POST para uma URL de chamada de retorno. As URLs dos tópicos dos pushes de um repositório do GitHub estão neste formato:

https://github.com/{owner}/{repo}/events/{event}

O evento pode ser qualquer evento de webhook disponível. Para obter mais informações, consulte "Eventos e cargas de Webhook".

Formato de resposta

O formato padrão é o que os hooks post-receive existentes devem esperar: Um texto JSON enviado como parâmetro payload em um POST. Você também pode especificar para receber o texto do JSON sem processar com um cabeçalho Aceitar ou uma extensão .json.

Accept: application/json
https://github.com/{owner}/{repo}/events/push.json

URLs de chamada de retorno

As URLs de chamada de retorno podem usar o protocolo http://.

# Send updates to postbin.org
http://postbin.org/123

Assinar

O ponto de extremidade do GitHub PubSubHubbub é: http(s)://[hostname]/api/v3/hub. Uma solicitação bem-sucedida com o curl parece como:

curl -u "user" -i \
  http(s)://[hostname]/api/v3/hub \
  -F "hub.mode=subscribe" \
  -F "hub.topic=https://github.com/{owner}/{repo}/events/push" \
  -F "hub.callback=http://postbin.org/123"

Solicitações do PubSubHubbub podem ser enviadas várias vezes. Se o hook já existe, ele será modificado de acordo com a solicitação.

Parâmetros

NomeTipoDescrição
hub.modestringObrigatório. Assine ou cancele a assinatura.
hub.topicstringObrigatório. A URI do repositório do GitHub a ser assinada. O caminho deve estar no formato /{owner}/{repo}/events/{event}.
hub.callbackstringA URI para receber as atualizações do tópico.
hub.secretstringUma chave de segredo compartilhado que gera uma assinatura de hash do conteúdo de saída do texto. Você pode verificar se um push veio do GitHub comparando o texto da solicitação sem processar com o conteúdo dos cabeçalho do X-Hub-Signature ou X-Hub-Signature-256 . Você pode ver a documentação do PubSubHubbub para obter mais informações.