我只是想知道是否可以在GitHub上计算空存储库的总数。
如果不是所有用户,可以自己完成吗?
我尝试了size:0
搜索,但似乎返回了很多包含数据的存储库。对size:0..1
这样的事情也没有帮助。
如果我尝试搜索关键字empty
,但它不涵盖所有方面。
我得到了Brian Levine(GitHub)的答复
这将是一个有趣的统计数据。我们现在没有一种简单的方法可以做到这一点。但是,您可以使用GitHub API来关闭。您可以查看公共存储库并比较“pressed_at”和“created_at”日期以查看是否存在任何活动。此外,您可以找到“大小”为0的存储库。有关如何查找此信息的更多信息,以及更多信息,请点击此处:
答案 0 :(得分:4)
你可以:
对于每个仓库,检查尺寸等于0的那些 (size seems to be in KB)
GET /repos/:owner/:repo
请注意,使用默认的README.md
描述文件创建时,“空”仓库仍可能至少有一次提交。
实际上,正如OP Aniket comments:
我解释了空的含义为:0-1提交,最多3个文件:
.gitignore
README.md
LICENSE
(注:README
is different from README.md
)
另一种方式是,对于每个回购,look at the number of commits 0或1提交可能意味着一个空的回购。
更新:GitHub确认目前无法确定回购是否为“空” 最接近的方法是:
您可以查看公共存储库并比较“pressed_at”和“created_at”日期以查看是否存在任何活动
答案 1 :(得分:2)
使用API中的“size”属性对其他海报提及无济于事。
这个存储库就是一个例子: https://api.github.com/repos/errfree/test
如果您注意到,尽管为空,它仍将大小显示为48。
免责声明:这种方法很糟糕。它不是GitHub的高效或官方支持,但对我来说效果还不错。
基本上,我下载了存储库的Zip版本。当存储库为空时,它将不会返回一个zip文件,但会提供一个HTML页面,上面写着“此存储库为空。”。
下载zip文件后,验证大小是否小于30Kb,如果是这种情况,我会在文件内容中查找字符串“此存储库为空”。确认给定的存储库是空的。
以下是直接zip下载的实际示例,在这种情况下将显示一个空白页面: https://github.com/errfree/test/zipball/master/
我在Java中的伪代码:
// we might have reached an empty repository
if(fileZip.length() < 30000){
// read the contents
final String content = utils.files.readAsString(fileZip);
// is this an HTML file with the repository empty message?
if(content.contains("This repository is empty.")){
return null;
}
}
希望这有帮助。
答案 2 :(得分:1)
要检查存储库是否为空,请查看它是否有任何提交。
https://api.github.com/repos/:owner/:repo/commits?per_page=1
空存储库将具有不成功的HTTP状态和内容...
{
"message": "Git Repository is empty.",
"documentation_url": "https://developer.github.com/v3"
}
如果它不存在,你将获得404和......
{
"message": "Not Found",
"documentation_url": "https://developer.github.com/v3"
}
如果确实存在,您将获得HTTP 200和一次提交。