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デフォルトの記述ファイルで作成された場合、「空の」レポには少なくとも 1 つのコミットが含まれる可能性があることに注意してください。
実際、OP Aniketの コメントとして:

空の意味を次のように説明しました: 0-1 コミット、最大 3 ファイル:

.gitignore
README.md
LICENSE 

(注:READMEは とは異なりますREADME.md)

もう 1 つの方法は、リポジトリごとにコミット数を確認することです。
0 または 1 のコミットは、おそらく空のリポジトリを意味します。


更新: GitHub は、リポジトリが「空」かどうかを判断する現在の方法がないことを確認しています。
これを行う最も近い方法は次のとおりです。

公開リポジトリを調べて、「pushed_at」と「created_at」の日付を比較して、アクティビティがあったかどうかを確認できます。

于 2013-11-10T12:53:40.510 に答える
2

Using the attribute "size" from the API will not help as mentioned by other posters here.

An example is this repository: https://api.github.com/repos/errfree/test

If you note, it displays the size as 48 despite being empty.

Disclaimer: This approach is a hack. It is not efficient nor officially supported by GitHub, but works good enough for me.

Basically, I download the Zip version of the repository. When the repository is empty then it will not return a zip file but provides as result an HTML page saying "This repository is empty.".

After downloading a zip file, I verify if the size is smaller than 30Kb and if this is the case, I look inside the file contents for the string "This repository is empty." to confirm that a given repository is empty.

Here is a practical example of direct zip download that on this case will display an empty page: https://github.com/errfree/test/zipball/master/

My pseudo-code in 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;
            }
        }

Hope this helps.

于 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 と 1 つのコミットを取得します。

于 2014-10-26T23:34:24.673 に答える