当我使用github-api v3 Search API提交评论并提交评论请求时,是否可以查询?

时间:2019-01-28 06:50:31

标签: github-api

我正在尝试查询GitHub Search API,以获取通过提交请求请求的评论而做出的贡献。

在GitHub上的个人资料页面上,有一个“贡献活动”,并且有一个窗格“在Y储存库中审阅了X个提取请求”。展开时,我会看到通过评论提交做出的贡献的列表,其中包括诸如“我做出贡献的时间”之类的信息。我确认这不是创建,合并,更新请求请求的日期。

是否可以通过GitHub Search API提取“我发表评论时”?

reviewed date on profile page

1 个答案:

答案 0 :(得分:0)

您可以使用GraphQL Api v4并针对搜索查询中的每个请求请求按作者过滤评论:

{
  search(query: "reviewed-by:eps1lon is:pr updated:2019-01-01..2019-01-31", type: ISSUE, first: 100) {
    issueCount
      nodes {
        ... on PullRequest {
          repository {
            nameWithOwner
          }
          number
          reviews(author: "eps1lon", last: 1) {
            nodes {
              createdAt
              lastEditedAt
              publishedAt
              body
            }
          }
        }
    }
  }
}

Try it in the explorer

如果结果超过100,则需要iterate over all the results

要格式化结果并按日期排序,您可以使用之类的json解析器。使用

user=eps1lon
date_range=2019-01-01..2019-01-31
token=YOUR_TOKEN

curl -s -H "Authorization: bearer $token" -d '
{
    "query": "query {search(query: \"reviewed-by:'"$user"' is:pr updated:'"$date_range"'\", type: ISSUE, first: 100) {issueCount nodes {... on PullRequest {repository {nameWithOwner}number reviews(author: '"$user"', last: 1) {nodes {createdAt lastEditedAt publishedAt body}}}}}}"
}
' https://api.github.com/graphql | \
  jq '[ 
        .data.search.nodes[] | 
        {
            repo:.repository.nameWithOwner, 
            number:.number, 
            createdAt:.reviews.nodes[0].createdAt, 
            publishedAt:.reviews.nodes[0].publishedAt,
            lastEditedAt: .reviews.nodes[0].lastEditedAt
        } | 
        select (.createdAt >= "2019-01-01") ] | 
        sort_by(.createdAt) | 
        reverse'