Membuat HTTP server di Golang yang bisa menerima dan memproses event dari GitHub Webhooks secara real-time.
| Istilah | Penjelasan |
|---|---|
| Webhook | GitHub kirim HTTP POST ke servermu saat ada event |
| X-Hub-Signature-256 | Header HMAC untuk verifikasi request dari GitHub |
| X-GitHub-Event | Tipe event: push, pull_request, issues, dll |
| ngrok | Tool untuk expose localhost ke internet (buat dev) |
| Secret | Kunci rahasia untuk validasi request beneran dari GitHub |
cd 02-webhook-github
go run main.go
# Server jalan di :8080
# Install ngrok: https://ngrok.com
ngrok http 8080
# Copy URL https://xxxx.ngrok.io
Repo → Settings → Webhooks → Add webhook
Payload URL : https://xxxx.ngrok.io/webhook
Content type: application/json
Secret : rahasia-lokal-123
Events : Just the push event
GITHUB_WEBHOOK_SECRET=secret-kamu
PORT=8080