Azure Pipelines と Microsoft Teams の統合

Note

サービス フックMicrosoft Teams統合のサポートは、新しい統合では 2024 年 12 月 31 日、既存の統合では 2025 年 1 月 31 日に廃止されます。 Power Automate ワークフローを使用して、データの最大限のセキュリティを提供することをお勧めします。 詳細については、「Microsoft Teams 内の Office 365 コネクタの再登録」を参照してください。

Azure DevOps Services

Note

この機能は、Azure DevOps Services でのみ使用できます。 通常、新しい機能は最初にクラウド サービスで導入されてから、Azure DevOps Server の次のメジャー バージョンまたは更新プログラムでオンプレミスで使用できるようになります。 詳細については、「Azure DevOps 機能タイムライン」を参照してください。

この記事では、Azure Pipelines アプリを使用してMicrosoft Teamsを使用してパイプライン イベントを監視する方法について説明します。 パイプラインのビルド、リリース、承認に関する通知を Teams チャネルで設定して取得できます。 承認者は、Teams チャネル内からリリースを承認することもできます。

Note

Azure Pipelines の通知は、Teams チャットまたはダイレクト メッセージ内ではサポートされていません。

前提条件

  • アプリを追加できるMicrosoft Teamsのチームへのアクセス。
  • Azure DevOps プロジェクトのプロジェクト管理者またはビルド管理者 アクセス権 。 詳細については、「プロジェクトの作成Pipeline セキュリティ リソースを参照してください。
  • [OAuth を使用したサードパーティ アプリケーションのアクセス] が Azure DevOps 組織設定で有効になっている。

Azure Pipelines アプリを設定する

  1. Microsoft Teamsで Apps を選択し、 Azure Pipelines を検索して、 Azure Pipelines を選択します。

    [Apps] ボタン、次に [Azure Pipelines] ボタンを選択したスクリーンショット。

  2. [追加] の横にあるドロップダウン矢印を選択し、[チームに追加] を選択

    [開く] ボタンを選択し、[チームに追加] ボタンを選択したスクリーンショット。

  3. チーム名を選択または入力してから、[ボットの設定] を選択します。

    [ボットのセットアップ] ボタンを選択したスクリーンショット。

Azure Pipelines アプリ コマンドを使用する

Azure Pipelines Teams アプリでは、次のコマンドがサポートされています。

スラッシュ コマンド 機能
@azure pipelines signin Azure Pipelines アカウントにサインインします。
@azure pipelines signout Azure Pipelines アカウントからサインアウトします。
@azure pipelines subscribe <pipeline url | project url> 通知を受信するには、パイプラインまたはプロジェクト内のすべてのパイプラインをサブスクライブします。
@azure pipelines subscriptions このチャネルのサブスクリプションを表示、追加、または削除します。
@azure pipelines unsubscribe all <project url> プロジェクトに属するすべてのパイプラインとそれに関連付けられているサブスクリプションをチャネルから削除します。
@azure pipelines help コマンドのヘルプを表示します。
@azure pipelines feedback 問題を報告したり、機能を提案したりします。

Azure Pipelines にサインインする

  1. Teams の会話ウィンドウで、「@azurePipelines signin」と入力します。
  2. [サインイン] を選択し、Azure Pipelines への認証を完了します。

パイプラインをサブスクライブする

プロジェクト内のすべてのパイプラインまたは特定のパイプラインのみをサブスクライブして監視するには、次のコマンドを使用します。

  • プロジェクト内のすべてのパイプライン: URL は、プロジェクトまたはプロジェクト内の任意のページ (パイプラインを除く) に設定できます。 次に例を示します。

    @azure pipelines subscribe https://dev.azure.com/myorg/myproject/
    
  • 特定のパイプライン: パイプラインの URL は、URL に definitionId または buildId/releaseId があるパイプライン内の任意のページに設定できます。 次に例を示します。

    @azure pipelines subscribe https://dev.azure.com/myorg/myproject/_build?definitionId=123
    

リンクされた通知を展開する

特定の投稿のすべての返信がリンクされます。

コンパクト スレッド ビューを示すスクリーンショット。

スレッドを展開するには、圧縮されたスレッド リンクを選択します。

展開されたスレッド ビューを示すスクリーンショット。

サブスクリプションの管理

パイプラインをサブスクライブすると、フィルターが適用されずに、いくつかのサブスクリプションが既定で作成されます。 これらのサブスクリプションには、Run 状態の変更 YAML パイプラインの承認を待機している Run ステージ、クラシック リリースのリリースの承認待ちが含まれます。 これらのサブスクリプションを削除したり、サブスクリプションを追加したりできます。

Azure Pipelines アプリでは、チャネルに表示される内容をカスタマイズするためのフィルターもサポートされています。 たとえば、ビルドが失敗した場合のみ、またはデプロイが運用環境にプッシュされる場合にのみ通知を希望する可能性があります。

サブスクリプションを管理するには、以下の手順を実行します。

  1. すべてのパイプライン サブスクリプションを一覧表示するには、 @azure pipelines subscriptions コマンドを実行します。

    サブスクリプションの一覧のビューを示すスクリーンショット。

  2. サブスクリプションを削除するには、 [すべてのサブスクリプションの表示] を選択します。 不要なサブスクリプションで Remove を選択し、 OK を選択します。

  3. サブスクリプションを追加するには、 [サブスクリプションの追加] を選択します。

  4. サブスクライブするイベントとパイプラインを選択し、 Next を選択します。

  5. 必要な StageEnvironment フィルターを選択し、 Submit を選択してから、 OK を選択します。

    たとえば、次のサブスクリプションは、Completed状態がfailed場合にのみ、_default ステージの通知を提供します。

    通知のフィルターを示すスクリーンショット。

Note

チーム管理者は、プロジェクト管理者によって作成されたサブスクリプションを削除または変更することはできません。

承認通知を表示する

承認通知を表示するには、承認を待機している Run ステージ YAML パイプラインの通知、またはクラシック リリースの リリース承認保留中 通知をサブスクライブしていることを確認します。 これらのサブスクリプションは、パイプラインをサブスクライブするときに既定で作成されます。

実行ステージの承認が完了通知をサブスクライブすると、ステージが承認されたタイミングも確認できます。

承認されたデプロイが表示されているカード。

Note

承認ポリシーを適用する前に、承認者の Revalidate ID を持つデプロイ承認をサブスクライブすることはできません。

チャネルから承認する

承認者の場合は、Teams チャネル内から展開を承認できます。 Azure Pipelines アプリでは、すべての Azure Pipelines のチェックと承認のシナリオがサポートされています。 要求は、個人またはチームとして承認できます。

ステージの実行が承認を待つたびに、アプリは通知カードに通知カードを投稿し、チャネルで要求を approve または Reject します。 通知で要求の詳細を確認し、適切なアクションを実行できます。

承認通知の準備完了を示すスクリーンショット。

応答がアプリに送信されます。

承認保留中の通知を示すスクリーンショット。

実行ステージの承認が完了通知にサブスクライブしている場合は、ステージが承認されたタイミングも確認できます。

チャネルの登録を解除する

unsubscribe コマンドを実行して、プロジェクト内のパイプラインに関連するすべてのサブスクリプションを削除し、チャネルからパイプラインを削除します。 次に例を示します。

@azure pipelines unsubscribe all https://dev.azure.com/myorg/myproject

登録解除保留中のメッセージを示すスクリーンショット。

プロジェクトとすべてのサブスクリプションをチャネルから削除するには、 Proceed を選択します。

重要

このコマンドを実行できるのは、プロジェクト管理者だけです。

作成拡張機能を使用する

パイプラインに関する情報を検索して共有するために、Teams 用 Azure Pipelines アプリではメッセージ内の作成拡張機能がサポートされています。 この拡張機能を使用して、パイプライン ID またはパイプライン名でプロジェクト内のパイプラインを検索できます。

拡張機能を使用するには、Teams チャネルで Azure Pipelines プロジェクトにサインインする必要があります。 メッセージ フィールドで + 記号を選択し、 Azure Pipelines を選択して、パイプラインまたはリリースを検索します。

Compose 拡張機能を示すスクリーンショット。

パイプライン URL のプレビュー

作成拡張機能を使用して Teams メッセージにパイプライン URL を追加すると、次の画像のようなプレビューが表示されます。 プレビューは、パイプライン関連の会話を関連性のある最新の状態に保つのに役立ちます。

ビルド URL の展開を示すスクリーンショット。

次の例は、リリース URL プレビューを示しています。

リリース URL の展開を示すスクリーンショット。

複数のテナントを接続する

Microsoft Teams と Azure DevOps に異なるメールまたはテナントを使用している場合は、次の手順を実行し、設定に基づいてサインインして接続します。

Microsoft Teams Azure DevOps サインイン アクション
email1@abc.com (tenant1) email1@abc.com (tenant1) [サインイン] を選びます
email1@abc.com (tenant1) email2@pqr.com (tenant2) 1. Azure DevOps にサインインします。
2. 同じブラウザーで、新しいタブを開始し、https://teams.microsoft.com/ に移動します。
3. sign in コマンドを実行し、[サインイン] を選択します。
email1@abc.com (tenant1) email2@pqr.com (tenant2) 1. [別のメール アドレスでサインインする] を選択します。
2. メール ID ピッカーで、email2 を使用してサインインします。
email1@abc.com (tenant1) email2@pqr.com (既定以外の tenant3) サポートされていません。

認証の問題のトラブルシューティング

- 同じブラウザーで、新しいタブを開始し、https://teams.microsoft.com/ にサインインします。 @Azure Pipelines signout コマンドを実行し、Microsoft Teams 用 Azure Pipelines アプリがインストールされているチャネルで @Azure Pipelines signin コマンドを実行します。

[サインイン] ボタンを選択し、サインイン プロセスを完了します。 表示されるディレクトリが、前の手順で選択したディレクトリと同じであることを確認します。

これらの手順で認証の問題が解決しない場合は、Developer Community にお問い合わせください。