【问题标题】:GitHub GraphQL Query - Count PR reviews by user for a given monthGitHub GraphQL 查询 - 按用户统计给定月份的 PR 评论
【发布时间】:2019-01-29 00:28:30
【问题描述】:

我正在尝试使用 GitHub 的 GraphQL 界面来查询特定月份在 GitHub 存储库中审查​​的 PR 数量。

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

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
            }
          }
        }
      }  
    }
  }
}

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

当我查看 GitHub GraphDB 架构时,“评论”和“cmets”对象似乎无法按日期过滤。我看到可用的过滤器是第一个、最后一个、作者和状态。有没有办法在 GraphDB 查询语言中表达这样的过滤器?

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

【问题讨论】:

    标签: graphql github-api github-graphql


    【解决方案1】:

    您可以尝试使用Github GraphQL's search(更多的是 v3 REST 结构,但在 v4 graphQL 中仍然可用)。 query 字符串指定最后更新的拉取请求的所有者、repo 名称、date range(作为创建 cmets/reviews 时间的近似值),然后键入 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
                }
              }
            }
          }
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-23
      • 2021-08-12
      • 1970-01-01
      • 2021-04-26
      • 2020-01-09
      • 1970-01-01
      • 1970-01-01
      • 2020-03-01
      相关资源
      最近更新 更多