我正在尝试使用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进行布尔属性过滤的方法。有没有办法将表达式传递给这些构造?
答案 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
}
}
}
}
}
}
}