Desidero visualizzare la dimensione totale del repository di un progetto ospitato su GitHub senza doverlo clonare. A volte lo faccio:

  1. Avvia la clonazione di alcuni repository GitHub

    Ricezione di oggetti: 45% (218 / 476), 5,50 MiB | 27 KiB / s

    Hai già esaurito 5 MB? Sospendi …

    ^Z 
  2. Clona il repository su un server con una normale connessione Internet solo per vedere la sua dimensione.

  3. Continuare (o interrompere) la clonazione locale.

Come faccio a scoprire in anticipo la dimensione del repository? Nella ricerca vedo la dimensione del repository, ma non in altri posti.

Commenti

Risposta

Utilizzo dellAPI Github:

$ 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, 

Commenti

  • Su Mac, ' no -i parametro per xargs, quindi ' 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
  • e questa è la dimensione in … kilobyte?

Risposta

In Firefox puoi utilizzare il componente aggiuntivo GitHub Repository Size .

barra delle informazioni di github

Commenti

  • Perché il voto negativo? Lestensione o lo script utente non funzionano o contengono malware?
  • No, tutto funziona perfettamente …

Risposta

Utilizza il browser Google Chrome e installa questa estensione

Aggiunge la dimensione del repository alla home page:

Screenshot dellestensione GitHub Repo Size

Risposta

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

Spiegazione:

  1. recupera le informazioni sul repository da github api utilizzando curl

Otteniamo una risposta json come questa:

{ "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. Invia la risposta json a parser jq e trova la coppia attributo-valore richiesta.

    . indica la radice del corpo json e size è lattrazione richiesta ibute dal corpo della radice

Output (la dimensione in kB):

3018913 
  1. Quindi reindirizza loutput a 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 

Risultato:

2.9G 

Per i repository privati, passare un token come intestazione

-H "Authorization: token GITHUB_TOKEN" 

sostituisci GITHUB_TOKEN con un token github che ha accesso a repository privati

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

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

Commenti

  • Puoi spiegare cosa fa questo comando? Come aiuta in questa situazione? Grazie
  • Recupera i metadati del repository utilizzando curl, quindi estrae " size " da esso utilizzando jq, quindi converte i byte non elaborati in dimensioni di file leggibili dalluomo con numfmt.

Risposta

Si può ottenere ciò utilizzando la propria console del browser ed eseguendo

fetch("https://api.github.com/repos/[USERNAME]/[REPO]") .then(v => v.json()).then((function(v){ console.log(v["size"] + "KB") }) ) 

Consideriamo un esempio pratico.

Supponendo che si voglia trovare la dimensione di questo repository utilizzando Firefox.

Apri la console con Ctrl + Shift + K.

Quindi incolla il seguente codice

fetch("https://api.github.com/repos/goncaloperes/TimeSeries") .then(v => v.json()).then((function(v){ console.log(v["size"] + "KB") }) ) 

Premi invio e si riceverà la dimensione del repo come si può vedere nellimmagine qui sotto.

inserisci qui la descrizione dellimmagine

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *