Bagaimana saya bisa mengunduh repositori pribadi dari GitHub yang tidak memiliki akses ke 'git' di mesin lokal saya?

9

Yang ingin saya lakukan adalah mengunduh arsip repositori pribadi dari GitHub, mengekstraknya, menghapus file arsip, dan menyalin beberapa direktori yang ada di dalam proyek yang diunduh.

Saya mencoba menggunakan wgettetapi saya tidak dapat mengotorisasi diri:

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

Saya juga mencoba dengan 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

Di sini otorisasi berlalu, tetapi saya tidak dapat mengekstrak file.

Bagaimana cara melakukannya?

Kamil Lelonek
sumber
Kenapa kamu tidak pakai saja git clone https://github.com/MY_USER/MY_REPO?
Tero Kilkanen
1
Karena saya melakukannya di server di mana tidak ada git.
Kamil Lelonek
Mungkin bisa menyelesaikan masalah Anda: stackoverflow.com/questions/23347134/…
errordeveloper

Jawaban:

4

Solusi dengan wgetakan menjadi seperti:

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

Catatan:

  • --strip-components=1 akan menghapus direktori tingkat atas yang terkandung dalam GitHub yang dibuat,
  • Pastikan Anda tidak menempatkan Trailing /pada akhir direktori yang akan disalin dengan cp( <dir1>, <dir2>, ..., <dirn>) dan bahwa trailing /hadir pada akhir direktori tujuan ( <destination-dir>).
tjanez
sumber
0

Asalkan Anda memiliki "Token Akses Pribadi" Anda sendiri, Anda dapat mengunduh arsip cabang repositori Anda dengan menggunakan perintah curl:

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

ProjectID ditampilkan di halaman utama repo.

Anda dapat memperoleh nilai SHA dari webUI setelah memilih cabang yang Anda inginkan dari pull-down dan menyalin nilai di sebelah kanan untuk SHA. Lihat tangkapan layar di bawah ini:

masukkan deskripsi gambar di sini

Cara lain untuk melakukan ini adalah melalui wget seperti ini:

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

Saya harap itu membantu.

frakman1
sumber