You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过TeamCity REST API重建指定ID的成功构建?

通过TeamCity REST API重建指定版本的构建

没问题,我来帮你搞定这个需求——TeamCity的REST API确实支持复刻指定构建(也就是和UI里点「使用相同版本运行构建...」完全一致的操作),具体步骤如下:

第一步:获取原构建的关键信息

首先你需要拿到ID为104421的构建的详细数据,特别是它的构建类型ID、自定义参数以及VCS版本号。用GET请求调用API:

GET http://<你的TeamCity服务器地址>/app/rest/builds/id:104421

替换掉<你的TeamCity服务器地址>,记得带上身份验证(可以用用户名密码或者令牌)。从返回的JSON响应里,你需要提取:

  • buildType.id:也就是这个构建所属的构建配置ID
  • properties.property:原构建使用的所有自定义参数(键值对形式)
  • vcs-root-entries下每个VCS根的id和对应的revision:这是保证复用原版本代码的关键

第二步:发起复刻构建请求

接下来用POST请求把构建加入队列,请求地址是:

POST http://<你的TeamCity服务器地址>/app/rest/buildQueue

请求头要设置Content-Type: application/json,请求体需要包含刚才提取的信息,示例如下:

{
  "buildType": { "id": "提取到的构建配置ID" },
  "properties": {
    "property": [
      { "name": "param1", "value": "原构建中param1的值" },
      { "name": "param2", "value": "原构建中param2的值" }
    ]
  },
  "vcs-root-entries": [
    {
      "vcs-root": { "id": "VCS根ID1" },
      "revision": "原构建中该VCS根的版本号"
    },
    {
      "vcs-root": { "id": "VCS根ID2" },
      "revision": "原构建中该VCS根的版本号"
    }
  ]
}

关键注意点:

  • 如果你的构建没有自定义参数,可以省略properties部分,但必须指定VCS的revision,否则TeamCity会拉取最新代码,而不是复用原构建的版本
  • 确保你的API账号拥有该构建配置的「Build」权限,否则请求会被拒绝
  • 可以用curl快速测试,比如:
    # 先获取原构建信息
    curl -u 用户名:密码 http://your-teamcity-server/app/rest/builds/id:104421 > build-details.json
    
    # 整理好请求体后发起构建
    curl -u 用户名:密码 -H "Content-Type: application/json" -X POST -d @rebuild-request.json http://your-teamcity-server/app/rest/buildQueue
    

这个方法完全复刻了UI里「使用相同版本运行构建」的逻辑,会使用和原构建104421完全相同的参数、代码版本来启动新构建。

内容的提问来源于stack exchange,提问作者Yaric Y

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:50:08