Webhooks

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

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 pelo consumidor, confira eventos.

Pré-requisitos

Somente os Proprietários da organização ou os Administradores da Coleção de Projetos podem gerenciar webhooks para uma organização.

Enviar representação JSON para um serviço

  1. Vá para a página Ganchos de serviço do projeto:

    https://{orgName}/{project_name}/_settings/serviceHooks

    Captura de tela da versão mais recente da página Administração do projeto

    Selecione Criar assinatura.

  2. Selecione e configure o evento Serviços de DevOps do Azure:

    Configurar a caixa de diálogo do evento

  3. Configure o que fazer quando o evento ocorrer:

    Consulte o seguinte Q & A para obter informações sobre as configurações Detalhes do recurso a serem enviados, Mensagens a serem enviadas e Mensagens detalhadas para enviar .

    Configurar a caixa de diálogo de ação

  4. Teste a assinatura do gancho de serviço e conclua o assistente:

    Testá-lo

Agora o webhook está configurado. Vá para o serviço de destino para exibir a representação JSON:

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.

Perguntas e Respostas

P: Quais são os detalhes do recurso a serem enviados, as mensagens a serem enviadas e as mensagens detalhadas para as quais enviar configurações?

R: Eles controlam o tamanho da carga JSON que é enviada.

A configuração Detalhes do recurso a ser enviado controla quanto do recurso é enviado. O padrão é Tudo, 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 mensagem detalhada. Nenhum e Mínimo também são úteis por motivos de segurança, por exemplo, o chamador precisa chamar novamente os Serviços de DevOps do Azure 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?

R: Sim, veja 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. O uso de HTTP significa que há um potencial para dados privados serem enviados sem criptografia. Isso inclui todos os cabeçalhos de autenticação em seu 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 localhost ou de intervalo especial como alvos de webhook?

R: Não. Os Webhooks não podem ter como destino endereços IPv6 IPv6/ de host local (loopback) ou de intervalo especial.