как получить мои запросы на вытягивание из github api?

Если вы посмотрите на: http://developer.github.com/v3/pulls/ он показывает вам, как получить запросы на вытягивание для данного репозитория.

Как получить мои запросы на вытягивание из API GitHub, аналогичные данным, отображаемым на панели инструментов GitHub?

Мне нужно что-то вроде этого


person Nicholas DiPiazza    schedule 01.07.2013    source источник
comment
Вы хотите получить список программно (как следует из слова api в названии) или открыть представление в браузере (как показано на изображении)?   -  person Emil Lundberg    schedule 02.07.2013
comment
@EmilLundberg, изображение предполагает, что он сам это сделал, и поэтому я подозреваю, что вопрос, очевидно, в том, как он может сделать это программно. :)   -  person Ian Stapleton Cordasco    schedule 03.07.2013
comment
@ sigmavirus24 Я не слежу ...: o ... Да, наверное, мне стоило перейти по ссылке, которая проясняет ситуацию. xD   -  person Emil Lundberg    schedule 03.07.2013
comment
Не волнуйся, @EmilLundberg. Я прочитал его дважды, просто чтобы быть уверенным в том, о чем он спрашивает. Я не должен был говорить так беспечно.   -  person Ian Stapleton Cordasco    schedule 03.07.2013
comment
@ sigmavirus24 Ах, конечно, теперь я понимаю, о чем вы! Думаю, у меня был свой скептик / не по теме? в очках, так как я был на небольшом пограничном патруле через новейшее на то время. :)   -  person Emil Lundberg    schedule 03.07.2013
comment
Я отредактировал вопрос, чтобы прояснить   -  person Nicholas DiPiazza    schedule 03.07.2013


Ответы (3)


Я спросил напрямую у Github. Представитель сказал мне использовать конечную точку поиска. Найдите принадлежащие вам проблемы, которые открыты и относятся к типу pr.

https://api.github.com/search/issues?q=state%3Aopen+author%3Adavidxia+type%3Apr

Если вы используете клиентскую библиотеку Python, например Pygithub, вы можете сделать

issues = gh.search_issues('', state='open', author='davidxia', type='pr')
person David Xia    schedule 05.05.2017
comment
аааа мне это нравится больше - person Nicholas DiPiazza; 05.05.2017
comment
Это работает, но не так интуитивно понятно. Это должно быть более простым, чем это, но я думаю, как только вы это узнаете ... - person David Xia; 06.05.2017
comment
По умолчанию он показывает только первые 30 результатов. Но вы можете просматривать другие, используя параметры запроса per_page (максимум 100) и page. Например, api.github.com/search / - person Ilyich; 11.10.2020

Вы также можете использовать GraphQL API v4 для получения всех ваших запросов на вытягивание:

{
  user(login: "bertrandmartel") {
    pullRequests(first: 100, states: OPEN) {
      totalCount
      nodes {
        createdAt
        number
        title
      }
      pageInfo {
        hasNextPage
        endCursor
      }
    }
  }
}

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

или используя viewer:

{
  viewer {
    pullRequests(first: 100, states: OPEN) {
      totalCount
      nodes {
        createdAt
        number
        title
      }
      pageInfo {
        hasNextPage
        endCursor
      }
    }
  }
}
person Bertrand Martel    schedule 27.11.2017
comment
Просто добавлю, что API v4 использует спецификацию Relay, поэтому вы можете сделать { viewer { } } вместо { user(login: "...") }, чтобы получить запросы на включение от текущего авторизованного пользователя. - person stephen mc; 28.03.2019

Сначала вы должны понять, что вы должны пройти аутентификацию, используя либо базовую аутентификацию, либо токен. Затем вы должны понять, что нет простого способа сделать это, поэтому вам придется проявить смекалку.

Чтобы быть конкретным, если вы исследуете https://api.github.com/issues, вы заметите, что проблемы там имеют хэш с именем pull_request, который должен иметь 3 URL-адреса: html, diff и patch. Все три будут ненулевыми, если проблема также связана с запросом на вытягивание. (Подсказка: для GitHub это одно и то же… вроде как.)

Если вы переберете свои проблемы и отфильтруете те, в которых эти атрибуты не равны нулю, у вас будут запросы на вытягивание.

person Ian Stapleton Cordasco    schedule 03.07.2013
comment
ОК Итак, когда я запустил api.github.com/issues в моем профиле, у меня ничего не было. Однако я и раньше делал запросы на вытягивание для учетной записи, под которой вошел в систему. Есть другие идеи? - person Nicholas DiPiazza; 04.07.2013
comment
Можете ли вы попробовать curl -u nddipiazza https://api.github.com/issues и сказать мне, что вы видите после ввода пароля GitHub? Также какой язык / фреймворк / оболочку вы используете для связи с API? - person Ian Stapleton Cordasco; 04.07.2013
comment
Это дает мне [] - что это значит? (помимо очевидного, у меня нет никаких проблем) - person Nicholas DiPiazza; 06.07.2013
comment
Это означает, что вы правильно аутентифицируетесь, и, что касается GitHub, у вас нет проблем. Честно говоря, я не в своем уме. Возможно, вам лучше обратиться в службу поддержки GitHub. Обязательно укажите API в заголовке, чтобы он попал прямо к их команде API. - person Ian Stapleton Cordasco; 06.07.2013
comment
Я считаю, что OP хочет, чтобы все PR он создал, когда писал мои запросы на включение. Я не думаю, что /issues или /user/issues делают это. Согласно документации API github.com developer.github.com/enterprise/ 2.8 / v3 / issues / # list-issues, здесь перечислены все проблемы, назначенные ... аутентифицированному пользователю, который не создан. - person David Xia; 04.05.2017
comment
Нет ли другого способа сделать это, кроме как перечислить все мои репозитории, получить для каждого владельца восходящего потока, перечислить PR всех вышестоящих репозиториев и отфильтровать его до моих PR ?! Есть github graphql developer.github.com/early-access/graphql. Но это закрытая альфа-версия, и я не уверен, что она доступна для Github Enterprise. - person David Xia; 04.05.2017