Git リポジトリのアクセス許可を設定する
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
レポジトリへのアクセスを管理して、ソース コードにコントリビュートできるユーザーおよび他の機能を管理できるユーザーを制限します。 最上位の Git リポジトリ エントリを変更すると、すべての Git リポジトリのアクセス許可を設定できます。 個々のリポジトリは、最上位の Git リポジトリ エントリからアクセス許可を継承します。
注意
ブランチは、リポジトリ レベルで行われた割り当てからアクセス許可のサブセットを継承します。 ブランチのアクセス許可とポリシーについては、「ブランチ アクセス許可の設定」およびブランチ ポリシーを使用したコード品質の向上に関する記事を参照してください。
より高いアクセス許可レベルを付与するユーザーに関するガイダンスについては、「アクセス許可を使用してアクセスを管理する」を参照してください。
前提条件
- プロジェクトが必要です。 プロジェクトがまだない場合は、Azure DevOps でプロジェクトを作成するか、オンプレミスの Azure DevOps で設定します。
- プロジェクト管理者グループのメンバーであるか、Git リポジトリに対して [Manage permissions](アクセス許可の管理) が [許可] に設定されている必要があります。
ソース コードに投稿するには、Basic 以上のアクセス レベルが付与されている必要があります。 プライベート プロジェクトに対して利害関係者アクセスが付与されているユーザーは、ソース コードにアクセスできません。 パブリック プロジェクトに対して利害関係者アクセスが付与されているユーザーは、共同作成者や基本アクセスが付与されているユーザーと同じアクセス権を持ちます。 詳細については、「アクセス レベルについて」を参照してください。
ソース コードに投稿するには、Basic 以上のアクセス レベルが付与されている必要があります。 利害関係者アクセスが付与されているユーザーは、ソース コードにアクセスできません。 詳細については、「アクセス レベルについて」を参照してください。
既定のリポジトリのアクセス許可
既定では、プロジェクトの共同作成者グループのメンバーには、リポジトリに投稿するためのアクセス許可があります。 これには、ブランチの作成、タグの作成、ノートの管理を行う権限が含まれます。 各セキュリティ グループとアクセス許可レベルの詳細については、アクセス許可とグループ リファレンスに関する記事を参照してください。
権限
Readers
寄稿者
ビルド管理者
プロジェクト管理者
読み取り (リポジトリの内容の複製、フェッチ、検索)、および、pull request の作成、コメント、投票、投稿が可能
✔️
✔️
✔️
✔️
投稿、ブランチの作成、タグの作成、ノートの管理
✔️
✔️
✔️
リポジトリの作成、リポジトリの削除、リポジトリの名前変更
✔️
ポリシーの編集、アクセス許可の管理、他のユーザーのロックの削除
✔️
Bypass policies when completing pull requests(pull request 完了時にポリシーをバイパス)、Bypass policies when pushing(プッシュ時にポリシーをバイパス、Force push (rewrite history, delete branches and tags)(強制プッシュ (履歴の書き換え、ブランチとタグの削除))
(どのセキュリティ グループにも設定されていません)
Azure DevOps スプリント 224 以降 (Azure DevOps Services および Azure DevOps Server 2022.1 以降) では、ポリシー編集アクセス許可がブランチ作成者に自動的に付与されなくなります。 以前は、新しいブランチを作成したときに、そのブランチのポリシーを編集するアクセス許可が付与されていました。 この更新では、リポジトリに対して [Permission management] (アクセス許可の管理) の設定がオンになっている場合であってもこのアクセス許可を付与しないように、既定の動作を変更しています。 セキュリティ アクセス許可の継承またはグループ メンバーシップによって (手動または REST API で) 明示的にポリシーの編集アクセス許可が付与されている必要があります。
リポジトリのセキュリティを開く
Git リポジトリのアクセス許可は、[プロジェクト設定] > [リポジトリ] から設定します。
Web ポータルを開き、ユーザーまたはグループを追加するプロジェクトを選択します。 別のプロジェクトを選択するには、「プロジェクト、リポジトリ、チームの切り替え」を参照してください。
[プロジェクト設定] > [リポジトリ] を開きます。
すべての Git リポジトリのアクセス許可を設定するには、[セキュリティ] を選択します。
たとえば、ここでは (1) [プロジェクト設定]、(2) [リポジトリ]、(3) [セキュリティ] を選択します。
それ以外の場合、特定のリポジトリのアクセス許可を設定するには、(1) リポジトリを選択してから、(2) [セキュリティ] を選択します。
リポジトリのアクセス許可を設定する
1 人のユーザーまたはセキュリティ グループのアクセス許可の状態を [許可] または [禁止] に設定することで、リポジトリへのアクセスを管理できます。
Web ポータルを開き、ユーザーまたはグループを追加するプロジェクトを選択します。 別のプロジェクトを選択するには、「プロジェクト、リポジトリ、チームの切り替え」を参照してください。
プロジェクトのすべての Git リポジトリへのアクセス許可を設定するには、[Git Repositories](Git リポジトリ) を選択してから、管理するアクセス許可を持つセキュリティ グループを選択します。
たとえば、ここでは (1) [プロジェクト設定]、(2) [リポジトリ]、(3) [Git repositories](Git リポジトリ)、(4) [共同作成者] グループ、(5) [リポジトリの作成] のアクセス許可を選択します。
画像全体を表示するには、画像をクリックして拡大します。 閉じるアイコン を選択して閉じます。
注意
ユーザーをセキュリティ グループまたはプロジェクト チームに追加することによって、ユーザーがプロジェクトに追加されていない場合は、アクセス許可ページまたは ID フィールドからユーザーを見つけられない場合があります。 また、ユーザーが Microsoft Entra ID または Active Directory に追加されると、プロジェクトに追加されてから ID フィールドから検索できるようになるまでの間に遅延が発生する可能性があります。 遅延は 5 分から 7 日かかる場合があります。
それ以外の場合は、特定のリポジトリを選択し、管理するアクセス許可を持つセキュリティ グループを選択します。
注意
ユーザーまたはグループを追加したが、そのユーザーまたはグループのアクセス許可を変更しない場合、アクセス許可ページを更新すると、追加したユーザーまたはグループは表示されなくなります。
完了したら、[変更内容を保存] を選択します。
セキュリティ グループのアクセス許可を変更する
カスタム セキュリティ グループのアクセス許可を設定するには、そのグループを事前に定義しておく必要があります。 プロジェクトレベルでのアクセス許可の設定に関する記事を参照してください。
特定のグループのアクセス許可を設定するには、そのグループを選択します。 たとえば、ここでは [共同作成者] グループを選択します。
1 つ以上のアクセス許可を変更します。 アクセス許可を付与するには、[未設定] を [許可] に変更します。 アクセス許可を制限するには、[許可] を [禁止] に変更します。
完了したら、ページから移動します。 アクセス許可の変更は、選択したグループに対して自動的に保存されます。
特定のユーザーのアクセス許可を設定する
特定のユーザーのアクセス許可を設定するには、そのユーザーの名前を検索フィルターに入力し、表示された ID から選択します。
その後、アクセス許可セットに変更を加えます。
注意
ユーザーをセキュリティ グループまたはプロジェクト チームに追加することによって、ユーザーがプロジェクトに追加されていない場合は、アクセス許可ページまたは ID フィールドからユーザーを見つけられない場合があります。 また、ユーザーが Microsoft Entra ID または Active Directory に追加されると、プロジェクトに追加されてから ID フィールドから検索できるようになるまでの間に遅延が発生する可能性があります。 遅延は 5 分から 7 日かかる場合があります。
完了したら、ページから移動します。 アクセス許可の変更は、選択したグループに対して自動的に保存されます。
注意
ユーザーまたはグループを追加したが、そのユーザーまたはグループのアクセス許可を変更しない場合、アクセス許可ページを更新すると、追加したユーザーまたはグループは表示されなくなります。
特定のリポジトリの継承を有効または無効にする
特定のリポジトリの継承を有効または無効にするには、リポジトリを選択してから、[継承] スライダーをオンまたはオフのいずれかの位置に移動します。
継承の詳細については、アクセス許可とグループ、継承とセキュリティ グループの概要に関する記事を参照してください。
ポリシーの適用を除外し、ポリシーのアクセス許可をバイパスする
ブランチ ポリシーをバイパスする必要があるシナリオは多くあります。 たとえば、ビルドの中断の原因となった変更を元に戻す場合や、深夜に修正プログラムを適用する場合などがあります。 以前は、[Exempt from policy enforcement](ポリシー適用の除外) アクセス許可は、pull request の完了時にブランチ ポリシーをバイパスする権限を付与されたユーザーをチームが管理するのに役立ちました。 ただし、そのアクセス許可により、ブランチに直接プッシュする権限も付与されるため、PR プロセスは完全にバイパスされます。
この操作性を向上させるために、[Exempt from policy enforcement](ポリシー適用の除外) アクセス許可を分割して、バイパスのアクセス許可を付与しているチームにより多くの制御を可能としました。 以前のアクセス許可に代わるものとして、次の 2 つのアクセス許可があります。
- [Bypass policies when completing pull requests](pull request 完了時にポリシーをバイパス)。 このアクセス許可を持つユーザーは、pull request に対して "オーバーライド" 操作を使用できます。
- [Bypass policies when pushing](プッシュ時にポリシーをバイパス)。 このアクセス許可を持つユーザーは、ポリシーを構成する必要があるブランチに直接プッシュできます。
最初のアクセス許可を付与し、2 つ目を禁止にすることで、ユーザーは必要に応じてバイパス オプションを使用できますが、ブランチに誤ってプッシュしてもポリシーにより保護されます。
注意
この変更では、動作変更は発生しません。 以前、[Exempt from policy enforcement](ポリシー適用から除外) に [許可] が付与されていたユーザーには、新しいアクセス許可の両方に対して [許可] が付与されるため、PR の完了をオーバーライドし、ポリシーを使用してブランチに直接プッシュすることができます。