1

问题

如何从任意开源项目中获取特定 GitHub 提交的 Travis CI 的构建状态?

例子

例如,任意 GitHub 用户(具有 Travis 帐户)如何根据以下信息查询此构建的通过/失败构建状态:

  • 用户名:a-t-0
  • 存储库:Code-LatexReportTemplate
  • 分支:main
  • 犯罪:2758dc700dfaa9726f0e1755753347b4d450acda

尝试

为了获得该提交的状态,我尝试了:

  1. 获取命令:
GET /repos/a-t-0/Code-LatexReportTemplate/commits/2758dc700dfaa9726f0e1755753347b4d450acda/status

什么都不返回。

  1. 卷曲命令:
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/repos/a-t-0/Code-LatexReportTemplate/commits/2758dc700dfaa9726f0e1755753347b4d450acda/status

这会返回很多信息,但会返回一个空的状态信息,如下面所选输出所示:

 "state": "pending",
  "statuses": [

  ],

这个空状态信息似乎与该提交上的绿色检查标志相矛盾,该标志显示该提交上的构建通过

4

1 回答 1

1

您可以像这样使用 Github API rest v3使用check-run api

GET https://api.github.com/repos/[owner]/[repo]/commits/[hash]/check-runs

示例:https ://api.github.com/repos/at-0/Code-LatexReportTemplate/commits/2758dc700dfaa9726f0e1755753347b4d450acda/check-runs

对于检查套件

GET https://api.github.com/repos/[owner]/[repo]/commits/[hash]/check-suites

示例:https ://api.github.com/repos/at-0/Code-LatexReportTemplate/commits/2758dc700dfaa9726f0e1755753347b4d450acda/check-suites

使用graphql API,您可以使用statusCheckRollup字段:

query {
  repository(name: "Code-LatexReportTemplate", owner:"a-t-0"){
    object(oid: "2758dc700dfaa9726f0e1755753347b4d450acda") {
      ... on Commit {
        message
        statusCheckRollup {
          state
          contexts(first: 100) {
            nodes {
              __typename
              ... on CheckRun {
                name
                detailsUrl
                completedAt
                status
              }
            }
          }
        }
      }
    }
  }
}

返回:

{
  "data": {
    "repository": {
      "object": {
        "message": "Removed another unneeded file.",
        "statusCheckRollup": {
          "state": "SUCCESS",
          "contexts": {
            "nodes": [
              {
                "__typename": "CheckRun",
                "name": "Travis CI - Branch",
                "detailsUrl": "https://travis-ci.com/github/a-t-0/Code-LatexReportTemplate/builds/211162054",
                "completedAt": "2020-12-29T13:12:26Z",
                "status": "COMPLETED"
              }
            ]
          }
        }
      }
    }
  }
}

结帐状态checkrollupcontextcheckrun

于 2021-02-21T19:55:24.483 回答