GitHub GraphQL查询-计算给定月份用户的PR评论

时间:2018-08-22 17:14:08

标签: graphql github-api github-graphql

我正在尝试使用GitHub的GraphQL接口查询特定月份在GitHub存储库中审阅的PR的数量。

理想情况下,我只想提取在特定时间范围内进行的评论和评论。最终,我想按用户将结果分组。

userA  10 reviews during month
userB  6 reviews during month
userC  4 reviews during month

这是我到目前为止创建的查询。

{
  repository(owner: "DSpace", name: "DSpace") {
    pullRequests(last: 50) {
      nodes {
        state
        resourcePath
        comments (last: 100) {
          nodes {
            author {
              login
            }
          }
        }
        reviews(last: 100) {
          nodes {
            state
            author {
              login
            }
          }
        }
      }  
    }
  }
}

我怀疑我将需要遍历所有请求请求,然后过滤特定日期范围内的评论/评论。

当我查看GitHub GraphDB模式时,“ reviews”和“ comments”对象似乎无法按日期过滤。我看到可用的过滤器是第一,最后,作者和状态。有什么方法可以用GraphDB查询语言表达这种过滤器吗?

我看到GraphQL提供了一种使用@include和@skip进行布尔属性过滤的方法。有没有办法将表达式传递给这些构造?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用Github GraphQL's search(更多的v3 REST结构,但仍在v4 graphQL中可用)。 query字符串指定所有者,存储库名称,上次更新的拉取请求的date range(用作创建注释/评论的近似时间),并键入pr

新查询基于您已有的内容进行了一些修改:

{
  search(first: 100, query: "repo:DSpace/DSpace updated:2018-11-01..2018-12-01 type:pr", type: ISSUE) {
    nodes {
      ... on PullRequest {
        # use part of your original query from here onward
        state
        resourcePath
        comments(last: 100) {
          nodes {
            author {
              login
            }
          }
        }
        reviews(last: 100) {
          nodes {
            author {
              login
            }
          }
        }
      }
    }
  }
}