ウェブフックs

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

Webhook によって、イベントの JSON 表現を任意のサービスに送信する方法が提供されます。 必要なのは、パブリック エンドポイント (HTTP または HTTPS) のみです。

このコンシューマーによって post される JSON ペイロードの詳細については、「イベント」を参照してください。

前提条件

組織の Webhook を管理できるのは、組織の所有者またはプロジェクト コレクション管理管理者だけです。

JSON 表現をサービスに送信する

  1. プロジェクト の [サービス フック] ページに 移動します。

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

    [プロジェクト管理] ページの最新バージョンのスクリーンショット

    [サブスクリプションの作成] を選択します。

  2. Azure DevOps Services イベントを選択して構成します。

    [イベントの構成] ダイアログ ボックス

  3. イベントが発生したときに実行する処理を構成します。

    送信するリソースの詳細、送信するメッセージ、送信する詳細メッセージの設定についてはの Q & A参照してください。

    [アクションの構成] ダイアログ ボックス

  4. サービス フック サブスクリプションをテストし、ウィザードを完了します。

    テストする

これで Webhook が設定されました。 ターゲット サービスに移動して、JSON 表現を表示します。

JSON 表現を表示する

価格

Azure DevOps は、外部サービスとの統合に関してフレームワークに対して課金されません。 サービスに関連する価格については、特定のサービスのサイトを参照してください。

Q & A

Q: 送信するリソースの詳細、送信するメッセージ、設定を送信する詳細メッセージは何ですか?

A: 送信される JSON ペイロードのサイズを制御します。

送信するリソースの詳細設定は、送信されるリソースの量を制御します。 既定値は [すべて] ですが、[最小] (URL や ID などのキー フィールドのみを送信する) または [なし] を選択することもできます。

NoneMinimal は、メッセージまたは詳細メッセージに依存しているため、呼び出し元がリソースに関して実際に多くを必要としない場合に役立ちます。 NoneMinimal は、セキュリティ上の理由から役立ちます。たとえば、呼び出し元は Azure DevOps Services にコールバックし、通常のセキュリティ/アクセス許可チェックを経由してリソースの詳細を取得する必要があります。

サンプル JSON:

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

Q: プログラムでサブスクリプションを作成できますか?

A: はい、詳細についてはこちらをご覧 ください

Q: Webhook を HTTPS 以外のエンドポイントに送信できますか?

回答: はい。 ただし、Webhook には HTTPS エンドポイントのみを使用することをお勧めします。 HTTP を使用すると、プライベート データが暗号化されずに送信される可能性があることを意味します。 これには、Webhook 内のすべての認証ヘッダーが含まれます。

Q: HTTPS ではない Webhook を設定するときに基本認証を使用できますか。

A: いいえ。 Webhook で基本認証を使用する場合は、HTTPS を使用する必要があります。

Q: webhook ターゲットとして localhost または特殊な範囲 IP を使用できますか。

A: いいえ。 Webhook では、localhost (ループバック) または特殊な範囲の IPv4/IPv6 アドレスをターゲットにすることはできません。