GitLab API v4 menyediakan endpoint khusus untuk mengelola CI/CD variables secara programatik pada level project, group, dan instance. Fitur ini memungkinkan pengembang dan DevOps engineer untuk membuat, membaca, memperbarui, serta menghapus variabel environment tanpa harus mengakses antarmuka web GitLab secara manual, sangat berguna untuk otomatisasi pipeline dan infrastruktur.
Untuk mengakses endpoint ini, Anda memerlukan Personal Access Token (PAT), Project Access Token, atau CI_JOB_TOKEN dengan hak akses yang memadai (biasanya level Maintainer atau Owner). Seluruh permintaan API wajib menyertakan token tersebut di dalam header HTTP dengan kunci PRIVATE-TOKEN.
Daftar Endpoint Utama GitLab API v4 CI/CD Variables
Tabel berikut merangkum endpoint HTTP yang paling sering digunakan untuk mengelola variabel CI/CD pada level project dalam GitLab API v4:
| Metode | Endpoint URL | Deskripsi Fungsi |
|---|---|---|
| GET | /projects/:id/variables |
Menampilkan daftar semua variabel CI/CD dalam suatu project. |
| GET | /projects/:id/variables/:key |
Menampilkan detail dari variabel tertentu berdasarkan kuncinya. |
| POST | /projects/:id/variables |
Membuat variabel CI/CD baru di dalam project. |
| PUT | /projects/:id/variables/:key |
Memperbarui nilai atau konfigurasi variabel yang sudah ada. |
| DELETE | /projects/:id/variables/:key |
Menghapus variabel CI/CD dari project. |
Parameter Permintaan (Request Parameters)
Saat melakukan operasi pembuatan (POST) atau pembaruan (PUT) variabel pada project, terdapat beberapa parameter standar yang wajib atau opsional disertakan dalam payload:
- key (string, wajib): Nama variabel (contoh:
DATABASE_URL). - value (string, wajib): Nilai dari variabel tersebut.
- variable_type (string, opsional): Jenis variabel, bernilai
env_var(default) ataufile. - protected (boolean, opsional): Jika
true, variabel hanya terekspos pada branch yang dilindungi (protected branches). Default:false. - masked (boolean, opsional): Jika
true, nilai variabel akan disembunyikan di log pipeline. Default:false. - environment_scope (string, opsional): Batasan environment (contoh:
production,*). Default:*.
Contoh Implementasi Menggunakan cURL
Berikut adalah contoh praktis penggunaan perintah cURL untuk berinteraksi langsung dengan GitLab API v4 dalam mengelola variabel project.
1. Mengambil Daftar Variabel
curl --header "PRIVATE-TOKEN: " "https://gitlab.com/api/v4/projects/12345678/variables"
2. Menambah Variabel Baru
curl --request POST --header "PRIVATE-TOKEN: " \
--data "key=API_KEY&value=secret123&masked=true&protected=true" \
"https://gitlab.com/api/v4/projects/12345678/variables"
3. Menghapus Variabel
curl --request DELETE --header "PRIVATE-TOKEN: " \
"https://gitlab.com/api/v4/projects/12345678/variables/API_KEY"
Manajemen Variabel Level Group dan Instance
Selain level project, GitLab API v4 juga mendukung pengelolaan variabel pada level group dan instance (admin). Struktur URL untuk level group menggunakan endpoint /groups/:id/variables, sedangkan untuk instance menggunakan /admin/ci/variables. Parameter yang digunakan umumnya serupa dengan level project, namun membutuhkan hak akses administrator untuk level instance.
Troubleshooting dan Tips Lapangan
Kesalahan 404 Not Found: Pastikan ID project atau nama kunci (key) variabel sudah benar. Perhatikan bahwa pencarian kunci yang mengandung karakter khusus mungkin memerlukan URL encoding (misalnya garis miring / diganti dengan %2F).
Kesalahan 401 Unauthorized: Token akses yang digunakan mungkin sudah kedaluwarsa atau tidak memiliki cakupan (scope) api yang diperlukan untuk membaca dan menulis data konfigurasi.