计算GitHub上空存储库的数量

时间:2013-11-10 12:49:52

标签: github

我只是想知道是否可以在GitHub上计算空存储库的总数。

如果不是所有用户,可以自己完成吗?

修改

我尝试了size:0搜索,但似乎返回了很多包含数据的存储库。对size:0..1这样的事情也没有帮助。

如果我尝试搜索关键字empty,但它不涵盖所有方面。

更新

我得到了Brian Levine(GitHub)的答复

  

这将是一个有趣的统计数据。我们现在没有一种简单的方法可以做到这一点。但是,您可以使用GitHub API来关闭。您可以查看公共存储库并比较“pressed_at”和“created_at”日期以查看是否存在任何活动。此外,您可以找到“大小”为0的存储库。有关如何查找此信息的更多信息,以及更多信息,请点击此处:

     

http://developer.github.com/v3/repos/

3 个答案:

答案 0 :(得分:4)

你可以:

请注意,使用默认的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和一次提交。