クローンを作成する前に、GitHub上のGitリポジトリの大きさを確認する方法はありますか?
これは本当に明白で基本的な統計のようですが、GitHubでそれを確認する方法をまったく見つけることができません。
クローンを作成する前に、GitHub上のGitリポジトリの大きさを確認する方法はありますか?
これは本当に明白で基本的な統計のようですが、GitHubでそれを確認する方法をまったく見つけることができません。
回答:
GitHub APIを介してこの情報にアクセスする方法があります。
GET /repos/:user/:repo
リポジトリに関する情報を取得するとき、プロパティ size
がは、リポジトリ全体のサイズ(すべての履歴を含む)でキロバイト単位で評価されます。
たとえば、Gitリポジトリの重みは約124 MBです。size
返されるJSONペイロードのプロパティの値は124283
です。
実際のサイズは、サーバー側のベアリポジトリのディスク使用量に基づいてキロバイトで表されます。ただし、大規模なネットワークのリポジトリでスペースが無駄になり過ぎないようにするために、GitHubはGit Alternatesに依存しています。この構成では、ベアリポジトリに対してディスク使用量を計算しても、共有オブジェクトストアは考慮されないため、API呼び出しを通じて「不完全な」値が返されます。
この情報は、GitHubサポートによって提供されています。
$ curl -u "{:username}" https://api.github.com/repos/{:organization}/{:repository}
。developer.github.com/v3/#authenticationを
リポジトリを所有している場合は、アカウント設定 → リポジトリ(https://github.com/settings/repositories)を開くと正確なサイズを見つけることができ、リポジトリサイズが指定の横に表示されます。
リポジトリを所有していない場合は、フォークしてから同じ場所で確認できます。
ややハック:download as a zip file
オプションを使用し、示されているファイルサイズを読み取ってからキャンセルします。
私が今まで働いたzipとしてダウンロードする場合は覚えているが、いずれにしても、そうすることはありません、今は唯一の既往がない現在選択されているブランチをダウンロードします。
Settings > Repositories
が、代わりAccount Settings > Repositories
にあなたのgitホームページの下にあるリポジトリのサイズを見つけました。もちろん、これはあなたが所有する(またはフォークする)リポジトリでのみ機能します。
Google Chromeブラウザを使用している場合は、GitHubリポジトリサイズ拡張機能をインストールできます。
ここにリポジトリ:https : //github.com/harshjv/github-repo-size
@larowlan素晴らしいサンプルコード。新しいGitHub API V3では、curlステートメントを更新する必要があります。また、ログインは不要になりました。
curl https://api.github.com/repos/$2/$3 2> /dev/null | grep size | tr -dc '[:digit:]'
例えば:
curl https://api.github.com/repos/dotnet/roslyn 2> /dev/null | grep size | tr -dc '[:digit:]'
戻り値931668
(KB)は、ほぼGBです。
curl(sudo apt-get curl)とjson pretty(sudo gem install jsonpretty json)でこれを行うには:
curl -u "YOURGITHUBUSERNAME" http://github.com/api/v2/json/repos/show/OWNER/REPOSITORY |
jsonpretty
YOURGITHUBUSERNAMEをGitHubユーザー名に置き換えます(図を参照)。
OWNERをリポジトリ所有者のGitユーザー名に置き換えます。REPOSITORYをリポジトリ名に置き換えます。
または、素敵なBashスクリプトとして(これをgitrepo-infoという名前のファイルに貼り付けます):
#!/bin/bash
if [ $# -ne 3 ]
then
echo "Usage: gitrepo-info <username> <owner> <repo>"
exit 65
fi
curl -u "$1" http://github.com/api/v2/json/repos/show/$2/$3|jsonpretty
次のように使用します。
gitrepo-info larowlan pisi reel
これにより、GitHubのpisi / reelリポジトリに関する情報が得られます。
GitHub APIに従う必要があります。リポジトリに関するすべての詳細については、こちらのドキュメントをご覧ください。GETする必要がありますリクエスト。
GET / repos /:owner /:repository
次の2つを置き換える必要があります。
たとえば、私のユーザー名maheshmnjと私はリポジトリflutter-ui-niceを所有しているので、私のGET URLは次のようになります。
https://api.github.com/repos/maheshmnj/flutter-ui-nice
GETリクエストを行うと、いくつかのJSONデータでいっぱいになり、おそらく行番号78でsizeという名前のキーが表示されますで、リポジトリのサイズを返すというれます。
ヒント:JSONを使用する場合は、JSONを読みやすくするためにJSONデータをフォーマットするプラグインを追加することをお勧めします。プラグインをインストールします。
size
78行目ではなく、応答でキーを読み取ることについて言及する必要があります。言うまでもなく、フォーマッターが異なれば、場所によって改行が異なり、目的のデータは別の行番号になります。
probably
、78行目でサイズキーが表示されることを示しています。第二に、github apisからのサイズが正確でなかった場合、github apisよりも正確なものが見つかるとは思いません。
@ larowlan、@ VMTrooper、および@vahid chakoshyソリューションをまとめると、次のようになります。
#!/usr/bin/env bash
if [ "$#" -eq 2 ]; then
echo "$(echo "scale=2; $(curl https://api.github.com/repos/$1/$2 2>/dev/null \
| grep size | head -1 | tr -dc '[:digit:]') / 1024" | bc)MB"
elif [ "$#" -eq 3 ] && [ "$1" == "-z" ]; then
# For some reason Content-Length header is returned only on second try
curl -I https://codeload.github.com/$2/$3/zip/master &>/dev/null
echo "$(echo "scale=2; $(curl -I https://codeload.github.com/$2/$3/zip/master \
2>/dev/null | grep Content-Length | cut -d' ' -f2 | tr -d '\r') / 1024 / 1024" \
| bc)MB"
else
printf "Usage: $(basename $0) [-z] OWNER REPO\n\n"
printf "Get github repository size or, optionally [-z], the size of the zipped\n"
printf "master branch (`Download ZIP` link on repo page).\n"
exit 1
fi
プライベートリポジトリの場合は、https://github.com/settings/tokensからパーソナルアクセストークンを取得する必要があります。。
次に、次のcurlコマンドを使用して詳細を取得します([token]、[owner]、および[name]の値を代入します)。
curl -u git:[token] https://api.github.com/repos/[owner]/[name] 2> /dev/null | grep size
前述のように、サイズはMBまたはKBの場合があります。