Github GraphQL API returns 每个上下文只有最后一个状态上下文

Github GrapQL API returns only the last StatusContext for each context

我交叉发布来自 here 的问题。

我想知道是否可以使用 GQL API.

获取给定引用的所有上下文的所有状态

我目前正在做的查询如下:

{
  repository(owner: "owner", name: "name") {
    pullRequests(headRefName: "head-ref", last: 1) {
      nodes {
        id
        commits(first: 10) {
          nodes {
            commit {
              oid
              status {
                contexts {
                  context
                  createdAt
                  id
                  description
                  state
                }
              }
            }
          }
        }
      }
    }
  }
}

此查询 returns 每个状态上下文的单个状态,这些是每个状态的最后一个:

{
  "data": {
    "repository": {
      "pullRequests": {
        "nodes": [
          {
            "id": "some-id",
            "commits": {
              "nodes": [
                {
                  "commit": {
                    "oid": "some-oid",
                    "status": {
                      "contexts": [
                        {
                          "context": "context-1",
                          "createdAt": "2021-07-06T21:28:26Z",
                          "id": "***",
                          "description": "Your tests passed!",
                          "state": "SUCCESS"
                        },
                        {
                          "context": "context-2",
                          "createdAt": "2021-07-06T21:25:26Z",
                          "id": "***",
                          "description": "Your tests passed!",
                          "state": "SUCCESS"
                        },
                      ]
                    }
                  }
                }
              ]
            }
          }
        ]
      }
    }
  }
}

另一方面,如果我在这个查询中使用 REST API:

curl -i -u se7entyse7en:$(cat token) https://api.github.com/repos/owner/name/commits/some-oid/statuses

其中 some-oid 是使用 GQL API 检索到的对应对象,输出包含所有状态。特别是,我可以看到在 GQL API.

返回的那些之前发生的 context-1 和 context-2 的所有状态

鉴于 StatusContext 是一个节点而不是节点列表,这似乎是 GQL 模式的限制。基本上,我希望 StatusContext 是 [Status!] 类型!其中 Status 表示给定上下文的单个状态。

我错过了什么吗?这是否有望在未来改变? REST API 是唯一的选择吗?

谢谢。

我打开了一个支持票,这确实是预期的行为,没有改变它的计划。唯一的解决方案是使用 REST API.

社区论坛的link是this one