Share via


Webhooks

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

Webhook 提供方式來將事件的 JSON 表示法傳送至任何服務。 只需要公用端點 (HTTP 或 HTTPS)。

如需此取用者所張貼 JSON 承載的詳細資訊,請參閱事件

必要條件

只有組織擁有者或專案集合 管理員 istrators 可以管理組織的 Webhook。

將 JSON 表示傳送至服務

  1. 移至您的項目 [服務攔截] 頁面:

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

    [專案管理] 頁面最新版本的螢幕快照

    選取 [建立訂閱]。

  2. 選取並設定 Azure DevOps Services 事件:

    設定事件對話框

  3. 設定事件發生時要執行的動作:

    如需要傳送的資源詳細數據、要傳送訊息,以及傳送設定的詳細訊息,請參閱下列問答集。

    設定動作對話框

  4. 測試服務勾點訂用帳戶並完成精靈:

    進行測試

現在已設定 Webhook。 移至目標服務以檢視 JSON 表示法:

檢視 JSON 表示法

定價

Azure DevOps 不會收取與外部服務整合的架構費用。 請查看特定服務的月臺,以取得與其服務相關的定價。

問與答

問:要傳送的資源詳細數據、要傳送的訊息,以及傳送設定的詳細訊息為何?

答:它們可控制傳送的 JSON 承載大小。

傳送 的資源詳細數據設定會控制要傳送多少資源。 默認值為 [全部],但您也可以選擇傳送 [最小] (只傳送 URL 和標識符等密鑰字段),或 [無]。

呼叫端實際上不需要太多資源,如果有的話,因為資源依賴訊息或詳細訊息,所以 None 和 Minimal 非常有用。 NoneMinimal 也適用於安全性考慮,例如,呼叫端需要回呼 Azure DevOps Services,並經歷一般安全性/許可權檢查,以取得資源的詳細數據。

範例 JSON:

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

問:我是否可以以程序設計方式建立訂用帳戶?

答:是,請參閱這裡的詳細數據

問:我可以將 Webhook 傳送至非 HTTPS 端點嗎?

A: 可以。 不過,建議您只針對 Webhook 使用 HTTPS 端點。 使用 HTTP 表示可能會傳送未加密的私人數據。 這包括 Webhook 中的任何驗證標頭。

問:設定不是 HTTPS 的 Webhook 時,是否可以使用基本身份驗證?

A: 不可以。 在 Webhook 上使用基本身份驗證時,您必須使用 HTTPS。

問:我們是否可以使用localhost或特殊範圍IP作為Webhook目標?

A: 不可以。 Webhook 無法以localhost (回送) 或特殊範圍 IPv4/IPv6 位址為目標。