2

我曾尝试使用定义更新 api来尝试更新“YAML 的默认代理池”,但没有成功。我不断收到“200”响应状态码,但设置保持不变。

我还尝试在通过 UI 手动执行更新时捕获实际的请求内容,然后几乎将相同的内容复制到请求的正文中,但结果保持不变。

以下是我正在使用的请求示例:

调用-WebRequest-URI"https://dev.azure.com/***/***/_apis/build/definitions/***?api-version=6.1-preview.7" -Method PUT -ContentType "application/json" -Headers @{ Authorization = "Basic ***" } -Body '{***}'

正文采用 JSON 格式:

{
...
    "queue": {
        "id": 882,
        "name": "Azure Pipelines",
        "pool": {
            "id": 17,
            "name": "Azure Pipelines",
            "isHosted": true
        }
    },
...
}

更新 按照 Microsoft 团队的建议,该功能不受支持。我在此处记录了对该功能的建议。

4

1 回答 1

1

现在似乎已启用,但通过一组不同的属性。您可以通过以下属性设置默认池:

process.phases.target.agentSpecification.identifier

相关片段如下所示:

"process": {
    "phases": [
        {
            "name": "NameGoesHere",
            "target": {
                "agentSpecification": {
                    "identifier": "windows-latest"
                }
            }
        }
    ]
}

作为公平的警告:我发现如果我的有效负载中有错误的修订号,API 将响应 200,但池不会改变。当我试图通过 UI 重置池以证明 API 调用有效时,这一点尤其值得注意。GET从本质上讲,执行 a ,修改该有效负载,然后将其发送到PUT中间没有任何其他操作可能是一个好主意。

于 2022-01-27T18:18:34.740 回答