Slack を使用した Azure Repos
Azure DevOps Services
Slack を使っている場合は、Slack 用のAzure Repos アプリを使って、Azure Repos のリポジトリを簡単に監視できます。 コードがプッシュまたはチェックインされたとき、および pull request (PR) の作成、更新、またはマージが試みられたとき常に、チャネルで通知を受け取るようにサブスクリプションを設定および管理できます。 このアプリは、Git と Team Foundation バージョン管理 (TFVC) 両方のイベントをサポートしています。
この記事では、以下の方法について説明します。
- Azure Repos アプリを Slack ワークスペースに追加する
- Azure Repos アプリをリポジトリに接続する
- Slack チャネルでリポジトリ関連のイベントへのサブスクリプションを管理する
- フィルターを効果的に使用してサブスクリプションをカスタマイズする
- プライベート Slack チャネルで通知を受け取る
前提条件
- Slack チャネルでリポジトリ関連のイベントのサブスクリプションを作成するには、プロジェクト管理者グループのメンバーであるか、チーム管理者である必要があります。 追加するには、「プロジェクト レベルのアクセス許可を変更する」またはチーム管理者の追加に関する記事を参照してください。
- 通知を受け取るために、[OAuth を使用したサード パーティ アプリケーションのアクセス] 設定を組織に対して有効にする必要があります。 組織のアプリケーション アクセス ポリシーの変更に関する記事を参照してください。
注意
- 通知は、現在、ダイレクト メッセージ内ではサポートされていません。
- Slack 用の Azure Repos アプリは、現時点で、Azure DevOps Services でホストされているプロジェクトにのみリンクできます。
Azure Repos アプリを Slack ワークスペースに追加する
Azure Repos Slack アプリに移動して、Azure Repos アプリを Slack ワークスペースにインストールします。
追加すると、次の画像に示すように、アプリからのウェルカム メッセージが表示されます。
/azrepos
Slack ハンドルを使用してアプリを操作します。 コマンドの一覧については、この記事の「コマンド参照」セクションを参照してください。
Azure Repos アプリをリポジトリに接続する
アプリが Slack ワークスペースにインストールされたら、
/azrepos signin
コマンドを使用して Azure Repos に接続して認証します。プロジェクト内のすべての Git リポジトリの監視を開始するには、チャネル内で次のスラッシュ コマンドを使用します。
/azrepos subscribe [project url]
プロジェクト URL は、プロジェクト内の任意のページに設定できます (リポジトリへの URL を除く)。
次に例を示します。
/azrepos subscribe https://dev.azure.com/myorg/myproject/
次のコマンドを使用して、特定のリポジトリを監視することもできます。
/azrepos subscribe [repository url]
リポジトリ URL は、リポジトリ名を持つリポジトリ内の任意のページに設定できます。
たとえば、Git リポジトリの場合は、次を使用します。
/azrepos subscribe https://dev.azure.com/myorg/myproject/_git/myrepository
TFVC リポジトリの場合は、次を使用します。
/azrepos subscribe https://dev.azure.com/myorg/myproject/_versionControl
注意
サブスクライブできるのはパブリック リポジトリのみです。
サブスクライブのコマンドを使用すると、既定のサブスクリプションの使用を開始できます。 Git リポジトリの場合、チャネルは [Pull request が作成されました] イベント (ターゲット ブランチ = マスター) にサブスクライブされ、TFVC リポジトリの場合、チャネルは [コードのチェックイン] イベントにサブスクライブされます。
サブスクリプションの管理
チャネルのサブスクリプションを表示、追加、削除するには、subscriptions
コマンドを使用します。
/azrepos subscriptions
このコマンドを使用すると、チャンネルの現在のサブスクリプションがすべて一覧表示され、新しいサブスクリプションを追加したり、既存のものを削除したりできます。 サブスクリプションを追加する際、次のセクションで説明するように、さまざまなフィルターを使用して取得する通知をカスタマイズできます。
[!注] チーム管理者は、プロジェクト管理者によって作成されたサブスクリプションを削除または変更することはできません。
フィルターを効果的に使用してサブスクリプションをカスタマイズする
ユーザーが /azrepos subscribe
コマンドを使用してリポジトリにサブスクライブすると、既定のサブスクリプションが作成されます。 ユーザーは頻繁にサブスクリプションをカスタマイズする必要があります。 たとえば、PR に特定のレビュー担当者がいる場合にのみ、ユーザーが通知を受け取ることを希望する場合などがあります。
次の手順に、サブスクリプションをカスタマイズする方法を示します。
/azrepos subscriptions
コマンドを実行します。- サブスクリプションの一覧に、不要なサブスクリプションまたは変更する必要があるサブスクリプションがある場合 (例: チャネルでのノイズの作成)、[削除] ボタンを選択します。
- [サブスクリプションの追加] ボタンを選択します。
- 必要なリポジトリと希望するイベントを選択します。
- サブスクリプションをカスタマイズするための適切なフィルターを選択します。
例: チームが PR のレビュー担当者リストに含まれている場合にのみ通知を受け取る
例: ポリシー違反が原因でマージ試行が失敗した場合に通知する
注意
- 通常、すべてのフィルターがドロップダウン式です。 ただし、ドロップダウンの項目数が 100 を超える場合、ユーザーは値を手動で入力するように求められます。
- TFVC [コードのチェックイン] イベントの場合、[次のパスの下] フィルターの形式は
$/myproject/path
である必要があります。
pull request URL のプレビュー
ユーザーが PR の URL を貼り付けると、次の画像のようなプレビューが表示されます。 これにより、PR 関連の会話をコンテキストに応じて正確に保つことができます。
この機能を機能させるには、ユーザーがサインインする必要があります。 サインインすると、この機能はワークスペース内のすべてのチャネルで機能します。
チャネルからサブスクリプションとリポジトリを削除する
多くの場合、ユーザーはリポジトリとサブスクリプションを削除してチャネルをクリーンアップしたいと考えています。 次のコマンドを使用することで同じことが達成できます。
/azrepos unsubscribe all [project url]
次に例を示します。
/azrepos unsubscribe all https://dev.azure.com/myorg/myproject
このコマンドを実行すると、プロジェクト内のリポジトリに関連するすべてのサブスクリプションが削除され、チャネルからリポジトリが削除されます。 このコマンドを実行できるのは、プロジェクト管理者だけです。
コマンド リファレンス
次の表に、Slack チャネルで使用できるすべての /azrepos commands
を示します。
スラッシュ コマンド | 機能 |
---|---|
/azrepos subscribe [repository url/ project url] | 通知を受け取るために、プロジェクト内の 1 つのリポジトリまたはすべてのリポジトリをサブスクライブする |
/azrepos subscriptions | このチャネルのサブスクリプションを追加または削除する |
/azrepos signin | Azure Repos 組織にサインインする |
/azrepos signout | Azure Repos 組織からサインアウトする |
/azrepos feedback | 問題を報告するか、機能を提案する |
/azrepos unsubscribe all [project url] | (プロジェクトに属する) すべてのリポジトリとそれに関連付けられているサブスクリプションをチャネルから削除する |
プライベート チャンネルでの通知
Azure Repos アプリは、プライベート チャネルのリポジトリ イベントの監視にも役立ちます。 ボットをプライベート チャンネルに招待するには、/invite @azrepos
を使用する必要があります。 これを投稿すると、パブリック チャネルの場合と同じ方法で通知を設定および管理できます。
トラブルシューティング
Slack 用 Azure Repos アプリを使用しているときに次のエラーが発生する場合は、このセクションの手順に従ってください。
申し訳ございません。問題が発生しました。 もう一度やり直してください。
Azure Repos アプリは OAuth 認証プロトコルを使用しているため、[Third-party application access via OAuth for the organization](組織の OAuth を使用したサードパーティ アプリケーションのアクセス) を有効にする必要があります。 この設定を有効にするには、[組織の設定]>[セキュリティ]>[ポリシー] の順に移動し、[Third-party application access via OAuth for the organization](組織の OAuth を使用したサードパーティ アプリケーションのアクセス) を [オン] に設定します。
構成に失敗しました。 組織 '{組織名}' が存在し、十分なアクセス許可があることを確認してください
ブラウザーを使用して https://aka.ms/VsSignout
に移動し、Azure DevOps からサインアウトします。
プライベートまたはシークレットのブラウザー ウィンドウを開き、https://aex.dev.azure.com/me
に移動してサインインします。 左側のプロファイル アイコンの下のドロップダウンで、サブスクライブするリポジトリを含む組織が含まれるディレクトリを選択します。
同じブラウザーで、新しいタブを開始し、https://slack.com
に移動し、作業空間にサインインします (Web クライアントを使用)。 /azrepos signout
コマンドを実行し、その後に /azrepos signin
コマンドを実行します。
Sign in
ボタンを選択すると、次の例のような同意ページにリダイレクトされます。 メール アドレスの横に表示されるディレクトリが、前の手順で選択したディレクトリと同じであることを確認します。 サインイン プロセスを受け入れて完了します。
これらの手順で認証の問題が解決しない場合は、Developer Community にお問い合わせください。
関連記事
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示