我正在针对Azure Devops的自定义扩展进行开发,该扩展已经包含服务终结点:
instanceof
此外,我想创建一个定制的Release Artifact来源:
"type": "ms.vss-endpoint.service-endpoint-type"
在this documentation之后,我目前的工作是使用外部API填充Artifact Source下的字段。我在下面的“ resultSelector”和“ resultTemplate”中尝试了多种模式,但找不到适合我的模式。
在我的示例中,我想将所有uri值都放在json响应的“ builds”下,并将其显示在Artifact Source的“ definition” inputDescriptor中。我的所有尝试都导致一个空的组合框,即使我可以看到请求已到达所需的API。
我想解析到组合框中的json:
“type”: “ms.vss-releaseartifact.release-artifact-type”
能帮我创建“ Mustache”模式来检索上述“ uri”值吗?
我尝试过:
{
"builds": [
{
"uri": "/build1",
"lastStarted": "2018-11-07T13:12:42.547+0000"
},
{
"uri": "/build2",
"lastStarted": "2018-11-09T15:40:30.315+0000"
},
{
"uri": "/build3",
"lastStarted": "2018-11-12T17:46:24.805+0000"
}
],
"uri": "https://<server-address>/api/build"
}
似乎无效。
如果有帮助,这里有更多信息。
服务端点的数据源:
$.builds[*].uri
工件来源:
"dataSources": [
{
"name": "TestConnection",
"endpointUrl": "{{endpoint.url}}/api/plugins",
"resourceUrl": "",
"resultSelector": "jsonpath:$.values[*]",
"headers": [],
"authenticationScheme": null
},
{
"name": "BuildNames",
"endpointUrl": "{{endpoint.url}}/api/build",
"resultSelector": "jsonpath:$.builds[*].uri"
},
{
"name": "BuildNumbers",
"endpointUrl": "{{endpoint.url}}/api/builds/{{definition}}",
"resultSelector": "jsonpath:$.buildsNumbers[*].uri"
}
]
我们将不胜感激。
答案 0 :(得分:0)
此案例的有效组合是:
数据源:
{
"name": "BuildNames",
"endpointUrl": "{{endpoint.url}}/api/build",
"resultSelector": "jsonpath:$.builds[*]"
}
dataSourceBindings:
{
"target": "definition",
"dataSourceName": "BuildNames",
"resultTemplate": "{ \"Value\" : \"{{{uri}}}\", \"DisplayValue\" : \"{{{uri}}}\" }"
}