JIPRAKS Classroom

Cara Bangun AI Agent untuk Otomatisasi Review Pull Request dengan n8n + LLM (MVP 1 Hari)

· 3 menit baca

Cara Bangun AI Agent untuk Otomatisasi Review Pull Request dengan n8n + LLM (MVP 1 Hari)

Pernah kebingungan menilai ratusan PR tiap minggu? Tim dev Anda terhambat karena review manual memakan waktu, kualitas code review tidak konsisten, dan bottleneck bikin deadline meleset. Solusinya? AI Agent yang menilai, memberi saran, dan bahkan menolak PR yang tidak lolos standar—semua dalam workflow n8n yang dapat Anda deploy dalam satu hari.

Kenapa AI Agent di GitHub Pull Request?

  • Kecepatan: LLM dapat menganalisa perubahan kode dalam hitungan detik.
  • Konsistensi: Checklist standar (lint, security, naming) dijalankan otomatis.
  • Skalabilitas: Tambahkan model lain (misal CodeBERT) tanpa ubah kode.

Arsitektur Ringkas (tanpa diagram)

Workflow n8n akan mengorkestrasi tiga komponen utama:

  1. Trigger GitHub Webhook: Event pull_requestopened atau synchronize.
  2. Node LLM (OpenAI/GPT-4o atau Llama‑2‑Chat): Mengirim diff PR, prompt checklist, dan mendapatkan review terstruktur.
  3. Node Action: Post comment ke PR, set label needs‑human‑review atau auto‑approved, serta optional merge.

Langkah Praktis Membuat MVP

1. Siapkan n8n di Docker (atau cloud)

docker run -d --name n8n \
  -p 5678:5678 \
  -e N8N_BASIC_AUTH_ACTIVE=true \
  -e N8N_BASIC_AUTH_USER=admin \
  -e N8N_BASIC_AUTH_PASSWORD=secret \
  n8nio/n8n

2. Buat Credential GitHub

  • Generate Personal Access Token dengan repo dan admin:repo_hook.
  • Di UI n8n → Credentials → New → GitHub → paste token.

3. Buat Credential LLM

Pilih provider:

  • OpenAI: OPENAI_API_KEY
  • Groq: GROQ_API_KEY
  • Self‑hosted Llama‑cpp: endpoint http://localhost:8080/v1/chat/completions

4. Rancang Prompt yang Efektif

You are a senior code reviewer. Analyze the following git diff and answer in JSON with these keys:
- "summary": 2‑sentence overview
- "issues": array of objects {"line": number, "type": "security|style|logic", "message": string}
- "suggested_fix": optional code snippet
- "approve": true/false

Only output valid JSON.

Diff:
{{ $json.diff }}

Prompt di‑store di Set Variable node sehingga mudah di‑tweak.

5. Bangun Workflow di n8n

  1. GitHub Trigger – pilih event pull_request & filter action = opened|synchronize.
  2. HTTP Request (GitHub API) – ambil diff via /pulls/{number} dengan header Accept: application/vnd.github.v3.diff.
  3. Set Variable – simpan diff ke data field.
  4. OpenAI / LLM node – kirim prompt + diff, set temperature: 0 untuk konsistensi.
  5. Function node – parse JSON response, decide label:
    if (review.approve) return [{json:{label:'auto-approved'}}];
    else return [{json:{label:'needs-human-review'}}];
  6. GitHub Node – Add Comment – gunakan /issues/{number}/comments untuk posting review.
  7. GitHub Node – Add Labels – set label berdasarkan keputusan.
  8. Optional: Auto‑Merge – jika auto-approved dan branch protected rules allow, call /pulls/{number}/merge.

6. Testing & Iterasi

  • Gunakan Workflow Execution di UI n8n, pilih Manual Trigger dengan payload contoh PR.
  • Perbaiki prompt jika LLM memberi false positive.
  • Tambahkan Node “CodeQL Scan” (optional) untuk security check.

Use Case Real: Startup SaaS “FinTrack”

FinTrack menerima rata‑rata 35 PR per hari. Dengan workflow di atas, tim mengurangi review manual 60%, mempercepat time‑to‑merge menjadi 2 jam dari 6 jam. AI Agent juga menandai 12% PR yang mengandung hard‑coded API key—masalah yang sebelumnya terlewat.

Strategi & Insight Penting

  • Prompt Engineering is Core: Selalu sertakan contoh singkat (```diff```) di prompt supaya model mengerti syntax.
  • Human‑in‑the‑Loop: Jangan langsung merge semua; gunakan label needs‑human‑review untuk edge case.
  • Cost Management: Set max_tokens dan temperature rendah; gunakan model cheaper (Llama‑2‑7B) untuk PR kecil.
  • Versioning Prompt: Simpan prompt di Git, dan gunakan n8n “Set” node untuk load dari file – memudahkan audit.
  • Observability: Tambahkan “Slack/Discord” node untuk alert ketika AI menolak PR dengan high severity.

Penutup & Call to Action

Dengan n8n + LLM Anda sudah bisa mengubah review PR menjadi proses setengah‑otomatis, meningkatkan kecepatan delivery, dan mengurangi human error. Mulailah dengan meng‑clone repo contoh di GitHub, sesuaikan credential, dan jalankan workflow. Jangan lupa iterasi prompt setiap minggu—karena AI yang bagus adalah AI yang terus belajar dari tim Anda.

Sudah siap membangun AI Agent review PR pertama Anda? Ikuti kelas Vibe Coding untuk deeper dive, atau langsung fork workflow dan beri komentar di repo!

Artikel terkait