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:
-
Î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
-
Clonați depozitul pe un server cu o conexiune normală la internet doar la vezi dimensiunea acestuia.
- 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
- Verificați răspunsurile la această întrebare Stack Overflow .
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
pentruxargs
, 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 .
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ă:
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:
- 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, ... }
-
Introduceți răspunsul json la parser jq și găsiți perechea atribut-valoare necesară.
.
indică rădăcina corpului json șisize
este attrul necesar ibute din corpul rădăcinii
Ieșire (dimensiunea în kB):
3018913
- 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ândjq
, apoi convertește octeți bruti în dimensiunea fișierului citibil de om cunumfmt
.
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.