Ich möchte die Gesamtgröße eines auf GitHub gehosteten Projekts anzeigen, ohne es klonen zu müssen. Manchmal mache ich Folgendes:

  1. Starten Sie das Klonen eines GitHub-Repositorys

    Empfangen von Objekten: 45% (218 / 476), 5,50 MiB | 27 KiB / s

    Bereits 5 MB abgelassen? Anhalten …

    ^Z 
  2. Klonen Sie das Repository auf einem Server mit einer normalen Internetverbindung nur zu Siehe Größe.

  3. Setzen Sie das lokale Klonen fort (oder brechen Sie es ab).

Wie kann ich die Größe des Repositorys im Voraus ermitteln? Bei der Suche wird die Größe des Repositorys angezeigt, jedoch nicht an anderen Stellen.

Kommentare

Antwort

Verwenden der Github-API:

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

Kommentare

  • Auf dem Mac gibt es ' s-Nr -i Parameter für xargs, also ' 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
  • und das ist die Größe in … Kilobyte?

Antwort

In Firefox können Sie das Add-On GitHub-Repository-Größe verwenden.

Github-Info-Leiste

Kommentare

  • Warum die Abwertung? Funktioniert die Erweiterung oder das Userscript nicht oder enthält sie Malware?
  • Nein, alles funktioniert einwandfrei …

Antwort

Verwenden Sie den Google Chrome-Browser und installieren Sie diese -Erweiterung

Fügt der Startseite die Repo-Größe hinzu:

Screenshot der GitHub Repo-Größenerweiterung

Antwort

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

Erläuterung:

  1. Repo-Informationen von github api mit curl abrufen

Wir erhalten eine JSON-Antwort wie folgt:

{ "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. Leiten Sie die json-Antwort an jq-Parser und suchen Sie das erforderliche Attribut-Wert-Paar.

    . gibt die Wurzel des JSON-Körpers an und size ist das erforderliche Attribut ibute vom Stammkörper

Ausgabe (die Größe in kB):

3018913 
  1. Leiten Sie dann die Ausgabe an 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 

weiter Ausgabe:

2.9G 

Übergeben Sie für private Repos ein Token als Header.

-H "Authorization: token GITHUB_TOKEN" 

ersetzen GITHUB_TOKEN mit einem Github-Token , der Zugriff auf private Repos hat

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

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

Kommentare

  • Können Sie erklären, was dieser Befehl bewirkt? Wie hilft es in dieser Situation? Danke
  • Es ruft Repository-Metadaten mit curl ab und extrahiert dann " size " Feld daraus mit jq und konvertiert dann Rohbytes mit numfmt in eine lesbare Dateigröße.

Antwort

Dies kann mit der Browserkonsole erreicht werden und

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

Betrachten wir ein praktisches Beispiel.

Angenommen, man möchte die Größe von dieses Repos mit Firefox ermitteln.

Öffnen Sie die Konsole mit Ctrl + Shift + K.

Fügen Sie dann den folgenden Code ein:

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

Drücken Sie die Eingabetaste, und Sie erhalten die Größe des Repos, wie Sie im Bild unten sehen können.

Geben Sie hier die Bildbeschreibung ein.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.