如何通过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