如何通过TeamCity REST API指定多个标记来获取构建?
我有一些建筑。每个构建有两个标记。标记显示模块名称和版本。因此,标签类似于如何通过TeamCity REST API指定多个标记来获取构建?,rest,teamcity,teamcity-9.0,teamcity-rest-api,Rest,Teamcity,Teamcity 9.0,Teamcity Rest Api,我有一些建筑。每个构建有两个标记。标记显示模块名称和版本。因此,标签类似于one模块和1.2.3或two模块和4.5.6 我可以这样做: /httpAuth/app/rest/builds/?locator=tags:one-module,branch:unspecified:any&fields=build(tags(tag)) 我会得到这个: { "build": [ { "tags": { "tag": [ {
one模块
和1.2.3
或two模块
和4.5.6
我可以这样做:
/httpAuth/app/rest/builds/?locator=tags:one-module,branch:unspecified:any&fields=build(tags(tag))
我会得到这个:
{
"build": [
{
"tags": {
"tag": [
{
"name": "1.2.4"
},
{
"name": "one-module"
}
]
}
},
{
"tags": {
"tag": [
{
"name": "1.2.3"
},
{
"name": "one-module"
}
]
}
}
]
}
现在我想获得最新版本,带有标签one module
和1.2.4
。我怎么能做到
我试试这个:
/httpAuth/app/rest/builds/?locator=tags:one-module,1.2.4,branch:unspecified:any&fields=build(tags(tag))
但我明白了:
Error has occurred during request processing (Bad Request).
Error: jetbrains.buildServer.server.rest.errors.LocatorProcessException: Bad locator syntax: Invalid dimension name :'1.2.4'. Should contain only alpha-numeric symbols or be known one. Details: locator: 'tags:one-module,1.2.4,branch:unspecified:any', at position 16
Invalid request. Check locator is specified correctly.
我有TeamCity 9.1.6版。TeamCity REST API BuildLocator说:
标记:-“,”(逗号)-一个带分隔符的生成标记列表(仅限生成)
包含所有指定的标记(将返回)
因此,我尝试选择像这样的2个或更多标签构建。这不管用
我做错了什么?如何通过两个或多个标记获取构建最新版本?我意外地找到了通过两个或多个标记获取构建的方法 解决方案:以这种方式使用构建定位器:
标记:(一个标记、两个标记、三个标记等)
我不确定这是正确的解决方案。如果正确的话,JetBrains只是忘记了更新TC REST API的文档。或者这只是TeamCity内部的东西。我在对文档的评论中询问了这些问题。由于Teamcity 10,您也可以只列出几个标记子句(或“非”标记子句),例如:
奇怪的是,我还没有找到一种方法来选择包含多个标记的构建。上述任一解决方案都可以用于获取包含多个标记的构建。这一个现在是遗留的:
标记:(一个标记、两个标记、三个标记等)
。
建议这样做:tag:one tag,tag:two tag
不幸的是,您不能使用多个“not”标记子句(在传统语法或当前语法中)
如果您试图在遗留语法中使用多个“not”标记子句,您只会得到一个糟糕的结果——即一个或多个构建只排除一个排除的标记;如果使用当前语法,则会收到400个错误请求,但出现以下异常:“定位器中只支持单个“not”维度。”
http://server/guestAuth/app/rest/builds?locator=defaultFilter:false,tag:sel,not:tag:unres