TeamCity API设置配置参数

时间:2016-08-22 14:13:30

标签: teamcity teamcity-9.0 teamcity-8.0

我有配置参数 current_build_date (用户自定义参数)我想通过API TeamCity将此参数设置为当前日期。

在我看过的文档上:

http://teamcity:8111/httpAuth/app/rest/buildTypes/<buildTypeLocator>/parameters/<parameter_name>

我知道构建配置ID ,但我无法理解如何使 buildTypeLocator

我假设结果将是这样的:

 curl -u Login:Password \
      -X PUT \
      -d 'valueOfMyParam' \
      -H 'Content-Type: text/plain' \
      http://teamcity:8111/httpAuth/app/rest/buildTypes/<buildTypeLocator>/parameters/current_build_date

如果知道TeamCity API的人会帮我解决这个问题,我将非常感激。

我尝试过传递而不是buildTypeLocator我的Build配置ID而且我得到了错误:

[17:08:25][Step 3/3] Error has occurred during request processing (Not Found).
[17:08:25][Step 3/3] Error: jetbrains.buildServer.server.rest.errors.NotFoundException: No project found by name or internal/external id 'BuildConfigurationID'.

如果我的问题有任何问题或含糊不清,请添加评论,我会尽力解决。

2 个答案:

答案 0 :(得分:3)

如果您在浏览器中浏览REST API端点,您将能够看到构建定位器的格式。

访问http://teamcity:8111/httpAuth/app/rest/buildTypes/,您会看到条目的href属性包含buildLocator(通常是属性:值组合)

enter image description here

然后,您就可以使用该网址进行导航/通过API进行通信

enter image description here

希望这有帮助

答案 1 :(得分:0)

我解决了问题:构建类型定位器是 id:构建配置ID

current_build_date=`date +%%Y-%%m-%%d:%%H:%%M:%%S` 
echo $current_build_date;
curl -u Login:Password \
              -X PUT \
              -d $current_build_date \
              -H 'Content-Type: text/plain' \
              https://teamcity.billing.ru/httpAuth/app/rest/buildTypes/id:Build

configuration ID/parameters/current_build_date