Commit Convention

evergreenLast update on Jul 9, 2026
Download .md

Semua commit WAJIB mengikuti Conventional Commits. Validasi otomatis dengan commitlint via lefthook.

Format

<type>(<scope>): <description>

<body>

<footer>

Commit Types

TypeKegunaan
featFitur baru
fixPerbaikan bug
choreTugas maintenance, dependencies, tooling
docsPerubahan dokumentasi
refactorRefaktor kode (bukan fitur/fix)
stylePerubahan format (spasi, prettier, dll)
testNambah atau perbaiki test
perfOptimasi performa
ciPerubahan CI config
buildBuild system atau dependency
revertRevert commit sebelumnya

Scope

Scope opsional, gunakan untuk konteks tambahan:

feat(auth): add OAuth2 Google login
fix(api): handle empty request body
chore(deps): upgrade eslint to v10

Contoh Baik

feat: add student registration endpoint

Implement POST /api/v1/students dengan validasi NIM.
Integrasi dengan queue service untuk sending email.
fix(parser): handle null input in date formatter

Closes #42
chore: setup lefthook and commitlint

- Add lefthook for pre-commit hooks
- Add commitlint with conventional config
- Configure parallel lint + format jobs

Aturan

  1. Pakai bahasa Inggris untuk konsistensi
  2. Imperative mood: “add” bukan “added”/“adds”
  3. Deskripsi singkat (maks 72 karakter)
  4. Jangan titik di akhir description
  5. Body untuk menjelaskan kenapa, bukan apa

Config

commitlint.config.mjs:

export default {
  extends: ["@commitlint/config-conventional"],
};