568 Stimmen

Wie kann ich die Größe eines GitHub-Repositorys sehen, bevor ich es klone?

Gibt es eine Möglichkeit zu sehen, wie groß ein Git-Repository auf GitHub ist, bevor man sich entscheidet, es zu klonen?

Dies scheint eine wirklich offensichtliche/grundlegende Statistik zu sein, aber ich kann nicht herausfinden, wie man sie auf GitHub überhaupt sehen kann.

2 Stimmen

5 Stimmen

@KennyTM sehr ähnliche Frage, ja, aber dies ist spezifisch für Github und nicht für jede Methode, die nur das Git-Protokoll verwendet.

3 Stimmen

FYI, schauen Sie sich diese Chrome-Erweiterung an, die automatisch die Repository-Größe zur GitHub-Repository-Zusammenfassung hinzufügt github.com/harshjv/github-repo-size . UPDATE: Dies wurde als Antwort hinzugefügt

3voto

Alon Barad Punkte 957

Sie können dazu die Github-API verwenden

Dies ist das Python-Beispiel:

import requests

if __name__ == '__main__':
    base_api_url = 'https://api.github.com/repos'
    git_repository_url = 'https://github.com/garysieling/wikipedia-categorization.git'

    github_username, repository_name = git_repository_url[:-4].split('/')[-2:]  # garysieling and wikipedia-categorization
    res = requests.get(f'{base_api_url}/{github_username}/{repository_name}')
    repository_size = res.json().get('size')
    print(repository_size)

3voto

Besworks Punkte 2563

Ich habe eine bookmarklet Skript, um dies mit der Methode aus Die Antwort des NVRM .

Um es zu verwenden, erstellen Sie ein neues Lesezeichen, geben Sie ihm einen Namen und fügen Sie dieses Skript in das URL-Feld ein. Wenn Sie beim Durchsuchen eines Repos auf dieses Lesezeichen klicken, erscheint eine Meldung mit der Größe des Repos in Megabytes und Kilobytes.

javascript:(()=>{let url=new URL(document.location.href);if(url.origin!="https://github.com"){return}if(url.pathname=="/"){return}let p=url.pathname.slice(1,url.pathname.length);let parts=p.split('/');if(parts.length<2){return}let x=[parts[0],parts[1]].join('/');fetch(`https://api.github.com/repos/${x}`).then(r=>r.json()).then((b)=>alert(`${(b['size']/1000).toFixed(2)}mb (${b['size']}kb)`))})()

2voto

golem Punkte 1641

Um die Lösungen von @larowlan, @VMTrooper und @vahid chakoshy zusammenzufassen:

#!/usr/bin/env bash

if [ "$#" -eq 2 ]; then
    echo "$(echo "scale=2; $(curl https://api.github.com/repos/$1/$2 2>/dev/null \
    | grep size | head -1 | tr -dc '[:digit:]') / 1024" | bc)MB"
elif [ "$#" -eq 3 ] && [ "$1" == "-z" ]; then
    # For some reason Content-Length header is returned only on second try
    curl -I https://codeload.github.com/$2/$3/zip/master &>/dev/null  
    echo "$(echo "scale=2; $(curl -I https://codeload.github.com/$2/$3/zip/master \
    2>/dev/null | grep Content-Length | cut -d' ' -f2 | tr -d '\r') / 1024 / 1024" \
    | bc)MB"
else
    printf "Usage: $(basename $0) [-z] OWNER REPO\n\n"
    printf "Get github repository size or, optionally [-z], the size of the zipped\n"
    printf "master branch (`Download ZIP` link on repo page).\n"
    exit 1
fi

2voto

Mike Godin Punkte 3280

Für ein privates Repository müssen Sie ein persönliches Zugangs-Token von https://github.com/settings/tokens .

Verwenden Sie dann den folgenden curl-Befehl, um die Details abzurufen (indem Sie die Werte für [token], [owner] und [name] ersetzen):

curl -u git:[token] https://api.github.com/repos/[owner]/[name] 2> /dev/null | grep size

Wie bereits erwähnt, kann die Größe in MB oder KB angegeben werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X