ITBOpenCourseWare Backend
Repository ini adalah repository untuk OCW Backend
Requirements
Ini adalah requirement untuk menjalankan template ini:
- Go v1.19.3 [MANDATORY]
- Docker (Optional)
- Postgresql (Optional, when using docker)
- GNU Make 4.3 (Optional, when using docker)
- Minio (Optional, when using docker)
- Google wire v0.5.0 (https://github.com/google/wire) [MANDATORY]
- swaggo (https://github.com/swaggo/swag)
- Air command line (https://github.com/cosmtrek/air)
- Redis
Cara menjalankan
Untuk menjalankan server ini, gunakan:
make watch
Development Guide
-
Checkout ke branch staging + pull
git checkout staging git pull
-
Buat branch baru dari staging dengan format
feat/s<nomor sprint>-sb<nomor sb>-<nama fitur dipisah dengan strip (-)>
. Jika membuat perubahan dari fitur yang sudah ada di staging, formatnya menjadifix/s<nomor sprint>-sb<nomor sb>-<apa yang diubah dari fitur tersebut>
git checkout -b feat/s1-sb1-login
-
Lakukan perubahan pada branch tersebut, commit dengan format
feat(<scope fitur>): <isi perubahan>
. Jika melakukan perubahan pada fitur yang sudah ada, formatnya menjadifix(<scope fitur>): <isi perubahan>
, lain-lainnya bisa dilihat di semantic commitgit commit -m "feat(login): add login page"
-
Push branch ke remote
git push origin feat/s1-sb1-login
-
Buat merge request ke branch staging, tambah assignee diri sendiri dan reviewer
Handling Accidents
-
Salah branch untuk commit?
Gunakan
git reset --soft HEAD~1
untuk menghapus commit terakhir, lalugit checkout <branch yang benar>
untuk kembali ke branch yang benar. Commit ulang dengan format yang benar. Tapi hal ini hanya bisa dilakukan sebelum push ke remote.Baru sadar salah branch setelah beberapa commit? Gunakan
git reset --soft HEAD~<jumlah commit sebelumnya>
-
Ada update baru dari staging ketika sedang mengerjakan pekerjaan di branch sendiri?
Sebenarnya jika itu pekerjaan orang yang tidak ada hubungannya dengan anda, tidak masalah.
Tapi jika iya, contohnya ingin mengambil komponen yang baru ada di staging, gunakan
git rebase staging
untuk mengambil update dari staging. Jika ada konflik, selesaikan konflik tersebut, lalugit add .
dangit rebase --continue
untuk melanjutkan rebase. Jika sudah selesai, push ulang branch anda ke remote dengangit push -f
.Sistem kerja rebase basically memutuskan semua commit pekerjaan anda sampai commit terakhir yang sinkron dengan staging, git pull dari staging, lalu menyambungkan kembali sehingga dapat meminimalisir konflik, walaupun tetap bisa ada konflik, terutama jika ada perubahan di file sama. Selengkapnya bisa dilihat ilustrasinya sebagai berikut.
-
Ada konflik saat melakukan rebase?
Selesaikan konflik tersebut, lalu
git add .
dangit rebase --continue
untuk melanjutkan rebase. Jika sudah selesai, push ulang branch anda ke remote dengangit push -f
. -
Ada konflik saat melakukan merge request?
Selesaikan konflik tersebut, lalu
git add .
dangit commit --amend
untuk menggabungkan konflik tersebut ke commit terakhir (jika malas). Push ulang branch anda ke remote dengangit push -f
. -
Ada salah di pesan commit terakhir?
Gunakan
git commit --amend
untuk mengganti commit terakhir dengan commit baru. Jika sudah selesai, push ulang branch anda ke remote dengangit push -f
. -
Baru sadar ada salah pesan di beberapa commit sebelumnya?
Gunakan
git rebase -i HEAD~<jumlah commit sebelumnya>
untuk mengubah pesan commit dari commit terakhir hingga beberapa sebelumnya. Jika sudah selesai, push ulang branch anda ke remote dengangit push -f
.