git - 我可以在 Azure DevOps 中设置默认安全和/或分支策略吗?

标签 git azure-devops azure-devops-rest-api azure-repos

我们正在使用 Visual Studio Team Services对于我们的 git 服务器。每个 Azure DevOps 项目都托管一个或多个 git 存储库。我们有保持 masterdevelop 分支锁定的惯例,但让其他分支保持不受限制。

我希望能够在项目级别应用我们的标准规则,并将它们作为其中所有 repo 协议(protocol)的默认值:

  • masterdevelop 应该有他们的安全拒绝 Force Push
  • master 分支需要通过代码审查政策提出 merge 请求

到目前为止,我发现的唯一选项是通过网络界面(甚至不是 API!)手动设置每个存储库。我们至少有 200 多个存储库,并且希望避免手动设置每个存储库和一个分支。

如何按分支名称设置默认代码安全和代码策略?还是通过手动以外的任何方式?

最佳答案

  • 要为跨团队项目(项目级别)的多个 git 存储库设置最少审阅者的分支策略,您可以使用 REST API。详细步骤如下:

<强>1。 Get all git repositories用于团队项目。

GET https://account.visualstudio.com/DefaultCollection/ProjectName/_apis/git/repositories?api-version=1.0

然后从输出中保存每个 git repo id 和名称。

<强>2。通过 repo id 和 create branch policy 在代码中循环您在步骤 1 中获得的存储库对于每个 master 分支(假设此处的最少审阅者数量为 2)。

POST https://account.visualstudio.com/DefaultCollection/ProjectName/_apis/policy/configurations?api-version=2.0-preview

应用程序/json:

{
  "isEnabled": true,
  "isBlocking": true,
  "type": {
    "id": "fa4e907d-c16b-4a4c-9dfa-4906e5d171dd"
  },
  "settings": {
                "minimumApproverCount": 2,
                "creatorVoteCounts": false,
                "allowDownvotes": false,
                "scope": [
                    {
                        "refName": "refs/heads/master",
                        "matchKind": "Exact",
                        "repositoryId": "{repo id}"
                    }
                ]
  }
}
  • 关于设置分支安全(force push as deny),没有这样的REST API,我发了一个用户声音Set branch security by REST API ,您可以投票和跟进。

关于git - 我可以在 Azure DevOps 中设置默认安全和/或分支策略吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45288020/

相关文章:

git - 我更改了目录的大写字母,但 Git 似乎没有注意到它

linux - 可以在 Git bash 中使用的 Linux 终端命令列表有哪些?

azure-devops - 根据另一个字段或规则的值,揭开 Azure DevOps 中某个字段的允许值的神秘面纱?

git - 无法连接到 Github?

windows - 如何将写入权限(unix chmod 0777)设置为文件夹并在 Windows 中提交它?

Azure DevOps 条件字符串变量

azure-devops - Azure DevOps - 如何在不重新创建新管道的情况下更新管道 repo 源?

eclipse - Mac OSX 中的 eclipse 中凭证存储失败

python - 通过 API 从 Azure DevOps 中提取团队成员

azure-devops - 如何在 VSTS API 中删除带注释的标签(git 标签)?