我正在开发一个关于开源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服务请求提供了必填标题(Accept
和Authorization
)。但是,当我尝试获取项目的构建历史记录(例如Octokit/Octokit.net
)时,我始终会收到"Project not found or access denied."
。
因此,我是否认为 AppVeyor 仅限制对已注册项目协作者的构建信息的访问权?
谢谢!
答案 0 :(得分:0)
要验证master
分支的最新提交是否具有关联的CI构建,您甚至不需要调用CI API - 所需的信息已经在GitHub上了!您需要的只是使用Statuses API检查提交状态。每个CI系统都有自己独特的状态context
值。例如,AppVeyor上下文从continuous-integration/appveyor
开始。