4

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

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

编辑

我已经尝试过size:0搜索,但它似乎返回了很多包含数据的存储库。采取类似的东西size:0..1也没有帮助。

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

更新

我收到了来自 Brian Levine (GitHub) 的回复

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

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

4

3 回答 3

4

你可以:

README.md请注意,当使用默认描述文件创建“空”存储库时,仍可能至少有一次提交。
实际上,正如OP Aniket 评论的那样:

我将空的含义解释为:0-1 次提交,最多 3 个文件

.gitignore
README.md
LICENSE 

(注:README不同于README.md

另一种方法是,对于每个 repo,查看提交的数量
0 或 1 次提交意味着可能是一个空的仓库。


更新:GitHub 确认目前没有办法确定一个仓库是否为“空”。
最接近的方法是:

您可以查看公共存储库并比较“pushed_at”和“created_at”日期以查看是否有任何活动

于 2013-11-10T12:53:40.510 回答
2

使用 API 中的属性“size”将无济于事,正如此处其他海报所提到的那样。

一个例子是这个存储库: https ://api.github.com/repos/errfree/test

如果您注意到,它会显示大小为 48,尽管它是空的。

免责声明:这种方法是一种黑客行为。它效率不高,也没有得到 GitHub 的官方支持,但对我来说已经足够好了。

基本上,我下载了存储库的 Zip 版本。当存储库为空时,它不会返回 zip 文件,但会提供一个 HTML 页面,显示“此存储库为空。”。

下载 zip 文件后,我验证大小是否小于 30Kb,如果是这种情况,我在文件内容中查找字符串“This repository is empty”。确认给定的存储库是空的。

这是一个直接 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;
            }
        }

希望这可以帮助。

于 2014-12-06T13:14:49.063 回答
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 和一个提交。

于 2014-10-26T23:34:24.673 回答