Res*_*lls 19 github-api pull-request
我想通过github API获取repo上所有pull请求的列表.我已按照http://developer.github.com/v3/pulls/上的说明进行操作,但当我查询'/ repos /:owner /:repo/pulls'时,它始终返回的拉取请求少于网站上显示的拉取请求.
例如,当我查询torvalds/linux repo时,我得到9个开放拉请求(网站上有14个).如果我添加'?state = closed',我会得到一组不同的11个关闭拉取请求(网站显示大约20个).
有没有人知道这种差异出现的地方,以及是否有办法通过API获得回购请求的完整列表?
aks*_*pal 11
您可以通过变量获取所有拉取请求(关闭,打开,合并)state
.
只需state=all
在GET查询中设置,就像这样 - >
https://api.github.com/repos/:owner/:repo/pulls?state=all
Run Code Online (Sandbox Code Playgroud)
有关更多信息:请参阅https://developer.github.com/v3/pulls/#list-pull-requests上的参数表
编辑:根据TomášVotruba的评论:
"per_page = 30"的默认值.最大值为per_page = 100.要获得超过100个结果,您需要将其称为多个itmes:"&page = 1","&page = 2"...
Xav*_*hot 11
使用Github新的官方CLI(命令行界面):
gh pr list --repo OWNER/REPO
Run Code Online (Sandbox Code Playgroud)
这会产生类似的结果:
Showing 2 of 2 pull requests in OWNER/REPO
#62 Doing something that-weird-branch-name
#58 My PR title wasnt-inspired-branch
Run Code Online (Sandbox Code Playgroud)
PyGithub(https://github.com/PyGithub/PyGithub)是一个访问GitHub API v3的Python库,可以让您获得分页资源.
例如,
g = Github(login_or_token=$YOUR_TOKEN, per_page=100)
r = g.get_repo($REPO_NUMBER)
for pull in r.get_pulls('all'):
# You can access pulls
Run Code Online (Sandbox Code Playgroud)
请参阅文档(http://pygithub.readthedocs.io/en/latest/index.html).
有一种方法可以获得完整的列表,而您正在这样做。您使用什么与 API 进行通信?我怀疑你可能没有做正确的事情。例如(当前只有 13 个开放拉取请求)使用我的 API 包装器 (github3.py),我可以获得所有开放拉取请求。如何在没有 python 包装器的情况下执行此操作的示例是:
import requests
r = requests.get('https://api.github.com/repos/torvalds/linux/pulls')
len(r.json()) == 13
Run Code Online (Sandbox Code Playgroud)
我还可以通过自己计算结果来(模糊地)在 cURL 中得到该结果:curl https://api.github.com/repos/torvalds/linux/pulls
。
但是,如果您遇到的存储库包含超过 25 个(或 30 个)拉取请求,则这是一个完全不同的问题,但肯定不是您现在遇到的问题。
归档时间: |
|
查看次数: |
33156 次 |
最近记录: |