Azue ReposとSlackを連携する
ここからはAzure Reposからの通知をSlackで受け取るための連携方法について説明します。Slackと連携することで、コミットやプルリクエストに関する通知を受け取れるようになります。
SlackにAzure Reposアプリを追加する
最初にSlack側にAzure Reposアプリを追加します。WebブラウザからAzure Repos SlackアプリのURLにアクセスすると、Slackにリダイレクトし、アプリの追加を許可するための画面が表示されます。

Azure Reposアプリを使うチャネルを選択して「Allow」を選択すると、Slack上にAzure Reposアプリからのメッセージが投稿されます。

メッセージにある通り、Azure Reposに接続するために「/azrepos signin」とコマンドを入力し「Sign in」ボタンを選択します。

Webブラウザに遷移すると、SlackにAzure Reposの情報を参照する権限を付与するかの確認画面が表示されます。内容を確認して問題がなければ「Accept」ボタンを選択します。

次に認証コードが画面に表示されます。この認証コードをコピーし、Slack上に表示されている「Enter code」ボタンを選択して表示されるウィンドウに貼り付けるとAzure Reposへのサインインは完了となります。

DevOps組織の設定でサードパーティアプリのアクセスを有効にする
次の手順に進む前に、DevOps組織の設定を確認します。
SlackとAzure Reposの連携にはOAuthによる認証が使用されており、DevOps組織の設定でOAuthを介したサードパーティアプリのアクセスが有効になっている必要があります。
DevOps組織の設定画面を表示し、左側のメニューから「Policies」を選択して「Third-party application access via OAuth」という項目がオンになっているかを確認します。

項目がオフになっている場合は、オンに変更します。
Slackアプリでリポジトリのウォッチを開始する
Slackに戻り、対象となるリポジトリのウォッチを開始するための操作を行います。
まず「/azrepos subscribe [リポジトリのURL]」と入力します。リポジトリのURLは、プロジェクトのダッシュボードでAzure Reposの「Files」を選択した際のURLを使用します。

コマンドが成功すると、プルリクエスト作成時に通知される旨のメッセージが表示されます。他の種類の通知も受け取りたい場合は、「/azrepos subscriptions」と入力します。

現在ウォッチしているリポジトリと、何の通知を受け取っているかの一覧が表示されます。この中にある「Add Subscription...」ボタンを選択すると、他の種類の通知を選択できるようになります。
今回は「Code pushed」を選択することでコミットがプッシュされた際にも通知を受け取れるようにします。

プルダウンを選択するとどのリポジトリやブランチを対象とするかを選ぶプルダウンが追加で表示されるので、希望する内容を選択していき「Save」ボタンを選択します。
コミットやプルリクエストの通知を受け取る
ここまでの操作で通知を受け取る準備ができました。それでは実際にコードをコミット・プッシュしたりプルリクエストを作成してみて、Slackに通知が飛ぶことを確認していきます。
次の手順でプルリクエストを作成するため、現在のmainブランチから任意のブランチに切り替えて作業を行います。
VSCodeでブランチを作成する場合は、コマンドパレットを開き「git create branch」と入力するか、「ソース管理」タブを開き「⋯」ボタンから「ブランチ」、「ブランチの作成」を選択することでブランチを新規作成することができます。ここでは「develop」という名称でブランチを作成します。

後は通常通りに任意のファイルを作成または編集して、コミットとプッシュの操作まで行います。プッシュがされると、Slack上にコミット内容が表示されます。コミットのID部分がリンクになっており、選択するとWebブラウザでコミットの内容を確認することも可能です。

プルリクエストは、まずWebブラウザ上でプルリクエストを作成する必要があります。プロジェクトのダッシュボードでAzure Reposのメニューから「Pull requests」を選択します。

「New pull request」ボタンを選択し、プルリクエストの新規作成画面を表示します。

マージ元となるブランチ(developブランチ)とマージ先となるブランチ(mainブランチ)を選択し、プルリクエストのタイトルと説明を入力していきます。
「Reviewers」にはレビュアーを指定します。レビュアーは、個人を複数指定する他にグループを指定することもできます。
最後に「Create」ボタンを選択してプルリクエストの作成を完了します。

プルリクエストを作成した後、Slack上に作成したプルリクエストの内容が表示されます。タイトル部分を選択するとWebブラウザでプルリクエストの内容を確認できます。
まとめ
今回はAzure DevOpsサービスの一つである、ソースコード管理サービスのAzure Reposについて、その概要と使用方法を紹介しました。次回はCI/CDの要となる「Azure Pipelines」について説明していく予定です。