1. Konsep Kerja Webhooks CI/CD
Tanpa Webhooks, Jenkins harus memantau repositori Git dengan teknik Polling SCM (misal setiap 5 menit), yang tidak efisien dan menyebabkan penundaan (delay). Dengan Webhooks, GitHub akan secara aktif mengirimkan HTTP POST payload ke URL Jenkins begitu ada peristiwa git push.
2. Langkah Konfigurasi Webhook GitHub ke Jenkins
- Pastikan server Jenkins memiliki IP/Domain Publik (atau gunakan tunnel seperti
ngrok http 8080untuk pengujian lokal). - Di Jenkins: Install plugin
GitHub Integration Plugin. - Di GitHub Repository -> Settings -> Webhooks -> Add Webhook.
- Payload URL:
http://<JENKINS_URL>/github-webhook/ - Content type:
application/json. - Select events: Just the push event atau Pull requests.
Contoh Test Webhook Payload (HTTP POST Body)
{
"ref": "refs/heads/main",
"before": "0000000000000000000000000000000000000000",
"after": "92f7a5b3a4c180901b239d1b092309101b023023",
"repository": {
"name": "payment-api",
"full_name": "myorg/payment-api",
"clone_url": "https://github.com/myorg/payment-api.git"
},
"pusher": {
"name": "developer-eko"
}
}