# Pull Request — Wajib Sebelum Membuat PR Sebelum membuat PR, **selalu jalankan dua perintah ini terlebih dahulu:** ```bash git log origin/master..origin/staging --oneline # lihat semua commit yang belum masuk master git diff origin/master...origin/staging --stat # lihat semua file yang berubah ``` Deskripsi PR harus mencakup **semua commit** yang ada di staging tapi belum di master — bukan hanya commit terakhir. Jangan sampai ada commit/file yang terlewat. # Pull Request Format Setiap PR wajib menggunakan struktur berikut: **Title:** `TASKCODE - deskripsi singkat` **Body:** ``` ## Latar Belakang Masalah [Root cause atau kebutuhan yang melatarbelakangi perubahan] ## Perubahan - [Bullet point perubahan spesifik per komponen/fungsi/store] ## File yang Diubah | File | Komponen/Fungsi | Keterangan | |---|---|---| | `path/to/Component.vue` | `method X` | deskripsi singkat | ## Test yang Harus Dilakukan QA - [ ] Skenario normal: ... - [ ] Skenario edge case: ... - [ ] Skenario negatif: ... - [ ] Regression: pastikan fitur terkait tidak rusak ``` # Commit Message Format - Sebelum membuat commit, **selalu tanya kode task** kepada user. - Format commit message wajib: `TASKCODE - deskripsi singkat` - Contoh: `6D9QD6 - buat api baru` - Jangan buat commit tanpa kode task dari user. - Kode task digunakan untuk sinkronisasi timesheet Odoo. - Sebelum push atau menyiapkan merge branch kerja, selalu cek base branch remote yang benar terlebih dahulu, lalu jalankan `git fetch origin` dan `git rebase` ke base remote tersebut agar conflict muncul lebih awal dan proses merge lebih minim error. - Push branch kerja ke remote lalu buat merge request ke `main`; proses merge ikuti permission dan alur review repo, jangan direct push ke `main` kecuali diminta eksplisit. - Jangan pernah melakukan `git push --force` atau varian force-push lain. # Auto Sync ke Devcpone - Repo ini punya **post-commit hook** di `.githooks/post-commit` yang otomatis menjalankan `scripts/devcpone_sync.sh`. - Setiap `git commit` di branch `master` atau `staging` akan langsung rsync file yang berubah ke `devcpone.aplikasi.web.id:/home/one/project/one/one-ui/`. - Hook sudah aktif (`core.hooksPath = .githooks`), tidak perlu jalankan script deploy manual. - Jangan bilang tidak ada hook/sync sebelum mengecek `.githooks/` dan `scripts/` terlebih dahulu.