[#7 Troubleshoot] Error Hook executed successfully but returned HTTP 403
Oke! Karena di Jenkins-mu tidak ada opsi untuk disable CSRF, dan kita lanjut lewat GitLab Plugin (yang lebih aman dan recommended juga untuk production use) β berikut step-by-step lengkap integrasi GitLab β Jenkins via GitLab Plugin tanpa kena error 403.
π§ Langkah Integrasi GitLab β Jenkins (via GitLab Plugin)
β 1. Pastikan Plugin βGitLabβ Terinstall
-
Di Jenkins:
Manage Jenkins
βPlugin Manager
-
Cari dan pastikan β GitLab Plugin versi terbaru sudah terinstall
β 2. Tambahkan GitLab Connection ke Jenkins
-
Masuk ke
Manage Jenkins
βConfigure System
-
Scroll ke bagian GitLab
-
Tambah
GitLab connections
-
Isi:
-
Name:
gitlab-local
(boleh apa saja) -
GitLab host URL:
http://172.16.10.128/
(atau domain GitLab-mu) -
β Centang Ignore certificate errors (kalau GitLab pakai self-signed)
-
Tambahkan API token GitLab (Personal Access Token)
-
π Cara ambil GitLab Token:
-
GitLab β klik avatar (kanan atas) β Edit Profile β
Access Tokens
-
Buat token dengan scope:
api
,read_user
,read_repository
-
Copy token itu ke Jenkins
β 3. Buat Jenkins Job (Freestyle or Pipeline)
-
Buat Freestyle Project atau Pipeline Job
-
Di bagian Build Triggers:
β Centang: Build when a GitLab Push is received
Ini akan otomatis menghasilkan webhook URL di bawahnya, contoh:
http://jenkins.local:8080/project/playwright-from-gitlab
Salin URL itu, akan digunakan di GitLab nanti.
β 4. Setup Webhook di GitLab
-
Masuk ke GitLab project
-
Menu
Settings
βWebhooks
-
Masukkan URL dari Jenkins:
http://jenkins.local:8080/project/playwright-from-gitlab
-
β Centang:
-
Push events
-
(Optional) Merge Request events
-
-
Klik Add Webhook
β‘ GitLab akan langsung tes webhook, dan seharusnya tidak kena error 403 lagi, karena pakai endpoint /project/β¦
dari GitLab Plugin, bukan /build?token=β¦
.
β 5. (Opsional) Cek Log Webhook GitLab
-
Masuk GitLab project β
Settings > Webhooks
β klik βEditβ β lihat di bawah ada response log -
Harusnya status:
200 OK
π§ Tips Tambahan
-
Jenkins job-mu harus pakai SCM Git β isi URL GitLab project
-
Gunakan Jenkins credentials untuk autentikasi GitLab repo (jika private)
-
Di pipeline, bisa tetap pakai
Jenkinsfile
dengan stagenpm ci
,playwright test
, danpublishHTML
No Comments