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
」と入力して、アプリの操作を開始します。
パイプラインに接続する
アプリが 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
チーム管理者は、プロジェクト管理者によって作成されたサブスクリプションを削除または変更することはできません。
サブスクリプションのカスタマイズ
既定のサブスクリプションにはフィルターは適用されませんが、設定に従ってこれらのサブスクリプションをカスタマイズできます。 たとえば、失敗したビルドまたは運用環境へのデプロイについてのみ通知を受け取る必要がある場合があります。 フィルターを適用して、チャネルで受信するメッセージをカスタマイズできます。
サブスクリプションをカスタマイズするには:
/azpipelines subscriptions
コマンドを実行して、すべてのサブスクリプションを一覧表示します。- [サブスクリプションの追加] を選択します。
- サブスクライブするイベントを選択し、目的の構成を選択します。
- [保存] を選択します。
たとえば、失敗したビルドについてのみ通知を受け取るには、Build の状態で Failed を選択します。
デプロイの承認
Azure Pipelines にアクセスしなくても、Slack チャネル内からデプロイを承認できます。 承認を待機している Run ステージ YAML パイプラインの通知、またはクラシック リリースの リリース承認保留中 通知をサブスクライブします。 これらのサブスクリプションはどちらも、パイプラインをサブスクライブするときに既定で作成されます。
Slack 用 Azure Pipelines アプリを使用すると、Azure Pipelines ポータルで使用できるすべてのチェックと承認のシナリオを処理できます。 これらのシナリオには、単一の承認者、複数の承認者、チームベースの承認が含まれます。 要求は、個別に、またはチームの代わりに承認できます。
すべてのサブスクリプションを削除する
チャネルを減らすために、 /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 アプリケーション アクセスを有効にします。
構成に失敗しました。 組織が存在し、十分なアクセス許可があることを確認してください。
https://aka.ms/VsSignout
に移動して、Azure DevOps からサインアウトします。プライベート/シークレット ブラウザー ウィンドウで、
https://aex.dev.azure.com/me
に移動してサインインします。 パイプラインがある組織が含まれているディレクトリを選択してください。同じブラウザーで新しいタブを開き、
https://slack.com
に移動します。 Web クライアントを使用してワークスペースにサインインし、/azpipelines signout
実行してから、/azpipelines signin
を実行します。Sign in
ボタンを選択します。 同意ページにリダイレクトされた場合は、メール アドレスの横に表示されるディレクトリが、サインインしたディレクトリと一致することを確認します。