Vreau să vizualizez dimensiunea totală a repo a unui proiect găzduit pe GitHub fără a fi nevoie să îl clonați. Uneori fac acest lucru:

  1. Începeți să clonați o magazie GitHub

    Obține obiecte: 45% (218 / 476), 5,50 MiB | 27 KiB / s

    Ai deja golit 5 MB? Suspendați …

    ^Z 
  2. Clonați depozitul pe un server cu o conexiune normală la internet doar la vezi dimensiunea acestuia.

  3. Continuă (sau renunță) la clonarea locală.

Cum aflu în avans dimensiunea depozitului? În căutare văd dimensiunea depozitului, dar nu și în alte locuri.

Comentarii

Răspuns

Utilizarea API-ului 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, 

Comentarii

  • Pe Mac, nu există ' Parametru -i pentru xargs, deci ' 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 asta este dimensiunea în … kilobyți?

Răspunde

În Firefox puteți utiliza suplimentul GitHub Repository Size .

bara de informații github

Comentarii

  • De ce votul negativ? Extensia sau usercriptul nu funcționează sau conține programe malware?
  • Nu, totul funcționează bine …

Răspunde

Utilizați browserul Google Chrome și instalați această extensie

Adaugă dimensiunea repo la pagina principală:

Captură de ecran extensia GitHub Repo Size

Răspuns

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

Explicație:

  1. preluați informații despre repo de la github api utilizând curl

Primim un răspuns json ca acesta:

{ "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. Introduceți răspunsul json la parser jq și găsiți perechea atribut-valoare necesară.

    . indică rădăcina corpului json și size este attrul necesar ibute din corpul rădăcinii

Ieșire (dimensiunea în kB):

3018913 
  1. Apoi introduceți ieșirea către 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 

Ieșire:

2.9G 

Pentru repozitii private treceți un jeton ca antet

-H "Authorization: token GITHUB_TOKEN" 

înlocuiți GITHUB_TOKEN cu un token github care are acces la repozitii private

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

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

Comentarii

  • Puteți explica ce face această comandă? Cum ajută în această situație? Mulțumim
  • Preluează metadate din depozit folosind curl, apoi extrage " dimensiune " câmpul din acesta utilizând jq, apoi convertește octeți bruti în dimensiunea fișierului citibil de om cu numfmt.

Răspuns

Se poate realiza acest lucru folosind consola de browser și rularea

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

Să considerăm un exemplu practic.

Presupunând că cineva dorește să găsească dimensiunea această repo folosind Firefox.

Deschideți consola cu Ctrl + Shift + K.

Apoi lipiți următorul cod

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

Apăsați Enter și veți primi dimensiunea repo, așa cum se poate vedea în imaginea de mai jos.

introduceți descrierea imaginii aici

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *