Degiam, 06 Jun 2025
Deploy Repo GitLab Eksternal Ke Vercel dengan Akun Gratis

Secara default, akun gratis di Vercel hanya bisa melakukan deploy dari repository yang dimiliki sendiri. Fitur deploy dari repository eksternal (yang bukan milik kita) hanya tersedia di akun berbayar. Namun, ada solusi cerdas untuk mengakalinya: kita bisa mirror isi repository eksternal ke repository milik sendiri, lalu melakukan deploy ke Vercel dari repository milik sendiri tersebut.
Artikel ini akan membahas cara mengatur GitLab CI/CD agar otomatis menyalin isi dari repository eksternal ke repository pribadi, yang sudah terhubung dan terdeploy dengan Vercel.
Syarat GitLab
Kamu memiliki akses sebagai
Maintainer
pada repository eksternal tersebut (agar bisa menambahkan CI/CD Variable).Kamu sudah membuat repository di akun GitLab sendiri.
Buat Personal Access Token di GitLab
Buka GitLab, lalu ke menu
Preferences > Access Tokens
, atau bisa akses langsung via https://gitlab.com/-/user_settings/personal_access_tokens.Buat token baru dengan scope berikut:
✅ api
✅ read_repository
✅ write_repository

- Simpan token tersebut di tempat aman karena hanya ditampilkan sekali saja saat baru saja membuatnya.
Tambahkan CI/CD Variable pada Repo Eksternal
Buka repository eksternal, misalnya
https://gitlab.com/akun_teman_atau_group/nama_repo
.Masuk ke Settings > CI/CD > Variables, lalu tambahkan variable:
Key: TARGET_REPO_URL
Value: https://oauth2:<token>@gitlab.com/<nama_akun_gitlab_kamu>/<repo>.git
Penjelasan:
- Ganti
<token>
dengan token dari langkah 1 - Ganti
<nama_akun_gitlab_kamu>
dengan username GitLab kamu - Ganti
<repo>
dengan nama repository milik sendiri - Pada section
Visibility
, pilihMasked
✅ - Pada section
Flags
, jangan centangProtect variable
❌
Contoh:

Buat .gitlab-ci.yml pada Repo Eksternal
Berikut adalah contoh isi file .gitlab-ci.yml
:
stages:
- sync
sync_to_target:
stage: sync
only:
refs:
- main
script:
- git config --global user.name "GitLab CI"
- git config --global user.email "ci@example.com"
- git clone "$TARGET_REPO_URL" target-repo
- cd target-repo
- |
if git ls-remote --exit-code --heads origin main; then
git checkout main
else
git checkout --orphan main
fi
- cd ..
- find . -mindepth 1 -maxdepth 1 ! -name '.git' ! -name 'target-repo' -exec cp -r {} target-repo/ \;
- cd target-repo
- git add .
- git commit -m "Auto mirror" || echo "Nothing to commit"
- git push origin main
Pada contoh ini menggunakan branch main
, kamu bisa menganti sesuai dengan branch dari repository eksternal yang ingin dilakukan mirroring. Misal branch sumber ingin diubah dari branch dev
, maka cukup ubah bagian only > refs
menjadi :
only:
refs:
- dev
Lakukan Perubahan pada Repo Eksternal
Coba lakukan perubahan, lalu push commit ke repository eksternal. Akan terlihat proses dari CI/CD pada repository eksternal, jika proses sudah selesai, maka akan berubah menjadi centang.

Deploy Repo Pribadi ke Vercel
Pada dasbor Vercel, buat project baru, caranya :
Tekan tombol
Add New
, pilih opsiProject
.Pada
Import Git Repository
, pastikan GitLab sudah terhubung ke Vercel, cari repository yang tadi dibuat.Selesaikan proses pengaturan project hingga deployment berhasil.
Hasil Akhir
Dengan konfigurasi di atas, setiap kali ada perubahan di branch yang telah ditentukan pada repository eksternal, maka akan terjadi dua proses, yakni :
GitLab CI/CD akan otomatis menyalin seluruh file dari repository eksternal (sesuai branch yang telah ditentukan) ke repository milik sendiri pada branch main.
Vercel akan menangkap perubahan pada repository milik sendiri dan melakukan auto-deploy.