首页 文章

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

提问于
浏览
0

我试图使用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架构时,“评论”和“评论”对象似乎不能按日期过滤 . 我看到可用的过滤器是第一个,最后一个,作者和状态 . 有没有办法在GraphDB查询语言中表达这样的过滤器?

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

1 回答

  • 1

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

    新查询, Build 在您目前为止的基础上,并进行了一些修改:

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

相关问题