如何使用C#以编程方式从最新的Team City构建中下载工件?

时间:2016-11-17 20:41:45

标签: c# download teamcity artifacts build-server

我理解HTTPClient和GET过程。我在这里想要找到的是使用Team City的正确URL /语法。

我一直在尝试使用RestDocumentation

中的示例来实现这一点

但是,它们都需要buildId。这是一个不同的构建号,随着每个构建而变化。我已经尝试了几种与buildId=lastSuccesful的组合,但我似乎无法使语法正确。我已经能够创建一个链接,当粘贴到Web浏览器时成功下载特定的构建,但是,当我尝试以编程方式获取它时,我得到400 Unauthorized异常。

我在想,在使用REST API之前,我需要以某种方式登录Team City?

无论如何,这可能是一个非常简单的操作,我似乎无法破译执行它的步骤。

所以,这是我认为需要采取的步骤,但我不知道如何实现它们。

  1. 以编程方式登录Team City。 (现在这对我有用)
  2. 获取我项目最后一次成功构建的BuildID。 (帮助!!)
  3. 下载与上述版本相关联的工件。 (现在这对我有用)
  4. 我非常感谢能帮助你完成上述任务。

    谢谢!

1 个答案:

答案 0 :(得分:1)

感谢Hackerman让我走上正轨!!

所以,如果有人感兴趣,这就是答案..

  1. 使用guestAuth而不是httpAuth。这为您授权。
  2. 获取最新成功构建的内部版本号。 http://yourteamcityserver:8080/guestAuth/app/rest/buildTypes/id:yourprojectname/builds?count=1&status=SUCCESS

  3. 从您收到的XML中解析内部版本号。

  4. 下载工件(指定工件的文件名)。 http://yourteamcityserver:8080/guestAuth/app/rest/builds/id:theIDthatYOUparsedINstep3/artifacts/yourartifactname.zip
  5. 希望这可以节省你们中的一些时间,我花了很多时间来弄清楚这一切是如何运作的。

    再次感谢Hackerman !!!!