Ich möchte die Gesamtgröße eines auf GitHub gehosteten Projekts anzeigen, ohne es klonen zu müssen. Manchmal mache ich Folgendes:
-
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
-
Klonen Sie das Repository auf einem Server mit einer normalen Internetverbindung nur zu Siehe Größe.
- 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
- Überprüfen Sie die Antworten auf diese Stapelüberlauffrage .
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ürxargs
, 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.
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:
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:
- 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, ... }
-
Leiten Sie die json-Antwort an jq-Parser und suchen Sie das erforderliche Attribut-Wert-Paar.
.
gibt die Wurzel des JSON-Körpers an undsize
ist das erforderliche Attribut ibute vom Stammkörper
Ausgabe (die Größe in kB):
3018913
- 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 mitjq
und konvertiert dann Rohbytes mitnumfmt
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.