通过AppVeyor API

时间:2017-03-25 08:06:15

标签: git appveyor

我正在开发一个关于开源GitHub存储库的研究过程,我希望得到关于存储库的这一特定信息:它是否正在使用CI服务。

为了做到这一点,我找到*.yml配置文件,识别CI提供程序并查询其API以获取最新的构建历史记录。然后我可以验证master分支的最新提交是否具有关联的CI构建。

例如,如果项目使用 Travis ,那么查询https://api.travis-ci.org/repos/{owner}/{repo}/builds会向我提供有关最新50个版本的信息,这正是我需要的。

但我在使用 AppVeyor 时遇到了一些问题。根据他们的documentation,可以通过以下方式获取构建历史记录:https://ci.appveyor.com/api/projects/{accountName}/{projectSlug}/history?recordsNumber={records-per-page}。因此,API服务请求提供了必填标题(AcceptAuthorization)。但是,当我尝试获取项目的构建历史记录(例如Octokit/Octokit.net)时,我始终会收到"Project not found or access denied."

因此,我是否认为 AppVeyor 仅限制对已注册项目协作者的构建信息的访问权?

谢谢!

1 个答案:

答案 0 :(得分:0)

要验证master分支的最新提交是否具有关联的CI构建,您甚至不需要调用CI API - 所需的信息已经在GitHub上了!您需要的只是使用Statuses API检查提交状态。每个CI系统都有自己独特的状态context值。例如,AppVeyor上下文从continuous-integration/appveyor开始。