什么是正确的 Travis API 调用(或库方法)来首先启动和观察构建,然后检索其状态和构建日志?

What are the correct Travis API calls (or library methods) to first start and watch a build and later retrieve its status and build log?

在我的一个应用程序中,我想触发 Travis CI 构建,"watch" 按计划构建,运行 并完成,然后检索最终构建状态以及将其输出到我的应用程序中的构建日志。

我从 triggering a build with the API 开始,它给了我 Request 及其 request.id。这非常有效。

这听起来效率很低。

有没有更好的方法来实现这个?
从创建 requestlog 是否存在 "quicker way"(= 更少的请求)?
我能以某种方式避免手动轮询吗?

我将使用这个答案来记录我自己的研究,这可能有助于解决这个问题:

  1. Travis CI API 支持 eager loading via ?include。使用这个,我已经可以通过扩展 Build 对象在 Request 响应中获得 Job.id?include=request.builds - 我不必再向 [=15 发出请求=] Job.id 的端点。但是因为我需要轮询状态更改,所以这并没有多大帮助。

  2. 正如@Maël Pedretti 在评论中建议的那样,Travis 支持 webhook notifications. The submitted object 包含一个 id,即 Build.id,因此这可以替换轮询部分 I如上所述。由于我的应用程序不只是 运行 在一台服务器上可以配置为 webhook url,所以我需要一个有状态的服务器组件,我的应用程序可以轮询或收听。所以只是马交易:/