为什么api github搜索未找到所有存储库

时间:2019-04-11 15:57:11

标签: json rest github

为什么github API不向我显示所有存储库的列表?

示例:

https://github.com/github

https://api.github.com/search/repositories?q=user:github+sort:updated

使用第一个链接,我们可以看到296个存储库,使用第二个链接,我收到“ total_count”:173。如何使用github API搜索所有296个存储库?

2 个答案:

答案 0 :(得分:1)

public webpage包含已归档的存储库。 API query不会。

答案 1 :(得分:1)

我相信API会从结果中隐藏归档的存储库。 +archived:true,应该再显示42个左右。但这最多不会增加296,因此我改用用户API(https://api.github.com/users/github/repos),它一次可以返回一种以上的存储库。

似乎search API有一些依赖性,该API隐藏了一些未记录的存储库。

https://api.github.com/users/github/repos?type=all&per_page=100 ==> 100 https://api.github.com/users/github/repos?type=all&per_page=100&page=2 ==> 100 https://api.github.com/users/github/repos?type=all&per_page=100&page=3 ==> 96

curl https://api.github.com/users/github/repos\?type\=all\&per_page\=100 | jq length
curl https://api.github.com/users/github/repos\?type\=all\&per_page\=100\&page\=2 | jq length
curl https://api.github.com/users/github/repos\?type\=all\&per_page\=100\&page\=3 | jq length

由更新排序

sds-users:() ➜  (11/04 19:18) /tmp curl "https://api.github.com/users/github/repos?type=all&per_page=10&sort=updated" | jq '.[].updated_at'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 54509  100 54509    0     0  76340      0 --:--:-- --:--:-- --:--:-- 76450
"2019-04-11T18:15:05Z"
"2019-04-11T18:05:00Z"
"2019-04-11T18:02:57Z"
"2019-04-11T17:41:47Z"
"2019-04-11T17:35:55Z"
"2019-04-11T16:46:28Z"
"2019-04-11T16:20:20Z"
"2019-04-11T16:17:09Z"
"2019-04-11T15:48:31Z"
"2019-04-11T15:27:31Z"
sds-users:() ➜  (11/04 19:18) /tmp