Slack で Azure Pipelines を使用する

Azure DevOps Services

この記事では、Slack 用の Azure Pipelines アプリ を使用してパイプライン イベントを監視する方法について説明します。 ビルド、リリース、保留中の承認などのパイプライン イベントのサブスクリプションを確立および管理できます。 これらのイベントの通知は、Slack チャネルに直接配信されます。

Note

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

前提条件

  • Slack ワークスペースにアプリをインストールするアクセス許可を持つ Slack アカウント。
  • Project コレクション管理者または Project Administrators アクセス許可を持つ Azure DevOps プロジェクト。

Azure Pipelines アプリをインストールする

Azure Pipelines Slack アプリ Slack ワークスペースにインストールします。 アプリがインストールされると、次のウェルカム メッセージが表示されます。 「 /azpipelines 」と入力して、アプリの操作を開始します。

Azure Pipelines アプリのウェルカム メッセージを示すスクリーンショット。

パイプラインに接続する

アプリが Slack ワークスペースにインストールされたら、監視する任意のパイプラインにアプリを接続できます。 コマンドを実行する前に、Azure Pipelines に対して認証する必要があります。

サインイン プロンプト メッセージを示すスクリーンショット。

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

プロジェクト内のすべてのパイプラインの監視を開始するには、チャネルに「 /azpipelines subscribe <project url> 」と入力し、 <project url> を Azure DevOps プロジェクトの URL に置き換えます。 プロジェクト URL は、パイプライン ページを除き、プロジェクト内の任意のページ ( /azpipelines subscribe https://dev.azure.com/myorg/myproject/など) にリンクできます。

/azpipelines subscribe <pipeline url>を使用して、特定のパイプラインを監視できます。 パイプライン URL は、URL に definitionId または buildId/releaseId が含まれているパイプライン内の任意のページにリンクできます。 次に例を示します。

  • /azpipelines subscribe https://dev.azure.com/myorg/myproject/_build?definitionId=123
  • /azpipelines subscribe https://dev.azure.com/myorg/myproject/_release?definitionId=123&view=mine&_a=releases

subscribe コマンドは、既定で次の通知をサブスクライブします。

  • YAML パイプラインの場合:
    • 実行ステージの状態が変更されました
    • 承認を待機しているステージを実行する
  • クラシック ビルド パイプラインの場合、 Builds が完了しました
  • クラシック リリース パイプラインの場合:
    • リリースのデプロイが開始されました
    • リリースのデプロイが完了しました
    • リリース展開の承認が保留中

通知の例を示すスクリーンショット。

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

チャネルのサブスクリプションを管理するには、「 /azpipelines subscriptions」と入力します。 このコマンドを実行すると、チャネルの現在のサブスクリプションがすべて一覧表示され、サブスクリプションを追加または削除できます。

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

Note

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

サブスクリプションのカスタマイズ

既定のサブスクリプションにはフィルターは適用されませんが、設定に従ってこれらのサブスクリプションをカスタマイズできます。 たとえば、失敗したビルドまたは運用環境へのデプロイについてのみ通知を受け取る必要がある場合があります。 フィルターを適用して、チャネルで受信するメッセージをカスタマイズできます。

サブスクリプションをカスタマイズするには:

  1. /azpipelines subscriptions コマンドを実行して、すべてのサブスクリプションを一覧表示します。
  2. [サブスクリプションの追加] を選択します。
  3. サブスクライブするイベントを選択し、目的の構成を選択します。
  4. [保存] を選択します。

たとえば、失敗したビルドについてのみ通知を受け取るには、Build の状態Failed を選択します。

サブスクリプションをカスタマイズする方法を示すスクリーンショット。

デプロイの承認

Azure Pipelines にアクセスしなくても、Slack チャネル内からデプロイを承認できます。 承認を待機している Run ステージ YAML パイプラインの通知、またはクラシック リリースの リリース承認保留中 通知をサブスクライブします。 これらのサブスクリプションはどちらも、パイプラインをサブスクライブするときに既定で作成されます。

Slack でのパイプラインの承認を示すスクリーンショット。

Slack 用 Azure Pipelines アプリを使用すると、Azure Pipelines ポータルで使用できるすべてのチェックと承認のシナリオを処理できます。 これらのシナリオには、単一の承認者、複数の承認者、チームベースの承認が含まれます。 要求は、個別に、またはチームの代わりに承認できます。

Slack で承認されたデプロイ前パイプラインを示すスクリーンショット。

すべてのサブスクリプションを削除する

チャネルを減らすために、 /azpipelines unsubscribe all <project url> コマンドを使用して、プロジェクト内のすべてのパイプラインのサブスクライブを解除できます。 たとえば、/azpipelines unsubscribe all https://dev.azure.com/myorg/myproject のようにします。

重要

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

コマンド リファレンス

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

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

プライベートチャンネルでの通知

Azure Pipelines アプリは、プライベート チャネルでのパイプライン アクティビティの監視にも役立ちます。 /invite @azpipelinesを使用して、ボットをプライベート チャネルに招待する必要があります。 ボットを追加したら、パブリック チャネルの場合と同じ方法で通知を構成および制御できます。

条件と制限

  • Slack 用の Azure Pipelines アプリは、Azure DevOps Services でのみ使用できます。
  • サブスクリプションを設定するには、パイプラインを含むプロジェクトの管理者である必要があります。
  • ダイレクト メッセージ内の通知はサポートされていません。
  • 承認を完了する前に承認者の Revalidate ID を持つ展開の承認 ポリシーが適用されることはありません。
  • アプリを使用するには、Azure DevOps Organization 設定>Security>Policies で OAuth 経由のサード パーティ アプリケーション アクセスを有効にする必要があります。

トラブルシューティング

Slack 用 Azure Pipelines アプリの使用時に次のエラーが発生する場合は、このセクションの手順を試してください。

問題が発生しました。 やり直してください。

Azure Pipelines アプリは OAuth 認証プロトコルを使用しているため、[OAuth を使用したサードパーティ アプリケーションのアクセス] を有効にする必要があります。 この設定を有効にするには、 Organization Settings>Security>Policies に移動し、OAuth 経由で Third-party アプリケーション アクセスを有効にします

OAuth 経由でのサード パーティのアクセスを有効にする方法を示すスクリーンショット。

構成に失敗しました。 組織が存在し、十分なアクセス許可があることを確認してください。

  1. https://aka.ms/VsSignoutに移動して、Azure DevOps からサインアウトします。

  2. プライベート/シークレット ブラウザー ウィンドウで、 https://aex.dev.azure.com/me に移動してサインインします。 パイプラインがある組織が含まれているディレクトリを選択してください。

    パイプライン ディレクトリを選択する方法を示すスクリーンショット。

  3. 同じブラウザーで新しいタブを開き、 https://slack.comに移動します。 Web クライアントを使用してワークスペースにサインインし、 /azpipelines signout 実行してから、 /azpipelines signinを実行します。

  4. Sign in ボタンを選択します。 同意ページにリダイレクトされた場合は、メール アドレスの横に表示されるディレクトリが、サインインしたディレクトリと一致することを確認します。