Bir Git deposunun klonlamaya karar vermeden önce GitHub'da ne kadar büyük olduğunu görmenin bir yolu var mı?
Bu gerçekten bariz / temel bir istatistik gibi görünüyor, ama GitHub'da nasıl göreceğimi bulamıyorum.
Bir Git deposunun klonlamaya karar vermeden önce GitHub'da ne kadar büyük olduğunu görmenin bir yolu var mı?
Bu gerçekten bariz / temel bir istatistik gibi görünüyor, ama GitHub'da nasıl göreceğimi bulamıyorum.
Yanıtlar:
Bu bilgilere GitHub API'sinden erişmenin bir yolu vardır .
GET /repos/:user/:repo
Bir havuz hakkında bilgi alınırken adlı bir özellik size
, tüm havuzun boyutuyla (tüm geçmişi dahil) kilobayt olarak değerlenir.
Örneğin, Git deposu ağırlıkları 124 MB civarındadır. size
Döndürülen JSON yük mülkü için değerlidir 124283
.
Boyut, sunucu tarafı çıplak deposunun disk kullanımına bağlı olarak kilobayt cinsinden ifade edilir. Bununla birlikte, büyük bir ağa sahip depolarla çok fazla yer kaybetmemek için GitHub Git Alternates'e güveniyor . Bu yapılandırmada, disk kullanımının çıplak depoya göre hesaplanması paylaşılan nesne deposunu hesaba katmaz ve bu nedenle API çağrısı yoluyla "eksik" bir değer döndürür.
Bu bilgiler GitHub desteği tarafından verilmiştir.
$ curl -u "{:username}" https://api.github.com/repos/{:organization}/{:repository}
. Bkz developer.github.com/v3/#authentication
Deponun sahibi sizseniz, Hesap Ayarları → Depolarınızı ( https://github.com/settings/repositories ) açarak tam boyutu bulabilirsiniz ve depo boyutu, adının yanında görüntülenir.
Deponun sahibi değilseniz, çatalı çatallayabilir ve ardından aynı yerde kontrol edebilirsiniz.
Biraz hacky: download as a zip file
seçeneği kullanın, belirtilen dosya boyutunu okuyun ve ardından iptal edin.
Zip olarak indirmenin şimdiye kadar çalışıp çalışmadığını hatırlamıyorum, ancak her durumda, şimdi sadece seçili olan dalı geçmişi olmayan indirir.
Settings > Repositories
, ancak bunun yerine Account Settings > Repositories
git ana sayfanızın altındaki repo boyutunu buldum . Tabii ki, bu yalnızca sahip olduğunuz (veya çatallı) depolarla çalışır.
Google Chrome tarayıcı kullanıyorsanız GitHub Depo Boyutu uzantısını yükleyebilirsiniz .
Buraya yeniden bağlanın: https://github.com/harshjv/github-repo-size
@larowlan harika örnek kod. Yeni GitHub API V3 ile curl ifadesinin güncellenmesi gerekiyor. Ayrıca, oturum açma artık gerekli değildir:
curl https://api.github.com/repos/$2/$3 2> /dev/null | grep size | tr -dc '[:digit:]'
Örneğin:
curl https://api.github.com/repos/dotnet/roslyn 2> /dev/null | grep size | tr -dc '[:digit:]'
931668
neredeyse bir GB olan döner (KB cinsinden).
Bunu curl (sudo apt-get curl) ve json pretty (sudo gem install jsonpretty json) ile yapmak için:
curl -u "YOURGITHUBUSERNAME" http://github.com/api/v2/json/repos/show/OWNER/REPOSITORY |
jsonpretty
YOURGITHUBUSERNAME yerine GitHub kullanıcı adınızı yazın (şekil).
SAHİBİ'yi depo sahibinin Git kullanıcı adıyla değiştirin. REPOSITORY öğesini havuz adıyla değiştirin.
Veya güzel bir Bash betiği olarak (bunu gitrepo-info adlı bir dosyaya yapıştırın):
#!/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
Şöyle kullanın:
gitrepo-info larowlan pisi reel
Bu bana GitHub'daki pisi / reel deposu hakkında bilgi verecektir .
GitHub API'sini izlemeniz gerekir. Belgelere bakın burada sizin depo ile ilgili tüm detaylar için. GET isteğinde bulunmanızı gerektirir :
GET / repos /: sahip /: depo
İki şeyi değiştirmeniz gerekir:
Örneğin, kullanıcı adım maheshmnj ve bir depoya sahibim, flutter-ui-nice , bu yüzden GET URL'm şöyle olacak:
https://api.github.com/repos/maheshmnj/flutter-ui-nice
Bir GET isteği yaparken, bazı JSON verileriyle dolu olacaksınız ve muhtemelen 78 numaralı satırda , deponun boyutunu döndürecek boyut adında bir anahtar görmelisiniz .
İpucu: JSON ile çalışırken JSON okumayı kolaylaştırmak için JSON verilerini formatlayan bir eklenti eklemenizi öneririm. Eklentiyi yükleyin .
size
Anahtarı satır 78'de değil, yanıtta okumayı söylemelisiniz. Bahsetmemek gerekirse , farklı biçimlendiriciler farklı yerlerde farklı satır sonlarına sahip olacak ve istenen verileri farklı bir satır numarasına bırakacaktır.
probably
78 numaralı satırda görmeniz gerektiğini söyledim , böylece boyut anahtarını 78 civarında görmeniz gerektiğini gösteriyor , ikinci şey github apis boyutu doğru değilse, github apis daha doğru bir şey bulacaksınız sanmıyorum.
@Larowlan, @VMTrooper ve @vahid chakoshy çözümlerini özetlemek için:
#!/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
Özel bir depo için https://github.com/settings/tokens adresinden Kişisel Erişim Jetonu almanız gerekir .
Ardından ayrıntıları almak için aşağıdaki kıvrılma komutunu kullanın ([jeton], [sahip] ve [ad] değerlerinin yerine):
curl -u git:[token] https://api.github.com/repos/[owner]/[name] 2> /dev/null | grep size
Daha önce de belirtildiği gibi, boyut MB veya KB olabilir.