はじめに
前回に引き続きAzure DevOpsが提供する各サービスについて紹介していきます。今回はソースコード管理サービスであるAzure Reposについて説明していきます。
対象読者
- Microsoft Azureや他のクラウドサービスを利用している方
- アジャイル開発を行っている方
- DevOpsの一通りの流れを理解したい方
Azure Reposとは?
Azure Reposは、ソースコード管理システムのデファクトスタンダードとなっているGitのリモートリポジトリを、クラウド上にホスティングしたサービスです。Azure DevOpsのサービスラインナップの一つです。
GitもしくはTeam Foundation Version Control(TFVC)を使用してソースコードを管理できます。開発チームのメンバーは、Azure Reposを使用してコードの変更履歴を追跡し、コードレビューを実施し、ブランチを使用した並行開発が可能です。
主な機能
Azure Reposの特徴として、主に以下の要素が挙げられます。
(1)無制限でプライベートリポジトリを作成できる
Azure Reposでは、以下のリポジトリを作成できます。
- 誰でもリポジトリを参照できるパブリックリポジトリ
- 参照する範囲を制限できるプライベートリポジトリ
他のサービスではプライベートリポジトリの作成数に制限がある場合もありますが、Azure Reposでは無制限で作成可能です。
(2)プルリクエストやリポジトリのフォークなど、他のリポジトリホスティングサービスと同等の機能の提供
コードの品質を保つために、コードをレビューする際にはプルリクエストを使用すると便利です。
プルリクエストとは、ブランチのマージ時に他の開発者によるコードレビューを行い、レビューが承認されることでマージが行えるようにする機能です。プルリクエストはGitの機能ではなく、はじめはGitHubによって提供された機能ですが、Azure Reposでもサポートしています。
他にもリポジトリを複製するフォークや、ブラウザ上から直接リモートブランチのコードを編集できる機能など、他のサービスが提供している機能の多くをサポートしているため、他のサービスを使用した経験があればスムーズにAzure Reposを使用できるでしょう。
(3)他のAzure DevOpsサービスとの親和性の高さ
Azure Reposの最大の特徴はAzure DevOpsのサービスラインナップの一つである点で、他のAzure DevOpsのサービスとシームレスに連携できるようになっています。
たとえばAzure Boardsで作成したタスクに関連するブランチを作成したり、Azure ReposへのコミットをトリガーにしてAzure Pipelinesでソースコードのビルドとデプロイを行ったりといった連携が非常に簡単にできます。また、Azure DevOpsとしてWeb画面が集約されているのも使いやすいポイントです。
(4)さまざまなブランチポリシーを設定できる
Azure Reposでは、効率的なブランチ管理のために、さまざまなポリシーを設定できます。
- 特定のブランチへの直接プッシュを禁止:mainブランチやdevelopブランチなど、運用上重要となるブランチを保護することで不適切な変更の反映を防げる。
- マージ前のコードレビューの必須化:コード品質の担保と、チーム間での知識共有やコーディングルールの統一化などを促進できる。
- CI/CDパイプラインによるビルドの成功の必須化:マージ前にビルドの成否を確認することで、不具合の混入を防げる。
- Azure Boardsの作業項目とのリンクによるトレーサビリティの確保:Azure Boardsに記述した作業内容(要件)とコードの変更を紐づけることで、作業の履歴管理と追跡性を強化できる。
(5)セキュリティとアクセス制御
Azure Reposでは、以下のきめ細かいアクセス制御も可能です。
- リポジトリレベルの権限設定
- ブランチレベルの権限設定
- 個別のユーザーまたはグループへの権限付与
また、Entra ID(旧Azure Active Directory)と統合することで、企業の認証基盤と連携したシングルサインオンの実装も可能です。