截至 2016 年 1 月 10 日,这已添加到 gh 搜索栏 api,请参阅下一个答案。
原始接受(现在已过期的答案)未经编辑。
目前无法通过 Web 界面访问
GitHub 目前不提供按目标过滤拉取请求的方法
通过他们的 Web 界面进行分支。相反,您目前得到的只是
带有主题分支名称的拉取请求的完整列表:
点击拉取请求将显示目标分支,但这不会
真正帮助您进行任何您想做的过滤。
您可以改用 GitHub REST API
可以使用GitHub REST API 过滤拉取请求,
但是:
GET /repos/:owner/:repo/pulls?base=:branch
这应该会向您显示所有针对 repo :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 分支过滤,我们在上面的 curl 命令中指定为 master。
JSON 实际上包含比这更多的信息;我刚刚删除了大部分内容以显示此问题的相关部分。
解析 cURL 响应
您可能可以编写一个 Python/Ruby/PHP/Whatever 脚本,然后解析出每个拉取请求的 html_url 属性并将其列在命令行上。例如,下面是一个简单的 Ruby 脚本,它将解析从 curl 输出中保存的 JSON 响应的输出:
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