首页 文章

我可以在Visual Studio Team Services(Visual Studio Online)中设置默认安全性和/或分支策略吗?

提问于
浏览
6

我们正在使用Visual Studio Team Services作为我们的git服务器 . 每个VSTS项目都有一个或多个git repos . 我们的约定是保持 masterdevelop 分支锁定,但让其他分支保持不受限制 .

我希望能够在项目级别应用我们的标准规则,并将它们作为其中所有存储库的默认值:

  • masterdevelop 应该有他们的安全否认 Force Push

  • master 分支需要通过代码审查策略提取请求

到目前为止,我发现 only 选项是通过Web界面手动设置这些每个存储库(甚至不是API!) . 我们至少拥有200个存储库,并且希望避免必须逐个手动设置每个存储库和分支 .

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

1 回答

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

    1. Get all git repositories for the team project.

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

    然后从输出中保存每个git repo id和name .

    2. Loop the repositories you got in step1 in your code by repo id, and create branch policy for each master branch (假设评论者的最小数量为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}"
                        }
                    ]
      }
    }
    
    • 为了设置分支安全性(强制推送为拒绝),没有这样的REST API,我发布了用户语音Set branch security by REST API,您可以投票并跟进 .

相关问题