Haluan tarkastella GitHubissa isännöidyn projektin koko repokokoa tarvitsematta kloonata sitä. Joskus teen tämän:
-
Aloita jonkin GitHub-tietovaraston kloonaus
Objektien vastaanottaminen: 45% (218 / 476), 5,50 MiB | 27 KiB / s
Oletko jo tyhjentänyt 5 Mt? Keskeytä …
^Z
-
Kloonaa arkisto palvelimelle, jolla on normaali internetyhteys vain katso sen koko.
- Jatka (tai keskeytä) paikallista kloonausta.
Kuinka tiedän arkiston koon etukäteen? Haussa näen arkiston koon, mutta ei muissa paikoissa.
Kommentit
- Tarkista vastaukset kysymykseen tämä pinon ylivuotokysymys .
vastaus
Github-sovellusliittymän käyttäminen:
$ 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,
Kommentit
- Macissa ' ei ole
-i
-parametri parametrillexargs
, joten se ' 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
- ja se on kokoa … kilotavuina?
Vastaa
Firefoxissa voit käyttää GitHub-arkiston koko -lisäosaa.
kommentit
- Miksi alamäki? Eikö laajennus tai usercript toimi tai sisältää haittaohjelmia?
- Ei, kaikki toimii hienosti …
Vastaa
Vastaus
curl \ -H "Accept: application/vnd.github.v3+json" \ -s https://api.github.com/repos/torvalds/linux | \ jq ".size" | \ numfmt --to=iec --from-unit=1024
Selitys:
- hae repotiedot github apista käyttämällä curl
Saamme seuraavanlaisen Json-vastauksen:
{ "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, ... }
-
Kirjoita json-vastaus jq-jäsentimeen ja etsi vaadittu attribuutti-arvo-pari.
.
osoittaa json-rungon juuren jasize
on vaadittu attr ibute juurirungosta
Tulos (koko kB):
3018913
- Suorita sitten lähtö 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
Tulos:
2.9G
Yksityisille repoille siirrä tunniste otsikkona
-H "Authorization: token GITHUB_TOKEN"
korvaa GITHUB_TOKEN github-tunnuksella , jolla on pääsy yksityisiin repoihin
https://command-not-found.com/jq
https://command-not-found.com/numfmt
Kommentit
- Voitteko selittää, mitä tämä komento tekee? Kuinka se auttaa tässä tilanteessa? Kiitos
- Se hakee arkiston metatiedot käyttämällä
curl
ja poimi sitten " koon " -kenttä siitä käyttämälläjq
ja muuntaa sitten raakatavut ihmisen luettaviksi tiedostokokoiksinumfmt
.
Vastaus
Tämä voidaan saavuttaa käyttämällä selainkonsolia ja käynnissä
fetch("https://api.github.com/repos/[USERNAME]/[REPO]") .then(v => v.json()).then((function(v){ console.log(v["size"] + "KB") }) )
Tarkastellaan käytännön esimerkkiä.
Olettaen, että joku haluaa löytää tämän repon koon Firefoxin avulla.
Avaa konsoli painamalla Ctrl
+ Shift
+ K
. / p>
Liitä sitten seuraava koodi
fetch("https://api.github.com/repos/goncaloperes/TimeSeries") .then(v => v.json()).then((function(v){ console.log(v["size"] + "KB") }) )
Paina Enter-näppäintä ja yksi saa repon koon, kuten kuvassa näkyy.