Jika Anda ingin mengakses file dari GitLab pribadi, Anda dapat menggunakan pendekatan di bawah ini yang berhasil untuk saya :)
Bangun URL:
https://url/api/v4/projects/projectId/repository/files/fileName/raw?ref=master&private_token=Generated_private_token
- url adalah url Gitlab Anda ex:git.lab.com.
- /api/v4/projects adalah konstanta.
- projectId adalah projectId dari proyek Anda, yang dapat Anda temukan di bawah nama proyek Anda di gitlab.
- /repositori/file sekali lagi adalah konstanta.
- namaberkas adalah nama file ex:sagar.txt
- /raw?ref= adalah konstanta dan nilai ref dapat berupa master atau cabang mana pun yang ingin Anda ambil filenya. Saya sedang mengambil file dari Guru.
- Generated_private_token harus dihasilkan dari gitlab, silakan ikuti langkah-langkah yang disebutkan di tautan:Buat Token Pribadi
Perbarui 25-12-2018:
selama Anda tidak mengunduh file besar, ini akan berfungsi:
curl -s -H "Private-Token: <token>" "https://gitlab.com/api/v4/projects/<urlencode("gitlab_username/project_name")>/repository/files/<path/to/file>/raw?ref=<branch_name>"
, contoh nyata, mendownload file /README.md
dari repositori pribadi https://gitlab.com/divinity76/Yur17
, dengan url unduhan web adalah https://gitlab.com/divinity76/Yur17/raw/master/README.md?inline=false
, adalah:
curl -s -H "Private-Token: afF2s1xgk6xcwXHy3J4C" "https://gitlab.com/api/v4/projects/divinity76%2Fyur17/repository/files/README%2Emd/raw?ref=master"
perhatikan secara khusus bagaimana gitlab_username/repo_name
dikodekan dengan url, misalnya /
menjadi %2F
(Anda dapat memeriksa bagaimana nama pengguna &nama repo Anda sebagai url-encoded dengan membuka terminal javascript browser Anda dan menulis encodeURIComponent("your_username/repo_name");
di terminal dan tekan enter.)
berkat Jonathan Hall
@ gitlab di mg.gitlab.com, dan https://docs.gitlab.com/ee/api/repository_files.html , dan tvl untuk membantu mencapai solusi.
Perbarui 2018-12-11:metode ini tidak lagi berfungsi, sekarang hanya melayani halaman login, dengan pesan bertuliskan need to log in to continue
, bahkan menggunakan HTTP 200 OK (memalukan), akan diperbarui jika saya mengetahui alasannya ( @XavierStuvw mengklaim ini terkait dengan masalah keamanan)
saya menemukan cara yang jauh lebih mudah untuk melakukannya daripada jawaban @tvl,
pertama buat token akses dengan akses API di sini:https://gitlab.com/profile/personal_access_tokens , lalu lakukan:
wget --header 'PRIVATE-TOKEN: <token>' 'https://gitlab.com/<username>/<repo>/raw/master/path/to/file.ext'
saya menemukan solusinya di sini.
Dengan bantuan berharga Chris, berikut adalah bagaimana Anda dapat menjalankan skrip (drupal .make file dalam kasus saya) dari server GitLab. (Mungkin ini berfungsi untuk GitHub tapi saya tidak mengujinya. Mungkin sintaksnya akan sedikit berbeda). (Tentu saja ini berfungsi untuk semua jenis skrip)
Itu dapat dilakukan dengan menggunakan token otentikasi. Ini dokumentasi API GitLab dan ini API GitHub
Untuk memudahkan saya akan menggunakan https://gitlab.com sebagai server contoh.
-
Buka https://gitlab.com/profile/account dan temukan "Token pribadi" Anda
-
Kemudian cetak daftar proyek dan temukan id proyek yang Anda cari
curl https://gitlab.com/api/v3/projects?private_token=<your_private_token>
atau buka dengan browser Anda (penampil json akan sangat membantu)
-
Kemudian cetak daftar file yang ada di proyek ini dan temukan id file yang Anda cari
curl https://gitlab.com/api/v3/projects/<project_id>/repository/tree?private_token=<your_private_token>
-
Akhirnya dapatkan / jalankan file!
curl https://gitlab.com/api/v3/projects/<project_id>/repository/raw_blobs/<file_id>?private_token=<your_private_token>
Jika Anda ingin menjalankan skrip (drupal .make)
drush make https://gitlab.com/api/v3/projects/<project_id>/repository/raw_blobs/<file_id>?private_token=<your_private_token> <drupal_folder>
(Jika Anda di sini mencari alur kerja untuk mengintegrasikan GitLab dengan platform Aegir .make tanpa menggunakan token (mungkin SSH?), silakan buat utas dan tempel tautannya di sini.)
EDIT
Anda bisa mendapatkan file tanpa project_id
dengan menggunakan dikodekan Nama Proyek. Misalnya my-user-name/my-project
akan menjadi:my-user-name%2Fmy-project