Skip to main content

[#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

  1. Masuk ke Manage Jenkins β†’ Configure System

  2. Scroll ke bagian GitLab

  3. Tambah GitLab connections

  4. 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

  1. Masuk ke GitLab project

  2. Menu Settings β†’ Webhooks

  3. Masukkan URL dari Jenkins:

    http://jenkins.local:8080/project/playwright-from-gitlab
    
  4. βœ… Centang:

    • Push events

    • (Optional) Merge Request events

  5. 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 stage npm ci, playwright test, dan publishHTML