Skip to content
Snippets Groups Projects
bayusamudra5502's avatar
Bayu Samudra authored
0b0505a2

ITBOpenCourseWare Backend

Repository ini adalah repository untuk OCW Backend

Requirements

Ini adalah requirement untuk menjalankan template ini:

  1. Go v1.19.3 [MANDATORY]
  2. Docker (Optional)
  3. Postgresql (Optional, when using docker)
  4. GNU Make 4.3 (Optional, when using docker)
  5. Minio (Optional, when using docker)
  6. Google wire v0.5.0 (https://github.com/google/wire) [MANDATORY]
  7. swaggo (https://github.com/swaggo/swag)
  8. Air command line (https://github.com/cosmtrek/air)
  9. Redis

Cara menjalankan

Untuk menjalankan server ini, gunakan:

make watch

Development Guide

  1. Checkout ke branch staging + pull

    git checkout staging
    git pull
  2. 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 menjadi fix/s<nomor sprint>-sb<nomor sb>-<apa yang diubah dari fitur tersebut>

    git checkout -b feat/s1-sb1-login
  3. Lakukan perubahan pada branch tersebut, commit dengan format feat(<scope fitur>): <isi perubahan>. Jika melakukan perubahan pada fitur yang sudah ada, formatnya menjadi fix(<scope fitur>): <isi perubahan>, lain-lainnya bisa dilihat di semantic commit

    git commit -m "feat(login): add login page"
  4. Push branch ke remote

    git push origin feat/s1-sb1-login
  5. 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, lalu git 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, lalu git add . dan git rebase --continue untuk melanjutkan rebase. Jika sudah selesai, push ulang branch anda ke remote dengan git 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.

    rebase illustration

  • Ada konflik saat melakukan rebase?

    Selesaikan konflik tersebut, lalu git add . dan git rebase --continue untuk melanjutkan rebase. Jika sudah selesai, push ulang branch anda ke remote dengan git push -f.

  • Ada konflik saat melakukan merge request?

    Selesaikan konflik tersebut, lalu git add . dan git commit --amend untuk menggabungkan konflik tersebut ke commit terakhir (jika malas). Push ulang branch anda ke remote dengan git 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 dengan git 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 dengan git push -f.