По состоянию на 10 января 2016 года это было добавлено в API панели поиска gh, см. следующий ответ.
Первоначальный принятый (и теперь уже устаревший ответ) остался неотредактированным.
В настоящее время недоступно через веб-интерфейс
В настоящее время GitHub не предоставляет возможности фильтрации запросов на вытягивание по их целевой ветке через веб-интерфейс. Вместо этого все, что вы сейчас получаете, — это просто весь список пулл-реквестов с названиями тематических веток:
![Интерфейс запросов на включение GitHub](https://i.stack.imgur.com/DiHMq.png)
Щелкнув по запросу на включение, вы увидите целевую ветку, но на самом деле это не поможет вам сделать какую-либо фильтрацию, которую вы хотите сделать.
Вместо этого вы можете использовать GitHub REST API
Можно фильтровать запросы на вытягивание с помощью GitHub REST API однако:
GET /repos/:owner/:repo/pulls?base=:branch
Это должно показать вам все открытые пул-реквесты для репозитория :owner/:repo
, отфильтрованные по запросам, которые нацелены на :branch
в качестве своей базовой ветки. Из документации:
Отфильтруйте запросы по имени базовой ветки. Пример: gh-pages
.
Пример использования cURL
Если у вас есть curl
, вы можете проверить это в общедоступном репозитории из командной строки. Здесь запрашивается репо (https://github.com/codecombat/codecombat) , и мы получаем все запросы на вытягивание из ветки base
(ветка, с которой объединяются PR) с именем master
, а затем сохраняем результаты в файле pulls.json, который мы проанализируем дальше.
curl https://api.github.com/repos/codecombat/codecombat/pulls?base=master > \
pulls.json
Это вернет ответ JSON следующего вида, который теперь хранится в файле pulls.json:
[
{
"url": "https://api.github.com/repos/codecombat/codecombat/pulls/879",
"id": 14955421,
"html_url": "https://github.com/codecombat/codecombat/pull/879",
"head": {
"label": "DanielRodriguezRivero:patch-4",
"ref": "patch-4",
"sha": "baff84f0aeee12f23e3608558ae5341a0b5f939b",
"repo": {
"id": 16202384,
"name": "codecombat",
"full_name": "DanielRodriguezRivero/codecombat"
}
},
"base": {
"label": "codecombat:master",
"ref": "master",
"sha": "5e2f3ac7cb731a6e40e81737a5122c7fe1b746d3",
"repo": {
"id": 15193430,
"name": "codecombat",
"full_name": "codecombat/codecombat"
}
}
}
]
Каждый объект в массиве представляет собой запрос на вытягивание (PR), отфильтрованный по ветке base=target
, которую мы указали как master
в нашей команде curl
выше.
JSON на самом деле содержит гораздо больше информации, чем это; Я только что удалил большую часть этого, чтобы показать соответствующие части для этого вопроса.
Разбор ответа cURL
Вероятно, вы могли бы написать скрипт Python/Ruby/PHP/Whatever, чтобы затем анализировать свойство html_url
каждого запроса на включение и перечислять его в командной строке. Например, вот простой скрипт Ruby, который будет анализировать вывод ответа JSON, сохраненный из вывода curl
:
require 'json'
json = JSON.parse(File.read('./pulls.json'))
pulls = json.map { |pull| { title: pull['title'], url: pull['html_url'] } }
pulls.each do |pull|
puts pull.values
puts
end
Что выводит следующее:
$ ruby parser.rb
Update es-ES.coffee
https://github.com/codecombat/codecombat/pull/879
Fix deltas referring to last system saved
https://github.com/codecombat/codecombat/pull/874
Refactor getNameById and add naming to systems in deltas
https://github.com/codecombat/codecombat/pull/866
Traducido varios textos del fichero es-ES.coffe al espa├▒ol de Espa├▒a
https://github.com/codecombat/codecombat/pull/865
Anon name collide
https://github.com/codecombat/codecombat/pull/834
person
Community
schedule
21.04.2014