设置 Git 存储库权限

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

你可以授予或限制对存储库的访问权限,以锁定可以参与源代码和管理其他功能的人员。 可以通过更改顶级“Git 存储库”条目来跨所有 Git 存储库设置权限。 单个存储库从顶级“Git 存储库”条目继承权限。

注意

分支从存储库级别所做的分配继承权限的子集。 有关分支权限和策略,请参阅设置分支权限使用分支策略提高代码质量

有关谁提供更高权限级别的指南,请参阅使用权限授予或限制访问权限

先决条件

若要参与源代码,必须被授予“基本”访问级别或更高级别。 被授予对专用项目的“利益干系人”访问权限的用户无权访问源代码。 被授予对公共项目的“利益干系人”访问权限的用户与“参与者”和被授予“基本”访问权限的用户具有相同的访问权限。 若要了解详细信息,请参阅关于访问级别

若要参与源代码,必须被授予“基本”访问级别或更高级别。 被授予“利益干系人”访问权限的用户无权访问源代码。 若要了解详细信息,请参阅关于访问级别

默认存储库权限

默认情况下,项目“参与者”组的成员有权参与存储库。 这包括能够创建分支、创建标记以及管理笔记。 有关每个安全组和权限级别的说明,请参阅权限和组参考

权限

Readers

供稿人

生成管理员

项目管理员


读取(克隆、提取和浏览存储库的内容);还可以创建、评论和参与拉取请求以及对其进行投票

参与、创建分支、创建标记以及管理笔记

创建存储库、删除存储库以及重命名存储库

编辑策略、管理权限、删除其他人的锁

完成拉取请求时绕过策略、推送时绕过策略、强制推送(重写历史记录、删除分支和标记)
(未为任何安全组设置)


Azure DevOps 冲刺 224(Azure DevOps Services 和 Azure DevOps Server 2022.1 及更高版本)开始,不再自动向分支创建者授予“编辑策略”权限。 以前创建新分支时,会授予编辑该分支上策略的权限。 通过此更新,我们将更改默认行为,以不授予此权限,即使为存储库打开了“权限管理”设置也是如此。 需要通过安全权限继承或通过组成员身份显式授予(手动或通过 REST API)的“编辑策略”权限

为存储库打开安全性

可以从“项目设置”>“存储库”中设置 Git 存储库权限。

  1. 打开 Web 门户并选择要在其中添加用户或组的项目。 若要选择其他项目,请参阅切换项目、存储库、团队

  2. 打开“项目设置”>“存储库”。

    若要为所有 Git 存储库设置权限,请选择“安全性”。

    例如,在这里,我们选择 (1)“项目设置”、(2)“存储库”,然后是 (3)“安全性”。

    该屏幕截图显示选择“项目设置”>“存储库”>“安全性”。

  3. 否则,若要设置特定存储库的权限,请选择 (1) 存储库,然后选择 (2)“安全性”。

    该屏幕截图显示选择“项目设置”>选择存储库>“安全性”。

设置存储库的权限

可以通过将单个用户或安全组的权限状态设置为“允许”或“拒绝”来授予或限制对存储库的访问权限。

  1. 打开 Web 门户并选择要在其中添加用户或组的项目。 若要选择其他项目,请参阅切换项目、存储库、团队

  2. 若要为项目的所有 Git 存储库设置权限,请选择“Git 存储库”,然后选择要管理其权限的安全组。

    例如,在这里,我们选择 (1)“项目设置”、(2)“存储库”、(3)“Git 存储库”、(4)“参与者”组,然后是 (5)“创建存储库”的权限。

    若要查看完整图像,请单击图像以展开。 选择关闭图标关闭图标以关闭。

    “项目设置”>“代码”>“存储库”>“Git 存储库”>“安全性”

    注意

    如果未通过将用户添加到安全组或项目团队中来将其添加到项目中,则可能无法从权限页或标识字段中找到该用户。 此外,将用户添加到 Microsoft Entra ID 或 Active Directory 时,用户被添加到项目中的时间与可从标识字段搜索他们的时间之间可能存在延迟。 延迟时间可能介于 5 分钟到 7 天之间。

    否则,请选择特定的存储库,然后选择要管理其权限的安全组。

    注意

    如果添加用户或组,但不更改该用户或组的任何权限,则在刷新权限页时,不再会显示添加的用户或组。

  3. 完成后,选择“保存更改”。

更改安全组的权限

若要设置自定义安全组的权限,必须之前定义过该组。 请参阅在项目级别设置权限

  1. 若要为特定组设置权限,请选择该组。 例如,在这里我们选择“参与者”组。

    显示选择“参与者”组的屏幕截图。

  2. 更改一个或多个权限。 若要授予权限,请将“未设置”更改为“允许”。 若要限制权限,请将“允许”更改为“拒绝”。

    该屏幕截图显示为“参与者”组更改了三个权限。

  3. 完成后,离开该页面。 系统将自动保存所选组的权限更改。

为特定用户设置权限

  1. 若要为特定用户设置权限,请在搜索筛选器中输入用户名,然后从显示的标识中进行选择。

    添加用户或组

    然后对权限集进行更改。

    注意

    如果未通过将用户添加到安全组或项目团队中来将其添加到项目中,则可能无法从权限页或标识字段中找到该用户。 此外,将用户添加到 Microsoft Entra ID 或 Active Directory 时,用户被添加到项目中的时间与可从标识字段搜索他们的时间之间可能存在延迟。 延迟时间可能介于 5 分钟到 7 天之间。

  2. 完成后,离开该页面。 系统将自动保存所选组的权限更改。

注意

如果添加用户或组,但不更改该用户或组的任何权限,则在刷新权限页时,不再会显示添加的用户或组。

为特定存储库启用或禁用继承

  • 若要为特定存储库启用或禁用继承,请选择存储库,然后将“继承”滑块移动到打开或关闭处。

    为特定存储库启用或禁用继承。

    若要了解继承,请参阅关于权限和组、继承和安全组

免除策略实施和绕过策略权限

在许多情况下,偶尔需要绕过分支策略。 例如,在还原导致生成中断的更改或在午夜应用修补程序时。 以前,“免除策略实施”权限帮助团队管理向哪些用户授予在完成拉取请求时绕过分支策略的能力。 但是,该权限还被授予了直接推送到分支,从而完全绕过 PR 过程的能力。

为了改进此体验,我们拆分了“免除策略实施”权限以向授予绕过权限的团队提供更多控制。 以下两个权限替换了以前的权限:

  • 完成拉取请求时绕过策略。 具有此权限的用户能够对拉取请求使用“替代”体验。
  • 推送时绕过策略。 具有此权限的用户能够直接推送到配置了所需策略的分支。

通过授予第一个权限并拒绝第二个权限,用户可以在需要时使用绕过选项,但仍然受到保护,以免意外推送到具有策略的分支。

注意

此更改不引入任何行为更改。 以前针对“免除策略实施”被授予了“允许”的用户会针对这两个新权限被授予“允许”,因此他们能够同时替代 PR 完成时和直接推送到具有策略的分支。