Github v4 GraphQL API - 访问 Marketplace 应用结果 (Travis CI)

Posted

技术标签:

【中文标题】Github v4 GraphQL API - 访问 Marketplace 应用结果 (Travis CI)【英文标题】:Github v4 GraphQL API - access Marketplace App results (Travis CI) 【发布时间】:2020-06-30 19:23:54 【问题描述】:

我们正在使用 Travis CI 为我们在 Github 上的一个存储库运行测试。 查看提交列表时,我们会看到绿色复选标记或红色叉号,表示我们的测试状态。

现在我正在试验 Github v4 GraphQL API。 我可以浏览 API(使用 GraphiQL 和 GraphiQL-explorer),但我无法在任何地方找到 Travis 测试的结果。

我可以使用 Github GraphQL API 来获取 Travis 结果吗?

【问题讨论】:

【参考方案1】:

当请求最后一次提交或提交列表(带有history)时,您可以访问带有state property 的status object:


  repository(owner: "bertrandmartel", name: "metec-braille-driver") 
    refs(first: 100, refPrefix: "refs/heads/") 
      nodes 
        target 
          ... on Commit 
            status 
              state
              contexts 
                description
                createdAt
                state
              
            
            history(first: 100) 
              nodes 
                message
                status 
                  state
                  contexts 
                    description
                    createdAt
                    state
                  
                
              
            
          
        
      
    
  

结果如下:

....
"status": 
  "state": "FAILURE",
  "contexts": [
    
      "description": "AppVeyor build failed",
      "createdAt": "2020-03-09T02:31:19Z",
      "state": "FAILURE"
    ,
    
      "description": "The Travis CI build passed",
      "createdAt": "2020-03-09T02:31:42Z",
      "state": "SUCCESS"
    
  ]
,
....

同样来自v3 doc:

状态的状态。可以是错误、失败、未决或 成功

【讨论】:

我尝试使用相同的查询,但在我们的例子中,结果是status: null,即使 github 网页上有绿色复选标记,如图所示(我刚刚添加)。知道这是为什么吗? @HendrikJan 也许您使用的令牌没有repo:status 范围?

以上是关于Github v4 GraphQL API - 访问 Marketplace 应用结果 (Travis CI)的主要内容,如果未能解决你的问题,请参考以下文章

使用 github API v4 graphQL 获取提交更改的文件和补丁

通过 Github Graphql v4 API 列出所有用户

GraphQL 复杂 cURL 查询(GitHub API v4)

Github Automerge 失败通知(API v4 GraphQL 变异 enablePullRequestAutoMerge)

如何将 Github API v4 (graphql) 与 javascript XMLHttpRequest 一起使用

GitHub API v4:如何使用分页进行遍历? (GraphQL)