Chcę wyświetlić całkowity rozmiar repozytorium projektu hostowanego na GitHub bez konieczności jego klonowania. Czasami robię to:

  1. Zacznij klonować repozytorium GitHub

    Odbieranie obiektów: 45% (218 / 476), 5,50 MiB | 27 KiB / s

    Czy już opróżniono 5 MB? Zawieś …

    ^Z 
  2. Sklonuj repozytorium na serwerze z normalnym połączeniem internetowym tylko w celu zobacz jego rozmiar.

  3. Kontynuować (lub przerwać) klonowanie lokalne.

Jak z wyprzedzeniem sprawdzić rozmiar repozytorium? W wyszukiwaniu widzę rozmiar repozytorium, ale nie w innych miejscach.

Komentarze

Odpowiedź

Korzystanie z interfejsu Github API:

$ echo https://github.com/hlamer/enki.git | perl -ne "print $1 if m!([^/]+/[^/]+?)(?:\.git)?$!" | xargs -i curl -s -k https://api.github.com/repos/"{}" | grep size "size": 284, 

Komentarze

  • Na Macu ' s nie -i parametr dla xargs, więc ' s: $ echo https://github.com/hlamer/enki.git | perl -ne 'print $1 if m!([^/]+/[^/]+?)(?:\.git)?$!' | xargs -I{} curl -s -k https://api.github.com/repos/'{}' | grep size
  • i to jest rozmiar w … kilobajtach?

Odpowiedź

W przeglądarce Firefox możesz użyć dodatku Rozmiar repozytorium GitHub .

pasek informacyjny github

Komentarze

  • Dlaczego głos przeciw? Czy rozszerzenie lub skrypt użytkownika nie działa lub zawiera złośliwe oprogramowanie?
  • Nie, wszystko działa dobrze …

Odpowiedź

Użyj przeglądarki Google Chrome i zainstaluj to rozszerzenie

Dodaje rozmiar repozytorium do strony głównej:

Zrzut ekranu rozszerzenia GitHub Repo Size

Odpowiedź

curl \ -H "Accept: application/vnd.github.v3+json" \ -s https://api.github.com/repos/torvalds/linux | \ jq ".size" | \ numfmt --to=iec --from-unit=1024 

Wyjaśnienie:

  1. pobierz informacje o repozytorium z github API za pomocą curl

Otrzymujemy następującą odpowiedź json:

{ "id": 2325298, "node_id": "MDEwOlJlcG9zaXRvcnkyMzI1Mjk4", "name": "linux", "full_name": "torvalds/linux", "private": false, ... "size": 3018913, <<<This is what we need "stargazers_count": 99224, "watchers_count": 99224, ... } 
  1. Prześlij odpowiedź json do parsera jq i znajdź wymaganą parę atrybut-wartość.

    . wskazuje katalog główny treści json, a size jest wymaganym atrybutem ibute z głównego korpusu

Dane wyjściowe (rozmiar w kB):

3018913 
  1. Następnie potokuj wyjście do numfmt
$ man numfmt --to=[UNIT] iec 1K = 1024, 1M = 1048576, ... --from-unit=N specify the input unit size (instead of the default 1) (it basically tells that the input is in kB(1024B) insted of B 

Dane wyjściowe:

2.9G 

W przypadku prywatnych repozytoriów podaj token jako nagłówek

-H "Authorization: token GITHUB_TOKEN" 

zamień GITHUB_TOKEN z tokenem github , który ma dostęp do prywatnych repozytoriów

https://command-not-found.com/jq

https://command-not-found.com/numfmt

Komentarze

  • Czy możesz wyjaśnić, do czego służy to polecenie? Jak to pomaga w tej sytuacji? Dzięki
  • Pobiera metadane repozytorium za pomocą curl, a następnie wyodrębnia " rozmiar " z niego za pomocą jq, a następnie konwertuje nieprzetworzone bajty na rozmiar pliku czytelny dla człowieka za pomocą numfmt.

Odpowiedź

Można to osiągnąć używając własnej 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 repozytorium za pomocą przeglądarki Firefox.

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 otrzymasz rozmiar repozytorium, jak widać na poniższym obrazku.

tutaj wprowadź opis obrazu

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *