powershell - 用户 PowerShell 在 Azure Devops 中对生成进行排队
问题描述
堆栈中有一些相关的问题,我将它们放在下面。我正在使用 Azure DevOps api 5.1 并尝试将构建排队。
{
"Definition": {
"id": "7"
}
}
这将使用已在定义中设置的变量对构建进行排队。我试图以几种不同的方式传递变量,这两种方式最终都没有被 API 认可。
{
"Definition": {
"id": "7",
"variables": {
"tag": "@{value=v1.1.0}",
"system.debug": "@{value=true}"
}
}
}
根据我也尝试过的一些相关问题
{
"Definition": {
"id": "7",
"parameters": {
"tag": "@{value=v1.1.0}",
"system.debug": "@{value=true}"
}
}
}
在通过 UI 对构建进行排队时捕获 chrome 的输出后,它似乎期望变量而不是参数,但是当我返回查看构建时我看到的是传入的变量没有得到尊重。此外,我已经采用了我希望运行的定义并将其隐藏到上面的 body.definition 中。
请让我知道我是否应该添加更多细节我没有放实际代码,但这很简单
Invoke-RestMethod -Method post -Uri $uri -Headers $Header -ContentType 'application/json' -Body ($Body |ConvertTo-Json -Compress -Depth 10)
解决方案
在启动邮递员并找到一个集合之后,我尝试传递变量的方式似乎存在两个问题。
问题 1:变量与参数
即使基于这里的几个问题以及捕获从 Web 浏览器到 devops 的流量。您不能将变量用作定义的一部分,它必须是参数。此外,它们似乎不能嵌套在定义(body.definition.parameters)中,它们必须与定义(body.parameters)处于同一级别。
问题2:格式
参数值必须是压缩的json,另外不能是对象,必须是variable:value。
{
"definition": {
"id": 7
},
"parameters": "{\"tag\":\"v3.2.1\"},\"system.debug\":\"true\"}"
}
我觉得我之前可能在我上面发布的相关问题之一中看到过这个答案。为所有重复的努力道歉。
推荐阅读
- python - 张量的形状与提供的形状不兼容,Keras Tuner 中的错误
- java - Java代码检测CSV文件中的特殊字符
- android - 现在不推荐使用 BluetoothAdapter.getDefaultAdapter() 我该使用什么?
- r - RMarkdown 显示为黑框
- python - Pandas - 根据其他列的名称创建具有值的新列
- python - 我无法在 python shell 中创建对象,因为我无法使用“from products.models import Product”行导入我的应用程序
- perl - 如何在 perl 中使用单个正则表达式将一行划分为代码和注释?
- php - 如何在费率计算之前删除运输方式?
- spring - 获取 @RenderMapping 以返回外部 url
- python-3.x - 从函数传递 DF