Jak Mogę zobaczyć rozmiar repozytorium GitHub przed jego klonowaniem?
Czy istnieje sposób, aby zobaczyć, jak duże jest repozytorium Gita na Githubie, zanim zdecydujesz się je sklonować?
To wydaje się bardzo oczywiste / podstawowe statystyki, ale nie mogę znaleźć, jak to zobaczyć na Githubie w ogóle.
12 answers
Istnieje sposób, aby uzyskać dostęp do tych informacji poprzez GitHub API .
- składnia:
GET /repos/:user/:repo
- przykład: https://api.github.com/repos/git/git
Podczas pobierania informacji o repozytorium właściwość o nazwie size
jest wyceniana z wielkością całego repozytorium (w tym całej jego historii) w kilobajtach.
Na przykład, repozytorium Git waży około 124 MB. Właściwość size
zwracanego ładunku JSON jest wyceniana na 124283
.
Update
Rozmiar jest rzeczywiście wyrażony w kilobajtach na podstawie użycia dysku przez repozytorium po stronie serwera. Jednak, aby uniknąć marnowania zbyt dużo miejsca na repozytoriach z dużą siecią, GitHub opiera się na Git Alternates. W tej konfiguracji obliczanie użycia dysku w stosunku do repozytorium nie uwzględnia współdzielonego magazynu obiektów, a tym samym zwraca "niekompletną" wartość poprzez wywołanie API.
Ta informacja został wydany przez GitHub support.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-08-13 03:39:46
Jeśli posiadasz 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 posiadasz repozytorium, możesz je rozwidlić, a następnie sprawdzić w tym samym miejscu.
Uwaga: możesz być właścicielem organizacji, która hostuje wiele repozytoriów, a mimo to nie ma roli w konkretnym repozytorium wewnątrz organizacji. Domyślnie, nawet jeśli tworzysz repozytorium w organizacji, którą posiadasz, nie jesteś dodawany do repo i nie widzisz tego repo w settings/repositories
. Więc dodaj siebie w ustawieniu repozytorium (https://github.com/org-name/repo-name/settings
), aby zobaczyć go w https://github.com/settings/repositories
nieco hakerskie: użyj opcji download as a zip file
, odczytaj 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 pobiera aktualnie wybrana gałąź bez historii.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-12-23 10:06:03
Jeśli używasz przeglądarki Google Chrome, możesz zainstalować rozszerzenie Rozmiar repozytorium GitHub .
Repo tutaj: https://github.com/harshjv/github-repo-size
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-06 21:14:56
@ Larowlan świetny przykładowy kod. W Nowym GitHub API V3 Instrukcja curl musi zostać zaktualizowana. Ponadto Login nie jest już wymagany:
curl https://api.github.com/repos/$2/$3 2> /dev/null | grep size | tr -dc '[:digit:]'
Na przykład:
curl https://api.github.com/repos/dotnet/roslyn 2> /dev/null | grep size | tr -dc '[:digit:]'
Zwraca 931668
(W KB), czyli prawie GB.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-05-07 19:48:49
Aby to zrobić z curl (sudo apt-get curl) i JSON pretty (sudo Gem install jsonpretty json):
curl -u "YOURGITHUBUSERNAME" http://github.com/api/v2/json/repos/show/OWNER/REPOSITORY |
jsonpretty
Zastąp swoją nazwę Użytkownika na Githubie (go figure).
Zastąp właściciela nazwą użytkownika Git właściciela repozytorium. Zastąp repozytorium nazwą repozytorium.
Lub jako ładny skrypt Basha (wklej go do pliku o nazwie 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
Użyj go tak:
gitrepo-info larowlan pisi reel
To da mi informacje na temat repozytorium pisi / reel na Githubie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-03-25 23:37:01
Musisz postępować zgodnie z GitHub API. Szczegóły dotyczące repozytorium można znaleźć w dokumentacji tutaj. Wymaga złożenia żądania GET jako:
GET / repos/: owner/: repository
Musisz wymienić dwie rzeczy:
- :owner - nazwa użytkownika osoby, która jest właścicielem repozytorium
- : repozytorium - Nazwa repozytorium
Np. moja nazwa użytkownika maheshmnj i posiadam repozytorium, flutter-ui-nice , więc mój GET URL będzie:
https://api.github.com/repos/maheshmnj/flutter-ui-nice
Przy wysyłaniu żądania GET zostaniesz zalany danymi JSON i prawdopodobnie w linii 78 powinieneś zobaczyć klucz o nazwie size , który zwróci rozmiar repozytorium.
Wskazówka: podczas pracy z JSON proponuję dodać wtyczkę, która formatuje dane JSON, aby ułatwić czytanie JSON. Zainstaluj wtyczkę .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-03-25 23:47:40
W przypadku prywatnego repozytorium, musisz uzyskać osobisty Token dostępu z https://github.com/settings/tokens .
Następnie użyj następującego polecenia curl, aby uzyskać szczegóły (zastępując wartości dla [token], [owner] I [name]):
curl -u git:[token] https://api.github.com/repos/[owner]/[name] 2> /dev/null | grep size
Jak wspomniano wcześniej, rozmiar może być w MB lub KB.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-12-03 16:03:57
Podsumowując rozwiązania @larowlan, @ VMTrooper i @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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-27 23:20:15
Z JavaScript, ponieważ API Github jest włączone CORS:
fetch('https://api.github.com/repos/webdev23/source_control_sentry')
.then(v => v.json()).then((function(v){
console.log(v['size'] + "KB")
})
)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-11-05 15:38:44
Możesz to zrobić używając Github API
Oto przykład Pythona:
import requests
if __name__ == '__main__':
base_api_url = 'https://api.github.com/repos'
git_repository_url = 'https://github.com/garysieling/wikipedia-categorization.git'
github_username, repository_name = git_repository_url[:-4].split('/')[-2:] # garysieling and wikipedia-categorization
res = requests.get(f'{base_api_url}/{github_username}/{repository_name}')
repository_size = res.json().get('size')
print(repository_size)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-11-11 16:00:37
Można to osiągnąć używając konsoli przeglądarki i uruchamiając
fetch('https://api.github.com/repos/[USERNAME]/[REPO]')
.then(v => v.json()).then((function(v){
console.log(v['size'] + "KB")
})
)
Rozważmy praktyczny przykład.
Zakładając, że ktoś chce znaleźć Rozmiar tego repo używając Firefoksa.
Otwórz konsolę za pomocą Ctrl
+Shift
+K
.
Następnie wklej następujący kod
fetch('https://api.github.com/repos/goncaloperes/TimeSeries')
.then(v => v.json()).then((function(v){
console.log(v['size'] + "KB")
})
)
Naciśnij enter, a jeden otrzyma rozmiar repo, jak widać na obrazku poniżej.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-02-08 13:42:38
Jeśli próbujesz dowiedzieć się o wielkości własnych repozytoriów.
Wszystko, co musisz zrobić, to przejść do repozytoriów ustawień GitHub i zobaczyć wszystkie rozmiary tam w przeglądarce nie wymaga dodatkowej pracy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-02-13 00:17:12