通过 AppVeyor 获取开源项目的构建历史 API

Getting open source project's build history via AppVeyor API

我正在对开源 GitHub 存储库进行研究,我想了解有关存储库的这条特定信息:它当前是否正在使用 CI-service 与否。

为此,我找到 *.yml 配置文件,识别 CI-provider 并查询其 API 以获取最新的构建历史记录。然后我可以验证 master 分支的最新提交是否有关联的 CI-build.

例如,如果项目使用 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 仅限注册项目合作者访问构建信息是否正确?

谢谢!

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

开始