Come posso scaricare un repository privato da GitHub che non ha accesso a 'git' sul mio computer locale?


9

Quello che voglio fare è scaricare l'archivio del repository privato da GitHub, estrarlo, rimuovere il file di archivio e copiare alcune directory all'interno del progetto scaricato.

Ho provato a usare wgetma non posso autorizzare me stesso:

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

Ho anche provato con 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

Qui l'autorizzazione passa, ma non riesco a estrarre il file.

Come farlo?


Perché non usi semplicemente git clone https://github.com/MY_USER/MY_REPO?
Tero Kilkanen,

1
Perché lo sto facendo sul server dove non c'è git.
Kamil Lelonek,

Risposte:


4

La soluzione con wgetsarebbe qualcosa di simile:

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>/

Appunti:

  • --strip-components=1 rimuoverà la directory di livello superiore contenuta nell'Arhive creato da GitHub,
  • assicuratevi di non mettere un finale /al termine delle directory che devono essere copiati con cp( <dir1>, <dir2>, ..., <dirn>) e che il finale /è presente alla fine della directory di destinazione ( <destination-dir>).

0

Se hai il tuo "token di accesso personale", puoi scaricare un archivio del ramo del tuo repository usando il comando curl:

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

ProjectID viene visualizzato nella pagina principale del repository.

È possibile ottenere il valore SHA dall'interfaccia utente Web dopo aver selezionato il ramo desiderato dal menu a discesa e aver copiato il valore a destra per SHA. Vedi lo screenshot qui sotto:

inserisci qui la descrizione dell'immagine

L'altro modo per farlo è tramite wget in questo modo:

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

Spero che aiuti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.