【问题标题】:Programmatically configure Azure DevOps project settings以编程方式配置 Azure DevOps 项目设置
【发布时间】:2021-12-15 09:44:39
【问题描述】:

我正在寻找一种方法来自动化/编写 Azure DevOps 项目创建的脚本。我知道我可以使用VSTeam PowerShell module 创建一个项目,但它没有提供以编程方式设置项目设置的方法(下面的屏幕截图中的设置)。有没有办法用 PowerShell 或 AZ CLI 做到这一点?特别是我正在寻找一种方法来控制/更改这两个设置:

  • 将作业授权范围限制为当前项目的非发布管道
  • 将作业授权范围限制为引用的 Azure DevOps 存储库

【问题讨论】:

    标签: azure-devops


    【解决方案1】:

    你可以尝试使用Rest API:

    1. 如何将 PowerShell 与 REST API 一起使用:Modify Azure Devops Test Case Parameters Through REST API
    2. Rest API 方法:General Settings - GetGeneral Settings - Update

    【讨论】:

      【解决方案2】:

      要创建项目,您需要发送 POST 到 https://dev.azure.com/<devopsOrgName>/_apis/projects?api-version=5.0-preview.3

      有一个像下面这样的身体。要获取正文中使用的“模板类型”值,您需要将 GET 设置为 https://dev.azure.com/<devopsOrgName>/_apis/process/processes?api-version=5.0-preview.1

      ` {

              "description":  "Tailspin Toys",
      
              "name":  "Tailspin_TOYS",
      
              "capabilities":  {
      
                                   "versioncontrol":  {
      
                                                          "sourceControlType":  "Git"
      
                                                      },
      
                                   "processTemplate":  {
      
                                                          "templateTypeId":  "24268e03-7eed-4ac0-a178-700881565b99"
      
                                                       }
      
                              }
      
          }`
      

      要更改您在文档中找不到的特定设置,我建议您使用浏览器中的开发人员工具 (f12)。查看网络选项卡,您应该会看到更改设置时的请求。

      在这种情况下,当我尝试这些设置时,我可以看到以下请求

      网址:https://dev.azure.com/<devopsOrgName>/_apis/Contribution/HierarchyQuery

      输入:POST

      正文:

      { "contributionIds":["ms.vss-build-web.pipelines-general-settings-data-provider"],"dataProviderContext":{"properties":{"enforceJobAuthScopeForReleases":"false","sourcePage":{"url":"https://dev.azure.com/<devopsOrgName>/<projectName>/_settings/settings","routeId":"ms.vss-admin-web.project-admin-hub-route","routeValues":{"project":"<projectName>","adminPivot":"settings","controller":"ContributedPage","action":"Execute","serviceHost":"495d404e-cdeb-496a-8496-fccf9df3d9fa (<devopsOrgName>)"}}}} }

      Azure DevOps REST 的文档记录不是最多,但是当与您的浏览器开发工具一起使用时,我没有找到无法设置的东西。

      【讨论】:

      • 不知道为什么格式这么差:(
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 1970-01-01
      • 2016-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多