GitHub GraphQL 查询 - 按用户统计给定月份的 PR 评论
Posted
技术标签:
【中文标题】GitHub GraphQL 查询 - 按用户统计给定月份的 PR 评论【英文标题】:GitHub GraphQL Query - Count PR reviews by user for a given month 【发布时间】: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 按布尔属性进行过滤的方法。有没有办法将表达式传递给这些构造?
【问题讨论】:
【参考方案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
【讨论】:
以上是关于GitHub GraphQL 查询 - 按用户统计给定月份的 PR 评论的主要内容,如果未能解决你的问题,请参考以下文章