Haluan tarkastella GitHubissa isännöidyn projektin koko repokokoa tarvitsematta kloonata sitä. Joskus teen tämän:

  1. Aloita jonkin GitHub-tietovaraston kloonaus

    Objektien vastaanottaminen: 45% (218 / 476), 5,50 MiB | 27 KiB / s

    Oletko jo tyhjentänyt 5 Mt? Keskeytä …

    ^Z 
  2. Kloonaa arkisto palvelimelle, jolla on normaali internetyhteys vain katso sen koko.

  3. Jatka (tai keskeytä) paikallista kloonausta.

Kuinka tiedän arkiston koon etukäteen? Haussa näen arkiston koon, mutta ei muissa paikoissa.

Kommentit

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 parametrille xargs, 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.

github-tietopalkki

kommentit

  • Miksi alamäki? Eikö laajennus tai usercript toimi tai sisältää haittaohjelmia?
  • Ei, kaikki toimii hienosti …

Vastaa

Käytä Google Chrome -selainta ja asenna tämä laajennus

Lisää repo-koti etusivulle:

GitHub Repo Size -laajennuksen kuvakaappaus

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:

  1. 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, ... } 
  1. Kirjoita json-vastaus jq-jäsentimeen ja etsi vaadittu attribuutti-arvo-pari.

    . osoittaa json-rungon juuren ja size on vaadittu attr ibute juurirungosta

Tulos (koko kB):

3018913 
  1. 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 tiedostokokoiksi numfmt.

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.

kirjoita kuvan kuvaus tähän

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *