サービス フックと統合する

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

サービス フックを使用すると、Azure DevOps のプロジェクトでイベントが発生した場合に、他のサービスでタスクを実行できます。

たとえば、作業項目が作成されたときに Trello のカードを作成することも、ビルドが失敗したときにチームのモバイル デバイスにプッシュ通知を送信することもできます。 プロジェクトでイベントが発生した際にアクティビティを促すためのより効率的な方法として、カスタムのアプリやサービスでサービス フックを使用することもできます。

サービス フックのしくみ

サービス フックのパブリッシャーは、サブスクライブが可能な一連のイベントを定義します。 サブスクリプションはこれらのイベントをリッスンし、イベントに基づいて実行するアクションを定義します。

コンシューマーもサブスクリプションのターゲットになります。コンシューマーは、イベントが発生したときに独自のアクションを実行できる外部サービスです。

サービス フックの図。

Note

サービス フックを使用するには、サービス エンドポイントへの受信接続用の IP 範囲を許可する必要があります。 サービス エンドポイントは、サービス フックに提供されるプロパティのセットです。 詳細については、許可されるアドレス リストとネットワーク接続、IP アドレスと範囲の制限に関する記述を参照してください。

利用可能なサービス

サービス フックのターゲットとして利用できるサービスは、以下のとおりです。 Azure DevOps と統合できるその他のアプリとサービスの詳細については、Visual Studio Marketplace を参照してください。

サービス サポートされているイベント サポートされているアクション
App Center 作業項目の更新 通知を送信します。 サブスクリプションは App Center を通じて管理されます。
AppVeyor プッシュされたコード AppVeyor ビルドをトリガーします。 サブスクリプションは AppVeyor を通じて管理されます。
Azuqua すべて イベントを FLO にポストします。 サブスクリプションは Azuqua を通じて管理されます。
Azure App Service プッシュされたコード Web アプリをデプロイします。 サブスクリプションは Azure App Service を通じて管理されます。
Azure Service Bus すべて Notification Hubs、Service Bus キュー、または Service Bus トピックにメッセージを送信します。 サブスクリプションは Azure App Service を通じて管理されます。
Azure ストレージ すべて ストレージ キューにメッセージを挿入します。
Bamboo ビルドの完了、コードのプッシュ ビルドをキューに配置します。
Datadog すべて イベントを Datadog にポストします。
Grafana リリース配置が完了しました Grafana データベースに注釈を追加します。
Jenkins ビルドの完了、コードのプッシュ、PR マージの試行、リリースのデプロイ完了 汎用ビルドまたは Git ビルドをトリガーします。
Microsoft Teams すべて チャネルにメッセージをポストします。 サブスクリプションは Microsoft Teams で管理されます。
MyGet ビルドの完了、コードのプッシュ NuGet パッケージを MyGet に発行します。 MyGet ビルドをトリガーします。 サブスクリプションは MyGet で管理されます。
Office 365 すべて グループにメッセージをポストします。
Slack すべて チャネルにメッセージをポストします。
Trello すべて カードまたはリストを作成します。
UserVoice 作業項目の作成、作業項目の更新 リンクされた作業項目イベントを送信します。 サブスクリプションは UserVoice を通じて管理されます。
Web フック すべて HTTP 経由でポストします。
Workplace Message Apps すべて 通知を送信します。 サブスクリプションは Workplace Message Apps で管理されます。
Zapier すべて 通知を送信します。 サブスクリプションは Zapier を通じて管理されます。
Zendesk 作業項目へのコメント チケットとしてプライベート コメントを作成します。
サービス サポートされているイベント サポートされているアクション
Azure Service Bus すべて Notification Hubs、Service Bus キュー、または Service Bus トピックにメッセージを送信します。 サブスクリプションは Azure App Service を通じて管理されます。
Azure ストレージ すべて ストレージ キューにメッセージを挿入します。
Bamboo ビルドの完了、コードのプッシュ ビルドをキューに配置します。
Datadog すべて イベントを Datadog にポストします。
Grafana リリース配置が完了しました Grafana データベースに注釈を追加します。
Jenkins ビルドの完了、コードのプッシュ、PR マージの試行、リリースのデプロイ完了 汎用ビルドまたは Git ビルドをトリガーします。
Microsoft Teams すべて チャネルにメッセージをポストします。 サブスクリプションは Microsoft Teams で管理されます。
Office 365 すべて グループにメッセージをポストします。
Slack すべて チャネルにメッセージをポストします。
Trello すべて カードまたはリストを作成します。
[UserVoice]((https://www.uservoice.com) 作業項目の作成、作業項目の更新 リンクされた作業項目イベントを送信します。 サブスクリプションは UserVoice を通じて管理されます。
Web フック すべて HTTP 経由でポストします。
Zendesk 作業項目へのコメント チケットとしてプライベート コメントを作成します。

サブスクリプションの作成

これらのサービスのいずれかを Azure DevOps と統合する場合は、新しいサブスクリプションを作成する必要があります。 多くの場合、他方のサービスでも何らかの構成を行う必要があります。 具体的な詳細については、各サービスの情報をご確認ください。

  1. Web アクセスでプロジェクトの管理ページを開きます。

    [プロジェクト設定] ボタンが選択されているスクリーンショット。
  2. ウィザードを実行してサブスクリプションを作成します。

    [サブスクリプションの作成] ボタンが選択されているスクリーンショット。

  3. 統合するサービスを選択します。

    統合するサービスを選択する

  4. トリガーするイベントと、適用可能なフィルターを選択します。

    トリガーするイベントとフィルターを選択する

  5. ターゲット サービスで実行するアクションを選択します。

    Note

    使用可能なアクションの一覧は、選択したイベントの種類に基づいて制限される場合があります。

    ターゲット サービスでのアクションの選択を示すスクリーンショット。

  6. 設定が正しいことを確認するには、サブスクリプションをテストし、ウィザードを終了します。

    テスト通知 1 を示すスクリーンショット。

    テスト通知 2 を示すスクリーンショット。

よく寄せられる質問

Q: サブスクリプションをセットアップするには、どのようなアクセス許可が必要ですか?

A: "サブスクリプションの編集" と "サブスクリプションの表示"。 既定では、プロジェクト管理者のみがこれらのアクセス許可を持っています。 他のユーザーに直接付与するには、コマンド ライン ツールまたは Security REST API を使用できます。

グループに "表示" アクセス許可を付与するには、サービス フックでグループに "表示"アクセス許可を設定する方法に関するページを参照してください。

Q: "サブスクリプションの編集" アクセス許可と "サブスクリプションの表示" アクセス許可を付与すると、セキュリティ面でどのような影響がありますか?

A: これらのアクセス許可を持つユーザーは、プロジェクトで作成されたすべてのサブスクリプションと、それらのサブスクリプションの通知履歴を表示できます。 このユーザーは、そのプロジェクトに任意のタイプのサービス フック サブスクリプションを作成できます。 ユーザーが、アクセス許可を持っていないリソースのサブスクリプションをセットアップしても、サブスクリプションはトリガーされません。

例: 区分パス XYZ での作業項目更新イベント用に作成したサブスクリプションでは、それらの作業項目へのアクセス許可がない場合、通知が送信されません。 ただし、それらの作業項目にアクセスできる他のユーザーの通知履歴は表示できます。

Q: プロジェクトのサービス フック サブスクリプションをプログラムで作成できますか?

回答: はい。 詳細については、プログラムでサービス フック サブスクリプションを作成する方法に関する記述をご覧ください。

Q: アプリから組織へのアクセスを承認した後で、その承認を解除できますか?

回答: はい。 プロファイルから承認を取り消すことができます。

  1. https://visualstudio.microsoft.com/ からプロファイル ページに移動します。

    組織からアクセスしたプロファイルでは、表示される承認管理機能の実装が異なるため、組織 (https://dev.azure.com/{orgName}) からではなく Visual Studio サイト (https://visualstudio.microsoft.com/) から開始するようにしてください。

  2. 承認を管理します。

    アプリケーションの管理ボタンが強調されているスクリーンショット。

  3. 許可を解除する承認の取り消しを行います。

    承認の [取り消し] オプションを示すスクリーンショット。

Q: HipChat に対するサービス フックをセットアップできなくなったのはなぜですか?

A: Atlassian により、HipChat のサポートが正式に廃止されました。 詳しくは、お知らせをご覧ください。