@KennyTM bardzo podobne pytanie, tak, ale jest to specyficzne dla github, a nie jakiejkolwiek metody wykorzystującej tylko protokół git.
jhabbott,
1
Do sprawdzenia, to rozszerzenie chrome, które automatycznie dodaje rozmiar repozytorium do podsumowania repozytorium GitHub github.com/harshjv/github-repo-size . AKTUALIZACJA: dodał to jako odpowiedź
Harsh Vakharia
Oto wskazówka: Moje absolutnie największe repozytorium zawiera tylko obrazy różnych formatów, jest to repozytorium „graficzne” ikon, których używam w różnych aplikacjach. Jednak GitHub zgłasza rozmiar jako 0. Więc zakładam, że bierze on pod uwagę tylko rozmiar znanych plików źródłowych i nie bierze pod uwagę nieznanych typów plików.
Jerry Dodge
Odpowiedzi:
276
Istnieje sposób na uzyskanie dostępu do tych informacji za pośrednictwem interfejsu API GitHub .
Podczas pobierania informacji o repozytorium właściwość o nazwie size jest wyceniana na podstawie wielkości całego repozytorium (w tym całej jego historii), w kilobajtach.
Na przykład repozytorium Git waży około 124 MB. sizeWłasnością zwróconego JSON ładunek jest ceniony na 124283.
Aktualizacja
Rozmiar jest rzeczywiście wyrażony w kilobajtach na podstawie użycia dysku przez nagie repozytorium po stronie serwera. Aby jednak nie marnować zbyt wiele miejsca na repozytoria z dużą siecią, GitHub polega na Git Alternates . W tej konfiguracji obliczenie użycia dysku w oparciu o samo repozytorium nie uwzględnia magazynu obiektów współużytkowanych, a zatem zwraca „niekompletną” wartość poprzez wywołanie API.
Ta informacja została podana przez obsługę GitHub.
Nie ma teraz rozmiaru w MB -> To nie jest tak jasne, wygląda na to, że zależy od odpytywanego repozytorium ... Małe repo ujawniają rozmiar w bajtach, duże w megabajtach. Otworzyłem problem w dziale pomocy GitHub. Zaktualizuję odpowiedź, jak tylko problem zostanie zamknięty.
nulltoken
6
To nie wydaje się działać w przypadku prywatnych repozytoriów. Czy coś brakuje? Dzięki!
@nulltoken Jakaś odpowiedź na zapytanie dotyczące KB / MB itp.?
nealmcb
2
Właśnie rozwidliłem repozytorium (9 września 2018 r.) I jest to KB, a nie MB
Jacob Stamm
109
Jeśli jesteś właścicielem repozytorium, możesz znaleźć dokładny rozmiar, otwierając Ustawienia konta → Repozytoria ( https://github.com/settings/repositories ), a rozmiar repozytorium jest wyświetlany obok jego oznaczenia.
Jeśli nie jesteś właścicielem repozytorium, możesz je rozwidlić, a następnie sprawdzić w tym samym miejscu.
Nieco hacky: skorzystaj z download as a zip fileopcji, przeczytaj wskazany rozmiar pliku, a następnie anuluj go.
Nie pamiętam, czy pobieranie jako zip kiedykolwiek działało, ale w każdym razie robi to teraz tylko wybraną gałąź bez historii.
Czy nie należy brać pod uwagę kompresji zip? Myślę, że kod źródłowy i pliki tekstowe można skompresować do około 60%.
sfledgling
Nie jestem pewien, jak sprawdzić współczynnik kompresji zip bez ukończenia pobierania. Oczywiście możesz zakończyć pobieranie, a następnie sprawdzić współczynnik kompresji. Jednak w tym momencie równie dobrze możesz rozpakować i bezpośrednio sprawdzić rozmiar repozytorium. To naprawdę zależy od tego, jak dokładny musisz być. A jeśli możesz sobie pozwolić na pobranie repozytorium do sprawdzenia.
CoatedMoose
1
Nie mogłem go znaleźć Settings > Repositories, ale zamiast tego znalazłem rozmiar repozytorium na Account Settings > Repositoriesstronie głównej git. Oczywiście działa to tylko z repozytoriami, które posiadasz (lub widelcem).
modulitos
Ustawienia konta organizacji nie wydają się pokazywać rozmiaru repozytorium, więc tylko jeśli posiadasz repozytorium jako użytkownik, a nie jako organizacja?
Bennett Brown
2
Rozmiar pliku zip nie wskazuje wcale na rzeczywisty rozmiar repozytorium: 1) zawiera tylko migawkę repozytorium w danej wersji bez historii i 2) Repozytoria Git są przechowywane jako skompresowane pliki paczek, nie należy przechowuj duplikaty itp.
@BaneeIshaqueK to nie to samo, ale pokazuje rozmiar repozytorium sprawdź tutaj
Syed Shamikh Shabbir
1
AKTUALIZACJA Teraz działa doskonale nawet w prywatnych repozytoriach, o ile podasz token Github.
Siddhant Rimal
2
Nadal nie jest niezawodny, używa interfejsu API GitHub, który nie zgłasza prawidłowego rozmiaru. Mam repozytorium zawierające wyłącznie obrazy (bez kodu), a interfejs API zgłasza rozmiar jako 0, chociaż jest to największe repozytorium, jakie mam. To rozszerzenie nawet nie pokazuje mi rozmiaru tego konkretnego repozytorium (prawdopodobnie dlatego, że widzi 0).
Jerry Dodge
19
@larowlan świetny przykładowy kod. Dzięki nowemu interfejsowi API GitHub V3 instrukcja curl musi zostać zaktualizowana. Ponadto logowanie nie jest już wymagane:
Musisz postępować zgodnie z interfejsem API GitHub. Zobacz dokumentację tutaj, aby uzyskać wszystkie szczegóły dotyczące Twojego repozytorium. Wymaga wykonania żądania GET, ponieważ:
GET / repos /: owner /: repository
Musisz wymienić dwie rzeczy:
: owner - nazwa użytkownika osoby, która jest właścicielem repozytorium
: repozytorium - nazwa repozytorium
Na przykład moja nazwa użytkownika maheshmnj i jestem właścicielem repozytorium flutter-ui-nice , więc mój adres GET będzie następujący:
Po wysłaniu żądania GET zostaniesz zalany niektórymi danymi JSON i prawdopodobnie w linii nr 78 powinieneś zobaczyć klucz o nazwie rozmiar , który zwróci rozmiar repozytorium.
Wskazówka: podczas pracy z JSON sugeruję dodanie wtyczki, która formatuje dane JSON, aby ułatwić czytanie JSON. Zainstaluj wtyczkę .
A) Jak wielu raportuje, ten rozmiar nie jest dokładny i nie jest wiarygodny. B) Nawet jeśli tak, to twoja uwaga dotycząca wizualnego czytania JSON, numeru linii i formatowania ... wszystko bez sensu. JSON nie jest przeznaczony do czytania przez ludzi, lecz do czytania przez komputery. Powinieneś wspomnieć o przeczytaniu sizeklucza w odpowiedzi, a nie linii 78. Nie wspominając, różne formaterowie będą mieli różne podziały linii w różnych miejscach, pozostawiając pożądane dane pod innym numerem linii.
Jerry Dodge
@JerryDodge najpierw należy uważnie przeczytać odpowiedź, o której wspomniałem `` powinieneś zobaczyć klucz o nazwie rozmiar '' i powiedziałem, że powinieneś probablyzobaczyć go w linii nr 78, więc oznacza to, że powinieneś zobaczyć klucz wielkości około 78 , po drugie, jeśli rozmiar z github apis nie był dokładny, nie sądzę, że znajdziesz coś dokładniejszego niż github apis.
maheshmnj
Mam repozytorium obrazów. Obrazy są danymi binarnymi. W tym repozytorium nie ma żadnych plików tekstowych. GitHub zgłasza wszędzie, że zużywa 0 bajtów. Nawet strona internetowa / wtyczka.
Jerry Dodge
0
Podsumowując rozwiązania chakoshy @larowlan, @VMTrooper i @vahid:
#!/usr/bin/env bashif["$#"-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 1fi
Odpowiedzi:
Istnieje sposób na uzyskanie dostępu do tych informacji za pośrednictwem interfejsu API GitHub .
GET /repos/:user/:repo
Podczas pobierania informacji o repozytorium właściwość o nazwie
size
jest wyceniana na podstawie wielkości całego repozytorium (w tym całej jego historii), w kilobajtach.Na przykład repozytorium Git waży około 124 MB.
size
Własnością zwróconego JSON ładunek jest ceniony na124283
.Aktualizacja
Rozmiar jest rzeczywiście wyrażony w kilobajtach na podstawie użycia dysku przez nagie repozytorium po stronie serwera. Aby jednak nie marnować zbyt wiele miejsca na repozytoria z dużą siecią, GitHub polega na Git Alternates . W tej konfiguracji obliczenie użycia dysku w oparciu o samo repozytorium nie uwzględnia magazynu obiektów współużytkowanych, a zatem zwraca „niekompletną” wartość poprzez wywołanie API.
Ta informacja została podana przez obsługę GitHub.
źródło
$ curl -u "{:username}" https://api.github.com/repos/{:organization}/{:repository}
. Zobacz developer.github.com/v3/#authenticationJeśli jesteś właścicielem repozytorium, możesz znaleźć dokładny rozmiar, otwierając Ustawienia konta → Repozytoria ( https://github.com/settings/repositories ), a rozmiar repozytorium jest wyświetlany obok jego oznaczenia.
Jeśli nie jesteś właścicielem repozytorium, możesz je rozwidlić, a następnie sprawdzić w tym samym miejscu.
Nieco hacky: skorzystaj zdownload as a zip file
opcji, przeczytaj wskazany rozmiar pliku, a następnie anuluj go.Nie pamiętam, czy pobieranie jako zip kiedykolwiek działało, ale w każdym razie robi to teraz tylko wybraną gałąź bez historii.
źródło
Settings > Repositories
, ale zamiast tego znalazłem rozmiar repozytorium naAccount Settings > Repositories
stronie głównej git. Oczywiście działa to tylko z repozytoriami, które posiadasz (lub widelcem).Jeśli używasz przeglądarki Google Chrome, możesz zainstalować rozszerzenie rozmiaru repozytorium GitHub .
Repo tutaj: https://github.com/harshjv/github-repo-size
źródło
@larowlan świetny przykładowy kod. Dzięki nowemu interfejsowi API GitHub V3 instrukcja curl musi zostać zaktualizowana. Ponadto logowanie nie jest już wymagane:
Na przykład:
zwraca
931668
(w KB), co jest prawie GB.źródło
Aby to zrobić za pomocą curl (sudo apt-get curl) i json pretty (sudo gem install jsonpretty json):
Zamień YOURGITHUBUSERNAME na swoją nazwę użytkownika GitHub (patrz rysunek).
Zamień WŁAŚCICIELA na nazwę użytkownika Git właściciela repozytorium. Zamień REPOSITORY na nazwę repozytorium.
Lub jako ładny skrypt Bash (wklej to do pliku o nazwie gitrepo-info):
Używaj go w ten sposób:
To da mi informacje o repozytorium pisi / reel na GitHub.
źródło
Musisz postępować zgodnie z interfejsem API GitHub. Zobacz dokumentację tutaj, aby uzyskać wszystkie szczegóły dotyczące Twojego repozytorium. Wymaga wykonania żądania GET, ponieważ:
GET / repos /: owner /: repository
Musisz wymienić dwie rzeczy:
Na przykład moja nazwa użytkownika maheshmnj i jestem właścicielem repozytorium flutter-ui-nice , więc mój adres GET będzie następujący:
Po wysłaniu żądania GET zostaniesz zalany niektórymi danymi JSON i prawdopodobnie w linii nr 78 powinieneś zobaczyć klucz o nazwie rozmiar , który zwróci rozmiar repozytorium.
Wskazówka: podczas pracy z JSON sugeruję dodanie wtyczki, która formatuje dane JSON, aby ułatwić czytanie JSON. Zainstaluj wtyczkę .
źródło
size
klucza w odpowiedzi, a nie linii 78. Nie wspominając, różne formaterowie będą mieli różne podziały linii w różnych miejscach, pozostawiając pożądane dane pod innym numerem linii.probably
zobaczyć go w linii nr 78, więc oznacza to, że powinieneś zobaczyć klucz wielkości około 78 , po drugie, jeśli rozmiar z github apis nie był dokładny, nie sądzę, że znajdziesz coś dokładniejszego niż github apis.Podsumowując rozwiązania chakoshy @larowlan, @VMTrooper i @vahid:
źródło
W przypadku prywatnego repozytorium konieczne będzie uzyskanie tokena dostępu osobistego na stronie https://github.com/settings/tokens .
Następnie użyj następującego polecenia curl, aby uzyskać szczegółowe informacje (podstawiając wartości dla [token], [właściciel] i [nazwa]):
Jak wspomniano wcześniej, rozmiar może być w MB lub KB.
źródło