通过 REST API 更改 Azure DevOps 组织设置

Change Azure DevOps Organization setting through REST API

我一直在研究 Azure DevOps API docs,但我似乎找不到通过 REST API.

更改组织设置的端点

更具体地说,我正在尝试更改管道设置。对于一个项目,this exists,但在组织级别似乎是不可能的。

我说得对吗,这通过 REST 是不可行的 API?这可以通过 Azure DevOps CLI 实现吗?

经过我调查,官方文档中并没有如你所说的DevOps RestAPI。作为建议,您可以提交建议票以建议功能:https://developercommunity.visualstudio.com/report?space=21&entry=suggestion.

但是,我们可以在 F12 中使用此 API 来更改组织管道常规设置作为解决方法。

POST https://dev.azure.com/{org}/_apis/Contribution/HierarchyQuery?api-version=5.0-preview.1
content-type: application/json
request body:
{
  "contributionIds": [
    "ms.vss-build-web.pipelines-org-settings-data-provider"
  ],
  "dataProviderContext": {
    "properties": {
      "badgesArePublic": "true",
      "sourcePage": {
        "url": "https://dev.azure.com/{org_name}/_settings/pipelinessettings",
        "routeId": "ms.vss-admin-web.collection-admin-hub-route",
        "routeValues": {
          "adminPivot": "pipelinessettings",
          "controller": "ContributedPage",
          "action": "Execute",
          "serviceHost": "{please check it in F12 when changing settings}"
        }
      }
    }
  }
}

这些设置的名称:

badgesArePublic: 禁止匿名访问徽章

enforceSettableVar:限制可以在排队时设置的变量

enforceJobAuthScope: 将作业授权范围限制为 non-release 管道的当前项目

enforceJobAuthScopeForReleases:将作业授权范围限制为发布管道的当前项目

enforceReferencedRepoScopedToken:保护对 YAML 管道中存储库的访问

disableStageChooser: 禁用舞台选择器

API 现已可用:https://docs.microsoft.com/en-us/rest/api/azure/devops/build/general-settings/update?view=azure-devops-rest-6.0

我可以通过以下 api:

更新构建 general-settings

curl -u user:password --location --request PATCH 'https://dev.azure.com/{organization}/{project}/_apis/build/generalsettings?api-version=6.0-preview.1' --data '{"enforceReferencedRepoScopedToken":false,"statusBadgesArePrivate":false,"enforceSettableVar":false,"enforceJobAuthScope ":false,"enforceJobAuthScopeForReleases":false,"publishPipelineMetadata":false}' --header "Content-type: application/json"