Webhooks
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019 | TFS 2018
Os webhooks fornecem uma maneira de enviar uma representação JSON de um evento para qualquer serviço. Tudo o que é necessário é um ponto de extremidade público (HTTP ou HTTPS).
Para obter mais informações sobre os conteúdos JSON postados por esse consumidor, consulte eventos.
Pré-requisitos
Somente proprietários da organização ou administradores de coleção de projetos podem gerenciar webhooks para uma organização.
Enviar representação JSON para um serviço
Vá para a página de ganchos de serviço do projeto:
https://{orgName}/{project_name}/_settings/serviceHooks
Selecione Criar assinatura.
Selecione e configure o evento Azure DevOps Services:
Configure o que fazer quando o evento ocorrer:
Consulte o Q & A a seguir para obter informações sobre os detalhes do recurso a serem enviados, mensagens a serem enviadas e mensagens detalhadas para enviar configurações.
Teste a assinatura do gancho de serviço e conclua o assistente:
Vá para a página ganchos de serviço do projeto:
https://dev.azure.com/{orgName}/{project_name}/_apps/hub/ms.vss-servicehooks-web.manageServiceHooks-project
Escolha Criar assinatura.
Selecione e configure o evento Azure DevOps Services:
Configure o que fazer quando o evento ocorrer:
Consulte o Q & A a seguir para obter informações sobre os detalhes do recurso a serem enviados, mensagens a serem enviadas e mensagens detalhadas para enviar configurações.
Teste a assinatura do gancho de serviço e conclua o assistente:
Agora o webhook está configurado. Vá para o serviço de destino para exibir a representação JSON:
Preços
O Azure DevOps não cobra pela estrutura de integração com serviços externos. Confira o site do serviço específico para obter preços relacionados aos seus serviços.
P & R
P: Quais são os detalhes do recurso a serem enviados, as mensagens a serem enviadas e as mensagens detalhadas para as quais enviar as configurações?
R: Eles controlam o tamanho da carga JSON que é enviada.
Os detalhes do recurso para enviar a configuração controlam quanto do recurso é enviado. O padrão é All, mas você também pode optar por enviar Mínimo (envia apenas campos de chave como URL e ID) ou Nenhum.
Nenhum e Mínimo são úteis em cenários em que o chamador realmente não precisa de muito, se alguma coisa, sobre o recurso porque ele está confiando na mensagem ou na mensagem detalhada. Nenhum e Mínimo também são úteis por motivos de segurança, por exemplo, o chamador precisa ligar de volta para Azure DevOps Services e passar por verificações normais de segurança/permissão para obter mais detalhes sobre o recurso.
JSON de exemplo:
{
"eventType": "git.push",
...
"messages": {
"text": "...",
"html": "...",
"markdown": "..."
},
"detailedMessage": {
"text": "...",
"html": "...",
"markdown": "..."
},
"resource": {
"id": "...",
"url": "https://...",
"name": "...",
"field1:": "..."
}
}
P: Posso criar assinaturas programaticamente?
Um: Sim, veja os detalhes aqui.
P: Posso enviar webhooks para pontos de extremidade não HTTPS?
R: Sim. No entanto, é recomendável que você use apenas pontos de extremidade HTTPS para seus webhooks. Usar HTTP significa que há um potencial para que os dados privados sejam enviados sem criptografia. Isso inclui todos os cabeçalhos de autenticação no webhook.
P: Posso usar a autenticação básica ao configurar um webhook que não seja HTTPS?
R: Não. Você deve usar HTTPS ao utilizar a autenticação básica em um webhook.
P: Podemos usar IPs de localhost ou de intervalo especial como destinos de webhook?
R: Não. Os webhooks não podem ter como destino localhost (loopback) ou endereços IPv4/IPv6 de intervalo especial.