【问题标题】:How do you programatically download the artifacts from the latest Team City build using C#?您如何使用 C# 以编程方式从最新的 Team City 构建中下载工件?
【发布时间】:2016-11-17 20:41:44
【问题描述】:

我了解 HTTPClient 和 GET 过程。我要在这里找到的是正确的 URL/语法,以使其与 Team City 一起使用。

我一直在尝试使用RestDocumentation 中的示例来使其正常工作

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

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

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

所以,这是我认为需要执行的步骤,但我不知道如何完成它们。

  1. 以编程方式登录 Team City。 (这现在对我有用)
  2. 为我的项目获取最后一次成功构建的 BuildID。 (帮助!!)
  3. 下载与上述构建相关的工件。 (这现在对我有用)

我将不胜感激任何帮助完成上述工作。

谢谢!!

【问题讨论】:

  • 您是否按照认证步骤操作:confluence.jetbrains.com/display/TCD10/…
  • 优秀。现在我使用 guestAuth 而不是 httpAuth,我可以从特定构建中下载工件。 (YAY !!!) 但是,仍然存在找出最近成功构建的 buildID 的问题。谢谢!!

标签: c# download teamcity artifacts build-server


【解决方案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

希望这可以为你们中的一些人节省我花在弄清楚这一切如何运作的时间。

再次感谢哈克曼!!!!

【讨论】:

    猜你喜欢
    • 2019-06-20
    • 1970-01-01
    • 2017-08-15
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多