Webhooks

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

I webhook consentono di inviare una rappresentazione JSON di un evento a qualsiasi servizio. Tutto ciò che è necessario è un endpoint pubblico (HTTP o HTTPS).

Per altre informazioni sui payload JSON pubblicati da questo consumer, vedere gli eventi.

Prerequisiti

Solo i proprietari dell'organizzazione o la raccolta di progetti Amministrazione istrator possono gestire i webhook per un'organizzazione.

Inviare una rappresentazione JSON a un servizio

  1. Passare alla pagina hook del servizio di progetto:

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

    Screenshot della versione più recente della pagina Amministrazione progetto

    Selezionare Crea sottoscrizione.

  2. Selezionare e configurare l'evento azure DevOps Services:

    Configurare la finestra di dialogo evento

  3. Configurare le operazioni da eseguire quando si verifica l'evento:

    Per informazioni su Dettagli risorsa da inviare, messaggi da inviare e messaggi dettagliati per l'invio di impostazioni, vedere le domande e risposte seguenti.

    Configurare la finestra di dialogo azione

  4. Testare la sottoscrizione dell'hook del servizio e completare la procedura guidata:

    Eseguirne il test

Il webhook è ora configurato. Passare al servizio di destinazione per visualizzare la rappresentazione JSON:

Visualizzare la rappresentazione JSON

Prezzi

Azure DevOps non addebita alcun costo per il framework per l'integrazione con i servizi esterni. Per informazioni sui prezzi relativi ai servizi, vedere il sito del servizio specifico.

Domande e risposte

D: Quali sono i dettagli della risorsa per l'invio, i messaggi da inviare e i messaggi dettagliati per cui inviare le impostazioni?

R: controllano le dimensioni del payload JSON inviato.

L'impostazione Dettagli risorsa da inviare controlla la quantità di risorsa inviata. Il valore predefinito è Tutto, ma è anche possibile scegliere di inviare minimo (invia solo campi chiave come URL e ID) o Nessuno.

Nessuno e Minimo sono utili negli scenari in cui il chiamante non ha effettivamente bisogno di molto, se nulla, sulla risorsa perché si basa sul messaggio o sul messaggio dettagliato. None e Minimal sono utili anche per motivi di sicurezza, ad esempio, il chiamante deve richiamare azure DevOps Services e passare attraverso normali controlli di sicurezza/autorizzazioni per ottenere altri dettagli sulla risorsa.

JSON di esempio:

	{
	    "eventType": "git.push",
	    ...
	    "messages": {
	        "text": "...",
	        "html": "...",
	        "markdown": "..."
	    },
	    "detailedMessage": {
	        "text": "...",
	        "html": "...",
	        "markdown": "..."
	    },
	    "resource": {
	        "id": "...",
	        "url": "https://...",
	        "name": "...",
	        "field1:": "..."
	    }
	}	

D: È possibile creare sottoscrizioni a livello di codice?

R: Sì, vedere i dettagli qui.

D: È possibile inviare webhook a endpoint non HTTPS?

R: Sì. È tuttavia consigliabile usare solo endpoint HTTPS per i webhook. L'uso di HTTP significa che esiste un potenziale per l'invio di dati privati non crittografati. Sono incluse tutte le intestazioni di autenticazione nel webhook.

D: È possibile usare l'autenticazione di base quando si configura un webhook che non è HTTPS?

R: No. È necessario usare HTTPS quando si usa l'autenticazione di base in un webhook.

D: È possibile usare localhost o indirizzi IP di intervallo speciali come destinazioni di webhook?

R: No. I webhook non possono essere destinati a localhost (loopback) o a indirizzi IPv6/ di intervallo speciale.