この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
初めに
最近、Azure Reposを触る機会があり、使えるようにするまでに色々と苦労したので、このブログで「Azure Reposを使えるようにする」までをまとめていこうかなと思います。(※あくまで「使えるようにする」までなので、Gitの使い方やリポジトリでのバージョン管理等には触れないです。ご了承ください。)
このブログの流れ
このブログは以下の流れに沿って説明したいと思います。
- Azure Reposとは
- Azure Reposの初期設定
1) 必要なもの
2) AzureDevOpsの作成
3) Azure Repos以外のサービスをオフにする。(必須ではありません)
4) リポジトリの作成 - Azure ReposとVSCodeの連携方法
1) 必要なもの
2) Azure ReposとVSCodeの連携
3) VSCodeのTerminal上でのリポジトリ操作の設定
4) Gitの設定 - Azure Repos(Azure DevOps)へ他ユーザーを追加する方法
1) Azure Reposを他ユーザーが使用できるようにするためには
2) Azure DevOpsのOrganizationに他ユーザーを追加する方法
3) エラーの対処法
1.Azure Reposとは
Azure Reposとは、Azure DevOpsというDevOpsサービスの中に含まれるサービスで、プライベートなリポジトリを無制限に使用することができるサービスです。また、ユーザーが5人以内でしたら無料で使用できます。(Visual Studio サブスクリプションを所有しているアカウントは人数にかかわらず無料となります。5人以降は1人あたり¥672/ユーザー/月 かかります。)
さらに、Azure DevOps内にあるAzure Pipelinesも使用することで、Azure内で完結したCI/CD環境を構築することが可能です。
2.Azure DevOpsの設定
1) 必要なもの
・MSアカウント
Azureのサブスクリプションに紐づいていないアカウントでもAzure Reposを作成することが可能です。ですので、自分が使用しているメールアドレスをMSアカウントとして無料で登録すれば、すぐにAzure Reposを使用することができます。
2) Azure DevOpsの作成
以下URLの「無料で始める」をクリックし、連絡先や名前などを入力して、プロジェクトを作成すると、Azure DevOpsが使えるようになります。
https://azure.microsoft.com/ja-jp/services/devops/
以下、Azure DevOpsの画面です。

3) Azure Repos以外のサービスをオフにする。(必須ではありません)
今回はAzure Reposしか使用しないので、ついでに、それ以外のサービスを使えないようにします。
以下ページのように、Azure DevOpsのメイン画面から「Project Setting」をクリックします。

以下ページに遷移するので、「General」→「Overview」→「Azure DevOps services」の項目で、Azure Repos以外のサービスをオフにします。

F5キーでページを更新すると、以下ページのように、Azure Repos以外のサービスが使えなくなります。

4) リポジトリの作成
Azure DevOpsのメイン画面から、「Repos」をクリックすると、以下ページが表示されます。一旦、「Initialize」をクリックすると、リポジトリが使えるようになります。


3.Azure ReposとVSCodeの連携方法
1) 必要なもの
Azure Reposと連携させるローカルPCに以下をインストールする必要があります。
・Visucl Studio Code
以下ページからダウンロード可能です。
https://azure.microsoft.com/ja-jp/products/visual-studio-code/
・Git
以下ページからダウンロード可能です。
https://git-scm.com/downloads
2) Azure ReposとVSCodeの連携
Azure Reposのメイン画面の右上にある「Clone」をクリックすると、
以下ページが表示されるので、「Clone in VSCode」をクリックします。
「Visual Studio Codeを開きますか?」というポップアップが出るので、「VSCodeを開く」をクリックします。


フォルダーを選択する画面が表示されます。ここで選択されたフォルダー内にリポジトリ上のファイルが保存され、フォルダー内で何かしら変更を加えた場合は、commitとpushでリポジトリに反映させることができます。(リポジトリの変更をローカルフォルダー上に反映させる場合はpullを使用します。)

フォルダー選択後、ローカル上の選択したフォルダー内にリポジトリの内容が反映されます。

リポジトリの操作はVSCodeの左タブ上から3番目にあるアイコンをクリックすると、以下のようにpullやpush、commitを実行することができます。

3) VSCodeのTerminal上でのリポジトリ操作の設定
上記だけですと、VSCode上のTerminalでgitコマンドを使ってのリポジトリの操作を行うことができません。(どうもgitコマンドを認識してくれないみたいです。)これを解消するために、VSCodeの拡張機能「Powershell」をインストールする必要があります。
インストールの方法としては、VSCodeの左タブの上から5番目にあるアイコンをクリックし、Powershellを検索すれば、以下のように表示されるので、こちらのインストールのボタンを押すだけです。

4) Gitの設定
上記3)を実行後、以下コマンドをVSCodeのTerminal上で実行する必要があります。
git pull –allow-unrelated-histories
上記コマンドを実行しない場合、リポジトリの操作中エラーが発生する場合があります。(私の場合はcommitができない状態になりました。)

4.Azure Repos(Azure DevOps)へ他ユーザーを追加する方法
1) Azure Reposを他ユーザーが使用できるようにするためには
AzureDevOpsでは、OrganaizationとProjectがあり、このOrganaizationの下にProjectが作成され、さらにProjectの下にAzure Reposなどの各サービスが存在するという構造になっています。
Azure Reposを複数人で使用する場合は、Azure DevOpsのOrganizationにユーザーを追加する必要があります。(※Projectからユーザーを追加した場合でも、問題なく追加ができます。その場合はProjectで追加したユーザーがOrganizationに自動的に登録されます。但し、その場合は追加したユーザーに対してメールが送信されません。)
2) Azure DevOpsのOrganizationに他ユーザーを追加する方法
以下のAzure DevOpsのホーム画面から「Organization Settings」をクリックします。

以下画面から、「General」→「User」の「Add User」をクリックします。

以下画面が表示されるので、各項目に必要な値を入力します。
・Users:招待するユーザーのメールアドレスを入力、複数入力することが可能です。
・Access level:こちらは主に課金に関わってくるもので、レベルに応じてそのユーザーがDevOps内で使える機能等が変わってきます。
1) Basic:Azure Reposなどのサービスの中身の参照や変更が可能なレベルです。Basicが5人以上いた場合、5人目以降は料金が発生します。
2) Stakeholder:Azure Reposなどのサービスの中身の参照のみができ、変更が不可なレベルです。こちらのレベルは無料となっています。
3) Visual Studio subscriber:Visual Studioサブスクリプションを保有しているユーザのみ選択可能で、参照と変更の両方が可能です。このレベルは無料となっています。
4) Visual Studio Enterprise:Visual Studioサブスクリプションを保有しているユーザのみ選択可能で、、参照と変更の両方が可能です。このレベルは無料となっています。
・Add to projects:ここで対象ユーザーをどのProjectに追加するかを選択することができます。ですので、別途Projectに追加する必要はありません。
・Azure DevOps Groups:こちらは権限の設定になります。ここ以外でも「Organization settings」もしくは「Project Settings」で詳細な権限が設定可能です。
1) Project Readers:Project内で使われているデータの参照は可能ですが、編集することはできません。
2) Project Contributors:Project内で使われているデータの参照と変更が可能です。但し、権限やリポジトリの削除等の全体に影響するものの変更はできません。※Access level:Stake holderの場合は、変更等ができなくなります。
3) Project Administrators:Project内で使われているデータの参照と変更が可能です。権限やリポジトリの削除等の全体に影響するものも変更可能です。

上記を設定すると、以下メールが届くので、「Join now」をクリックします。

3) エラーの対処法
ここまでAzure DevOpsにユーザーが追加され、追加したユーザーがAzure DevOps内のサービス(Azure Reposなど)を使えるようになります。
しかし、実際には以下の認証エラー画面に遭遇することが多々あります。
推測になってしまいますが、登録などの処理に時間がかかっているだけだと思われます。

実際に、少し置いた後に、上記画面の「here」というリンクをクリックすると、
以下画面が表示されました。赤枠の部分がこのユーザーを招待したOrganizationとProjectになり、無事招待されていることが分かります。

上記のOrganizationもしくはProjectをクリックすると、以下画面に遷移し、
実際に招待されていることが分かります。
ですので、上記の認証エラーの画面が出ても、Organizationにしっかりユーザーを追加しているのであれば、少し待てば、問題なく使えるようになると思います。
