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

GitHub GraphQL查询-按用户统计给定月份的PR评论,graphql,github-api,github-graphql,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") {

我正在尝试使用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”对象似乎不能按日期过滤。我看到可用的过滤器是first、last、author和state。有没有办法用GraphDB查询语言来表达这样的过滤器

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

您可以尝试使用(更多的是v3 REST构造,但在v4 graphQL中仍然可用)。该字符串指定上次更新的拉取请求的所有者(repo name)(作为创建评论/评论时的近似值)并键入
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
            }
          }
        }
      }
    }
  }
}