Wie kann ich ein privates Repository von GitHub herunterladen, das auf meinem lokalen Computer keinen Zugriff auf 'git' hat?

9

Ich möchte das private Repository-Archiv von GitHub herunterladen, extrahieren, die Archivdatei entfernen und einige Verzeichnisse kopieren, die sich im heruntergeladenen Projekt befinden.

Ich habe versucht zu verwenden wget, kann mich aber nicht autorisieren:

wget --header='Authorization: token MY_TOKEN_CREATED_ON_GITHUB' https://github.com/MY_USER/MY_REPO/archive/master.tar.gz -O - | tar xz

Ich habe es auch versucht mit cURL:

curl -i -H 'Authorization: token MY_TOKEN_CREATED_ON_GITHUB' https://github.com/MY_USER/MY_REPO/archive/master.tar.gz > file.tar.gz | tar xz

Hier vergeht die Autorisierung, aber ich kann die Datei nicht extrahieren.

Wie geht das?

Kamil Lelonek
quelle
Warum benutzt du nicht einfach git clone https://github.com/MY_USER/MY_REPO?
Tero Kilkanen
1
Weil ich es auf einem Server mache, auf dem es keinen Git gibt.
Kamil Lelonek
Könnte
errordeveloper

Antworten:

4

Die Lösung mit wgetwäre so etwas wie:

wget --header="Authorization: token <OAUTH-TOKEN>" -O - \
    https://api.github.com/repos/<owner>/<repo>/tarball/<version> | \
    tar xz --strip-components=1 && \
    cp -r <dir1> <dir2> ... <dirn> <destination-dir>/

Anmerkungen:

  • --strip-components=1 entfernt das Verzeichnis der obersten Ebene, das in dem von GitHub erstellten Arhive enthalten ist.
  • stellen Sie sicher , Sie keine abschließenden setzen /am Ende der Verzeichnisse , die kopiert werden sollten mit cp( <dir1>, <dir2>, ..., <dirn>) und dass die hinteren /am Ende des Zielverzeichnisses vorhanden ist ( <destination-dir>).
tjanez
quelle
0

Vorausgesetzt, Sie haben Ihr eigenes "Personal Access Token", können Sie mit dem Befehl curl ein Archiv des Zweigs Ihres Repositorys herunterladen:

curl -k --header "PRIVATE-TOKEN: xxxx" https://gitlab.xxxxx/api/v4/projects/<projectID>/repository/archive?sha=630bc911c1c20283d3980dcb95fd5cb75479bb9c -o myFilename.tar.gz

Die Projekt-ID wird auf der Hauptseite des Repos angezeigt.

Sie können den SHA-Wert von der webUI abrufen, nachdem Sie den gewünschten Zweig aus dem Pulldown ausgewählt und den Wert rechts für den SHA kopiert haben. Siehe Screenshot unten:

Geben Sie hier die Bildbeschreibung ein

Der andere Weg, dies zu tun, ist über wget wie folgt:

wget --no-check-certificate -O myFilename.zip --header=PRIVATE-TOKEN:xxxx "https://gitlab.xxxx/api/v4/projects/<projectID>/repository/archive.zip?sha=630bc911c1c20283d3980dcb95fd5cb75479bb9c"

Ich hoffe das hilft.

frakman1
quelle