Azure DevOps 使项目只读
Azure DevOps make project read only
我们有一些旧的 ADO/VSTS 项目要存档并设为只读。每个项目都有工作项、构建、git 回购等...
目前我找到的唯一方法是痛苦的。
- 删除除只读组以外的所有组并在其中添加用户。 这太痛苦太长了,我们有 300 多个项目要设为只读
- 创建一个新组,然后添加其他组(例如项目管理员、贡献者等),然后将此组添加到顶层 area/git 回购路径并将所有设置为拒绝。 *
I tried this with git repos and There is some issues with this as some
permissions are not inherited down to individual users who created the
git repo and they are still able to checkin.
在这里你可以看到我创建了一个 READONLY 组并将除读取权限外的所有内容都设置为拒绝。 (该组的成员是默认组,例如贡献者、构建管理员、项目管理员)
但是,在我创建只读组之前,我有一个由测试用户创建的存储库,看来该用户仍然对该存储库具有权限
好的好的我知道如果权限设置在较低级别,那么它们将不会从顶级父级继承下来。我可以创建一个脚本来检查每个 git 存储库的用户并将他们的签入权限设置为拒绝,但这很痛苦,我不想这样做。同样,一些项目有 300 多个 git 存储库。
仅供参考,我想让整个项目只读,而不仅仅是 git 回购 cream chargers。
是的,你发现了 Azure DevOps 权限模型的一个令人讨厌的功能。更具体的 ACL 胜过不太具体的 ACL。即使是拒绝规则。
当更具体的 ACL 上有明确的 ALLOW 规则时,它将覆盖不太具体的 ACL 上的拒绝。
git 的特异性基于:
- 服务器(仅限 TFS)
- 组织/项目合集
- 项目
- 默认回购设置
- 具体回购设置
- 分支文件夹设置(只能通过 API 设置)
- 具体分支设置
其他安全资产也存在类似的层次结构。
除了编写动作脚本之外,没有简单的方法可以去除所有这些。
Azure CLI has a devops extension 允许您编写您想要的内容,并且可以输出 JSON 以便编写脚本。
您可以使用 az devops security permission list
列出为身份(组或用户)定义的所有权限,并使用 az devops security permission reset
或 az devops security permission update
取消设置或覆盖给定的权限。
其他可能需要的电话:
Azure DevOps 现在有一个名为:“禁用存储库”的功能。
Disable access to to the repository (including builds, pull requests,
etc) but keep the repository discoverable with a warning.
这意味着你的仓库将不允许提交,甚至构建和管道也不能使用它。只需转到您的 Devops“Project Settings”。向下滚动到“存储库”菜单和 select 您要禁用哪个 Repo。
我们有一些旧的 ADO/VSTS 项目要存档并设为只读。每个项目都有工作项、构建、git 回购等...
目前我找到的唯一方法是痛苦的。
- 删除除只读组以外的所有组并在其中添加用户。 这太痛苦太长了,我们有 300 多个项目要设为只读
- 创建一个新组,然后添加其他组(例如项目管理员、贡献者等),然后将此组添加到顶层 area/git 回购路径并将所有设置为拒绝。 *
I tried this with git repos and There is some issues with this as some permissions are not inherited down to individual users who created the git repo and they are still able to checkin.
在这里你可以看到我创建了一个 READONLY 组并将除读取权限外的所有内容都设置为拒绝。 (该组的成员是默认组,例如贡献者、构建管理员、项目管理员)
但是,在我创建只读组之前,我有一个由测试用户创建的存储库,看来该用户仍然对该存储库具有权限
好的好的我知道如果权限设置在较低级别,那么它们将不会从顶级父级继承下来。我可以创建一个脚本来检查每个 git 存储库的用户并将他们的签入权限设置为拒绝,但这很痛苦,我不想这样做。同样,一些项目有 300 多个 git 存储库。
仅供参考,我想让整个项目只读,而不仅仅是 git 回购 cream chargers。
是的,你发现了 Azure DevOps 权限模型的一个令人讨厌的功能。更具体的 ACL 胜过不太具体的 ACL。即使是拒绝规则。
当更具体的 ACL 上有明确的 ALLOW 规则时,它将覆盖不太具体的 ACL 上的拒绝。
git 的特异性基于:
- 服务器(仅限 TFS)
- 组织/项目合集
- 项目
- 默认回购设置
- 具体回购设置
- 分支文件夹设置(只能通过 API 设置)
- 具体分支设置
其他安全资产也存在类似的层次结构。
除了编写动作脚本之外,没有简单的方法可以去除所有这些。
Azure CLI has a devops extension 允许您编写您想要的内容,并且可以输出 JSON 以便编写脚本。
您可以使用 az devops security permission list
列出为身份(组或用户)定义的所有权限,并使用 az devops security permission reset
或 az devops security permission update
取消设置或覆盖给定的权限。
其他可能需要的电话:
Azure DevOps 现在有一个名为:“禁用存储库”的功能。
Disable access to to the repository (including builds, pull requests, etc) but keep the repository discoverable with a warning.
这意味着你的仓库将不允许提交,甚至构建和管道也不能使用它。只需转到您的 Devops“Project Settings”。向下滚动到“存储库”菜单和 select 您要禁用哪个 Repo。