【问题标题】:Get latest travis build status of a repo through travis API通过 travis API 获取 repo 的最新 travis 构建状态
【发布时间】:2015-09-07 23:01:05
【问题描述】:

我需要通过他们的 API 获取 repo 的最新 travis 构建状态。我需要与构建状态徽章相同的行为,即当“推送”通过时它显示通过,即使较新的“pull_request”失败。

实现的一种方法是使用this 列出回购的所有构建,然后反向遍历,直到找到不是拉取请求的构建,然后检查其状态。

但是,必须有一种简短的方法来执行此操作,因为构建状态徽章使用相同的行为。每次遍历构建只是为了获得最后的构建状态似乎很痛苦。

构建状态批处理使用什么 API 端点直接获取存储库的最后“推送”构建状态?

【问题讨论】:

    标签: github build continuous-integration travis-ci


    【解决方案1】:

    最简单的解决方案是不使用 Travis API,而是使用构建状态标记。测试“通过”或“失败”作为文本嵌入到 SVG 图像中:

    curl -s 'https://api.travis-ci.org/$USER/$REPO.svg?branch=$BRANCH' | grep pass
    curl -s 'https://api.travis-ci.org/$USER/$REPO.svg?branch=$BRANCH' | grep fail
    

    【讨论】:

      【解决方案2】:

      除非您知道 build.id,否则我认为最好的方法是使用您所引用的 API 并传入查询参数 limit。像这样的:

      repo/{repository.id}/builds/builds?limit=1
      repo/{+repository.slug}/builds/builds?limit=1
      

      响应仍然是一个数组,但索引 0 将是最新的构建。 limit 没有记录,但 Travis 将其用于分页。

      【讨论】:

      • 你的请求中有一个太多的builds关键字
      【解决方案3】:

      感谢您的提问,我希望实现同样的目标,here 是 API 应该如何工作的一些详细示例。我从中派生了以下步骤,以使用 Travis CI 获取存储库默认分支的构建状态。以下是详细说明:

      TLDR

      travis status -r a-t-0/sponsor_example --com --token <your personal Travis token>
      

      详细说明

      1. 打开终端并登录以使用 Travis Api。你可以先获取一个 Travis 令牌,然后从终端使用 git 登录:
      travis login --com --auto
      
      1. 如果这不起作用(返回 Not Found),您应该手动添加 GitHub 令牌。 来源:https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token

        2.1 要获取此令牌,请先发送verify your github 电子邮件地址(如果您尚未这样做)。

        2.2 转至:https://github.com/settings/tokens

        2.3 添加新令牌并选择:

        2.3.1 私有仓库的repo控制

        2.3.2 admin:org 控制组织和团队,读写组织项目

        2.3.3 admin:repo_hook 完全控制存储库挂钩

        2.3.4 admin:org_hook 控制组织

        2.4 记下来自 github 的秘密个人访问令牌。它的形式可以是:1somelettersandsomenumbersordigitsandth4

        2.5 接下来,使用此令牌登录 Travis 的 --pro--com--org 帐户类型:

      travis login --pro --github-token 1somelettersandsomenumbersordigitsandth4
      travis login --com --github-token 1somelettersandsomenumbersordigitsandth4
      travis login --org --github-token 1somelettersandsomenumbersordigitsandth4
      

      应该返回:Successfully logged in as &lt;your github username&gt;!

      2.6 请注意,api 调用许可证分为三种类型:pro、com、org。这在 `travis status -h

      中可见

      2.7 获取您的专业代币:

      travis token --pro
      Your access token is <somepersonalprotoken>
      

      2.8 获取您的 --org 令牌:

      travis token --org
      Your access token is <somepersonalorgtoken>
      

      2.9 获取您的 --com 令牌:

      travis token --com
      Your access token is <somepersonalcomtoken>
      
      1. 在运行测试之前将您的 travis 令牌导出到终端:
      COM_TRAVIS_TOKEN="<your secret travis pro/com token>"
      
      1. 通过以下方式获取构建状态:
      travis status -r {your GitHub username}/{your repo name} --com --token $COM_TRAVIS_TOKEN
      
      1. 例如
      travis status -r a-t-0/sponsor_example --com --token $COM_TRAVIS_TOKEN
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-19
        相关资源
        最近更新 更多