Dalam tutorial kali ini, saya akan menjelaskan cara mirroring repository antara selfhost gitlab dengan gitlab cloud
Apa itu Gitlab Self Host Server?
Gitlab Self Host Server adalah sebutan untuk gitlab yang terinstall di server milik kita biasanya nanti dapat kita akses melalui domain milik pribadi seperti https://gitlab.domainanda.com. Silahkan kunjungi link bagaimana cara install Gitlab Server di sini.
Apa itu Gitlab Cloud?
Gitlab Cloud adalah gitlab yang sudah tersedia di internet atau yang bisa kita akses melalui link https://gitlab.com.
Sebagai contoh disini saya sudah memiliki banyak repository yang sudah tersimpan di gitlab cloud namun saya ingin beralih menggunakan gitlab self host server tanpa menghapus repository di gitlab cloud dan membuat gitlab cloud sebagai backup yang akan otomatis syncron datanya dengan gitlab self host server.
Langsung saja untuk anda yang belum memiliki akun gitlab.com bisa daftar saja langsung diwebsitenya dan jika belum menginstall gitlab self host server silahkan bisa ikuti tutorialnya di sini.

Cara Mirroring Repository Gitlab
A. Pengaturan di gitlab cloud.
- Buatlah user administrator terlebih dahulu, lalu invite user tersebut ke dalam group/project repository yang ingin di mirroring dengan role mainteners.
- Buka salah satu project repository
- Arahkan mouse ke menu settings disebelah kanan, pilih menu repository
- Klik tombol expand pada section Mirroring repositories
- Masukkan git url dari gitlab self host server nya dengan format: https://user-mainteners@gitlab.domainanda.com/group-repo/reponya.git
- Pada pilih authentication method, pilih password
- Lalu masukkan password user mainteners nya dan save.
- Klik tombol expand pada section Protected branches
- Pada opsi Branches ketik simbol wildcard/bintang ( * )
- Pada opsi Allowed to merge pilih Developers + Mainteners
- Pada opsi Allowed to push and merge pilih Developers + Mainteners
- Pada opsi Allowed to force push switch menjadi enable
B. Pengaturan di gitlab self host server.
- Import Project repository dari gitlab cloud ke gitlab self host server. Cara import project bisa liat di sini.
- Buatlah user administrator terlebih dahulu, lalu invite user tersebut ke dalam group/project repository yang ingin di mirroring dengan role mainteners.
- Buka salah satu project repository
- Arahkan mouse ke menu settings disebelah kanan, pilih menu repository
- Klik tombol expand pada section Mirroring repositories
- Masukkan git url dari gitlab cloud tujuan dengan format: https://user-mainteners@gitlab.com/group-repo/reponya.git
- Pada pilih authentication method, pilih password
- Lalu masukkan password user mainteners nya dan save.
- Klik tombol expand pada section Protected branches
- Pada opsi Branches ketik simbol wildcard/bintang ( * )
- Pada opsi Allowed to merge pilih Developers + Mainteners
- Pada opsi Allowed to push and merge pilih Developers + Mainteners
- Pada opsi Allowed to force push switch menjadi enable
Setelah melakukan mirroring mohon dicatat atau berhati-hati dengan mungkin mengikuti tata cara menggunakan mirroring repo sebagai berikut ini:
- Pastikan hanya fokus push dan update pada 1 gitlab instance saja, tentukanlah apakah anda ingin melakukan perubahan data di gitlab cloud atau gitlab server.
- Disarankan untuk tidak melakukan perubahan data secara bersamaan pada gitlab cloud dan gitlab self host server untuk mencegah data konflik atau file repo yang berantakan.
- Pastikan untuk tidak mengubah akses password username gitlab mainteners yang telah dibuat di gitlab cloud dan gitlab self host server
- Pastikan untuk proses push repository antar gitlab instance berjalan tanpa ada error (status push repo bisa dilihat pada menu settings > repository > mirroring repositories > expand)
- Agar proses mirroring lancar, sebaiknya anda mencoba terlebih dahulu dengan membuat satu project testing.
Demikian cara mirroring repository antara gitlab self host server dan gitlab cloud. Jika ada pertanyaan, silahkan untuk tulis di kolom komentar ya 🙂