Slack を使用して Azure DevOps のサービス フックを作成する

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

この記事では、完成したビルド、コードの変更、プル要求、リリース、作業項目の変更など、Azure DevOps 組織のイベントに応答して Slack にメッセージを投稿する方法について説明します。

Note

Azure DevOps Services の場合は、Slack と統合する機能を提供する次の一連のアプリを使用することをお勧めします。

Slack 用 Azure Boards アプリ

Slack 用 Azure Boards アプリは、Slack チャネルから作業項目を簡単に作成および監視するのに役立ちます。 スラッシュ コマンドを使用して作業項目を作成したり、メッセージ アクションを使用してチャネル内の会話を作業項目に変換したりできます。 また、作業項目が作成または更新されるたびにチャネルで通知を受け取るようにサブスクリプションを設定および管理することもできます。

Slack 用 Azure Pipelines アプリ

Slack 用 Azure Pipelines アプリは、パイプライン内のイベントを簡単に監視するのに役立ちます。 完成したビルド、リリース、保留中の承認などのサブスクリプションをアプリから設定および管理し、それらのチャネルでこれらのイベントの通知を取得できます。 チャネルからのリリースデプロイを承認することもできます。

Slack 用 Azure Repos アプリ

Slack 用 Azure Repos アプリは、リポジトリ内のイベントを簡単に監視するのに役立ちます。 コード コミット、PR の作成と更新などのサブスクリプションを設定および管理し、それらのチャネルでこれらのイベントの通知を取得できます。

前提条件

Slack の ドキュメント「受信 Webhook を使用してメッセージを送信する」を参照して、Web フックを使用して Slack チャネルに情報をプッシュするプロセスを理解してください。

Slack でカスタム アプリを作成する

  1. しい Slack アプリを作成するSlack アプリを作成する

  2. 受信 Web Hook をアクティブ化し、目的のワークスペースに新しい Web フックを追加する 受信 Web フックのスクリーンショット。

    Web フックの切り替えのスクリーンショット。

  3. Web フックを作成する必要があるチャネルを選択します。

    Web フックの作成のスクリーンショット。

  4. Web フック URL をコピーし、Azure DevOps に移動します。

    Web フックのコピーのスクリーンショット。

組織内でサービス フック サブスクリプションを作成する

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

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

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

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

  2. Slack チャネルに表示するイベントの種類を選択します。

    各トリガーを特定の方法でフィルター処理できます。 たとえば、プル要求発生するリポジトリ、適用先のブランチ、要求を確認するために必要または招待されたチーム メンバーで、作成されたプル要求トリガーをフィルター処理します。

  3. 作成した Slack 統合から Web Hook URL を貼り付け、[完了] を選択 します

    Web フック URL を含む [アクション] ダイアログ ボックスのスクリーンショット。

    プロジェクトでイベントが発生すると、チームの Slack チャネルに通知が表示されます。

    Slack チャネルの通知を示すスクリーンショット。

よく寄せられる質問

Q: トリガーを構成するときに pull request イベントがオプションとして表示されないのはなぜですか?

A: プル要求は、Git を使用するプロジェクトでのみ使用できます。 プロジェクトで TFVC を使用している場合、プル イベント トリガーは使用できません。また、コード イベントは "Code pusheded in" ではなく "Code チェックed in" と呼ばれます。

Q: Slack チャネルに複数のイベントを表示するにはどうすればよいですか?

A: 必要なイベントの種類ごとに新しいサブスクリプションを作成します。 たとえば、Slack チャネルでビルドエラーと新しい作業項目を表示する場合は、さらに 2 つのサブスクリプションを作成します。