【问题标题】:Getting open source project's build history via AppVeyor API通过 AppVeyor API 获取开源项目的构建历史
【发布时间】:2017-03-25 08:06:14
【问题描述】:

我正在对开源 GitHub 存储库进行研究,我想了解有关存储库的以下特定信息:它当前是否使用 CI 服务。

为了做到这一点,我找到*.yml 配置文件,识别 CI 提供者并查询其 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 将构建信息的访问权限仅限于已注册的项目合作者的假设是否正确?

谢谢!

【问题讨论】:

    标签: git appveyor


    【解决方案1】:

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

    【讨论】:

    • 另外*.yml 配置文件不是很确定。对于 AppVeyor,客户可以在 UI、appveyor.yml.appveyor.yml 或任何自定义名称中进行配置。它也可以在远程 HTTP 位置。更多信息appveyor.com/docs/build-configuration/#configuring-build.
    • 感谢您的提示,我想,我一直在朝错误的方向挖掘! Status API 正是我所需要的。尽管由于限制,我希望尽量减少 GitHub API 请求的数量。但无论如何,这只是一个请求,并没有太大的区别。
    猜你喜欢
    • 1970-01-01
    • 2016-05-14
    • 2020-08-01
    • 2014-12-22
    • 1970-01-01
    • 2013-09-21
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    相关资源
    最近更新 更多