Как получить всех рецензентов в PR в GitHub Probot

как получить всех рецензентов в запросе на вытягивание из Probot? Я использую typescript. Я также прослушиваю тип события pull_request в Probot. Я думаю, что мне нужно вызвать context.github.pullRequests.getReview, чтобы получить список рецензентов, но, поскольку я новичок в NodeJs и typescript, я не уверен, как вызвать приведенную ниже функцию. Любые входы?

Также getReview принимает параметр {owner:,repo:,number:, review_id:}, в моем случае у меня просто pr_number.

 getReview(
      params: Github.PullRequestsGetReviewParams,
      callback?: Github.Callback<
        Github.Response<Github.PullRequestsGetReviewResponse>
      >
    ): Promise<Github.Response<Github.PullRequestsGetReviewResponse>>;

person Shravan Ramamurthy    schedule 11.04.2019    source источник
comment
Я пробовал context.github.pullRequests.listReviewRequests(context.issue());, но это даст рецензентов, добавленных при создании PR. Как мне получить всех рецензентов (добавленных во время создания PR, по собственному запросу, а также добавленных другим рецензентом и т. д.)   -  person Shravan Ramamurthy    schedule 12.04.2019
comment
Я согласен, что это довольно запутанно. Я протестировал список отзывов по запросу на вытягивание. , но в нем перечислены только запросы, а не фактически выполненные проверки. Я бы порекомендовал обратиться в службу поддержки по этому поводу, возможно, это ошибка или документация нуждается в обновлении.   -  person Gregor    schedule 12.04.2019


Ответы (2)


Как упоминалось в моем комментарии выше, список обзоры по запросу на вытягивание не возвращают обзоры, а вместо этого возвращают запросы на обзор.

Мне не удалось найти конечную точку REST API, но вместо этого вы можете отправить запрос GraphQL.

    query {
        resource(url:"https://github.com/probot/probot/pull/870") {
            ... on PullRequest {
                title
                url
                reviews(first: 100) {
                    nodes {
                        author {
                            login
                        }
                    }
                }
            }
        }
    }

вы можете использовать для этого метод context.graphql. См. https://github.com/octokit/graphql.js для получения сведений об API. Убедитесь, что вы используете последнюю версию Probot (текущая версия 9.2.4).

person Gregor    schedule 12.04.2019

Для нас это requestedReviewer объект reviewRequests с использованием pullRequests запроса.

Следует отметить, что рецензентом может быть User или Team, поэтому нам нужно использовать оператор спреда ... on User/Team, чтобы он мог получить разные поля.

query {
  compass: repository(owner: "YourOrg", name: "YourRepo") {
    pullRequests(states: [OPEN], last: 10) {
      edges {
        node {
          title,
          updatedAt,
          url
          mergeable
          author {
            login
          },
          reviewRequests(first: 10) {
            nodes{
              requestedReviewer{
                ... on User {
                  userName: name
                  login                  
                }
                ... on Team {
                  teamName: name
                }
              },

            }
          }
        }
      }
    }
  }
}
person LeOn - Han Li    schedule 30.10.2019