Memutuskan untuk ganti gigi dari Renovate ke Dependabot adalah langkah yang cukup masuk akal, apalagi kalau kamu ingin ekosistem yang lebih menyatu dengan infrastruktur native GitHub. File konfigurasimu sebelumnya memang sudah cukup matang, lengkap dengan aturan pengelompokan (grouping) hingga skema automerge. Namun, menerjemahkannya ke format Dependabot butuh sedikit penyesuaian karena kedua sistem ini punya filosofi kerja yang berbeda.

Ilustrasi pemindahan konfigurasi dari JSON Renovate ke YAML Dependabot
Realita Pahit Migrasi: Ada beberapa fitur Renovate yang ~~harus kamu ikhlaskan~~ tidak didukung langsung oleh Dependabot:
  • Dukungan Bun: Dependabot belum memiliki ekosistem bun yang terpisah secara native seperti Renovate. Dia akan membaca project Bun kamu di bawah payung ekosistem npm (akan mem-parsing package.json, tapi perbaikan lockfile bun.lockb mungkin tidak semulus Renovate).
  • Aturan Waktu (Hourly Limit & Release Age): Dependabot tidak punya fitur untuk menunda rilis selama "2 days" atau membatasi pembuatan PR per jam. Dia hanya membatasi total PR yang terbuka saja.
  • Dashboard: File dependencyDashboard digantikan secara otomatis oleh tab Security & Insights bawaan GitHub.

Langkah 1: Membuat File dependabot.yml

Alih-alih JSON, Dependabot menggunakan format YAML. Kamu harus membuat file ini dan meletakkannya di path .github/dependabot.yml di dalam repositorimu. Berdasarkan konfigurasimu, kita akan menyetel batasan 5 PR serentak (open-pull-requests-limit), mengelompokkan web-optimizers dan external-services, serta menugaskan PR tersebut ke akun frijal.

version: 2
updates:
 # Ekosistem 1: GitHub Actions
 - package-ecosystem: "github-actions"
 directory: "/"
 schedule:
 interval: "daily"
 open-pull-requests-limit: 5
 assignees:
 - "frijal"
 # Ekosistem 2: NPM (Untuk Bun / Node.js)
 - package-ecosystem: "npm"
 directory: "/"
 schedule:
 interval: "daily"
 open-pull-requests-limit: 5
 versioning-strategy: increase # Setara dengan rangeStrategy: "bump"
 assignees:
 - "frijal"
 # Aturan Pengelompokan (Grouping)
 groups:
 web-optimizers:
 patterns:
 - "sharp"
 - "@minify-html/node"
 - "cheerio"
 - "@xmldom/xmldom"
 - "glob"
 external-services:
 patterns:
 - "wrangler"
 - "tumblr.js"
 # Mengabaikan update Major (Karena di Renovate kamu set automerge: false)
 # Dependabot tetap akan bikin PR Major,
 # tapi kita tidak akan meng-automerge-nya nanti.

Langkah 2: Mengembalikan "Sihir" Automerge

Di masa lalu, Dependabot punya fitur automerge di dalam YAML-nya. Namun, GitHub sudah menghapus fitur tersebut demi alasan keamanan. Untuk meniru perilaku di file JSON lamamu—yaitu melakukan automerge untuk patch dan minor (kecuali yang berawalan 0.x), serta automerge keamanan—kamu wajib membuat GitHub Actions Workflow khusus.

Buat file baru di .github/workflows/dependabot-automerge.yml dengan konfigurasi berikut:

name: Dependabot Auto-merge
on: pull_request
permissions:
 pull-requests: write
 contents: write
jobs:
 dependabot:
 runs-on: ubuntu-latest
 if: github.actor == 'dependabot[bot]'
 steps:
 - name: Dependabot metadata
 id: metadata
 uses: dependabot/fetch-metadata@v2
 with:
 github-token: "${{ secrets.GITHUB_TOKEN }}"
 - name: Approve a PR
 run: gh pr review --approve "$PR_URL"
 env:
 PR_URL: ${{github.event.pull_request.html_url}}
 GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
 - name: Auto-merge untuk Patch dan Minor
 # Automerge diaktifkan HANYA jika bukan update Major
 if: ${{steps.metadata.outputs.update-type == 'version-update:semver-patch' || steps.metadata.outputs.update-type == 'version-update:semver-minor'}}
 run: gh pr merge --auto --squash "$PR_URL"
 env:
 PR_URL: ${{github.event.pull_request.html_url}}
 GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

Penyesuaian Ekstra di Repository Settings

Agar alur kerja GitHub Actions di atas berjalan mulus, pastikan kamu mengaktifkan opsi "Allow auto-merge" di pengaturan repositorimu (Settings* -> General -> Pull Requests). Dengan kombinasi dependabot.yml dan *workflow rahasia ini, kamu berhasil meniru sekitar 80% kekuatan file konfigurasi Renovate lamamu ke dalam ekosistem Dependabot yang jauh lebih ringan.

Artikel oleh: Fakhrul Rijal

Diperbarui pada: 30 Mei 2026

Panduan translasi skema konfigurasi ini diverifikasi berdasarkan spesifikasi YAML Dependabot v2 terbaru dan manajemen Dependabot Metadata API untuk workflow GitHub Actions. Resolusi paket Bun dalam Dependabot mungkin mengalami penyesuaian seiring dengan rilis tambalan platform GitHub di masa mendatang.