Есть ли быстрый способ получить количество комментариев всех открытых запросов - PullRequest
1 голос
/ 03 ноября 2019

У меня есть требование найти количество комментариев во всех открытых запросах на получение доступа к хранилищу

Единственный способ, которым я знаю, - это получить все открытые запросы на получение данных из репозитория, повторить каждый запрос на получение и выполнить такой вызов

GET /repos/:owner/:repo/pulls/:pull_number/comments

и суммируйте эти ответы, но это слишком дорого

Я также пытался использовать этот метод (Найти комментарии по обзору всех PR в репо)

GET /repos/:owner/:repo/pulls/comments

и передано состояние = open как параметр запроса, подобный этому

https://api.github.com/repos/angular/angular/pulls/comments?per_page=30&state=open

Но он возвращает обзорные комментарии по всем запросам на получение *

Любые усилия будут оценены

1 Ответ

1 голос
/ 03 ноября 2019

Используя Github API Rest v3 , вы можете использовать поисковый запрос следующим образом:

https://api.github.com/search/issues?q=is:pr%20state:open%20repo:angular/angular&per_page=100

Вы можете использовать GraphQL API v4 используя следующий запрос:

{
  repository(owner: "angular", name: "angular") {
    pullRequests(states: OPEN, first: 100) {
      nodes {
        title
        comments {
          totalCount
        }
      }
    }
  }
}

Попробуйте в проводнике

Или используйте поисковый запрос, подобный следующему:

{
  search(type: ISSUE, query: "is:pr state:open repo:angular/angular", first: 100) {
    nodes {
      ... on PullRequest {
        title
        comments {
          totalCount
        }
      }
    }
  }
}

Попробуйте в проводнике

Если вы хотите, чтобы количество отзывов и комментарии также были использованы, вы можете использовать:

{
  search(type: ISSUE, query: "is:pr state:open repo:angular/angular", first: 100) {
    nodes {
      ... on PullRequest {
        title
        comments {
          totalCount
        }
        reviews(first: 100) {
          totalCount
          nodes {
            comments {
              totalCount
            }
          }
        }
      }
    }
  }
}

Попробуйте это в проводнике

Использование :

repo_owner=angular
repo_name=angular
token=YOUR_TOKEN

curl -s -H "Authorization: bearer $token" -d '
{
    "query": "query {repository(owner: \"'$repo_owner'\", name: \"'$repo_name'\") {pullRequests(states: OPEN, first: 100) {nodes {title comments {totalCount}}}}}"
}
' https://api.github.com/graphql
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...