# Integrasi GitLab dan Slack
Workspace Slack kita sudah terintegrasi dengan GitLab sebagai Version Control System dan CI/CD yang kita gunakan untuk pengembangan perangkat lunak dalam setiap timnya. Terdapat 2 metode/arah integrasi yang dimungkinkan yaitu:
Melakukan berbagai perintah GitLab (membuat issue, melihat issue, menutup issue, deployment, dll.) yang biasanya dilakukan melalui situs GitLab terhadap suatu project/repositori tertentu. Bagian ini selanjutnya akan disebut sebagai
GitLab Slack application
. Contohnya adalah seperti gambar di bawah ini.Mendapat notifikasi di channel Slack tertentu terkait hal-hal yang terjadi (adanya issue baru, Merge Request yang di-merged, ada issue yang ditutup, tes/build/deployment yang gagal, dll.) pada suatu project/repositori GitLab tertentu. Bagian ini selanjutnya akan disebut sebagai
GitLab Slack notification
. Contohnya adalah seperti gambar di bawah ini.
# GitLab Slack application
# Pemakaian GitLab Slack application
GitLab Slack application
dapat digunakan dengan menggunakan slash commands
berawalan /gitlab
dengan bentuk lengkap /gitlab <project-name> <command> <body>
dan diketik di channel manapun seperti kamu berbincang di channel Slack dengan syarat repositori <project-name>
di GitLab sudah mengaktifkan Slack application
di bagian Integration
.
- Gunakan
/gitlab help
untuk melihat semuaslash commands
yang memungkinkan untuk dijalankan di dalam Slack. - Daftar lengkap dari semua
slash commands
yang dimungkinkan dapat dilihat pada halaman ini. - Beberapa contohnya adalah
/gitlab kawal-diri issue new build frontend
untuk membuat issue baru di repositori/projectkawal-diri
dengan judul issuebuild frontend
atau/gitlab self-diagnose issue show 3
untuk menampilkan issue nomor 3 dari repository/projectself-diagnose
.
# Setup GitLab Slack application
Terdapat beberapa langkah yang butuh untuk dijalankan sebelum sebuah repositori/project dapat diubah state-nya melalui slash commands di Slack atau yang kita sebut dengan GitLab Slack application
yaitu:
- Buka halaman Integration pada project/repositori yang ingin diintegrasikan ke dalam Slack yakni dengan *Project > Settings > Integrations.
- Pergi ke bagian Slack application dan tekan tombol Add to Slack untuk mengintegrasikan repositori/project tersebut ke Slack dengan
GitLab Slack application
. - Setelah memastikan bahwa workspace Slack yang akan diintegrasikan adalah workspace KawalCOVID19, tekan tombol allow untuk memperbolehkan.
- Kamu dapat mengubah nama project atau yang disebut juga dengan project alias yang akan diacu sebagai
project-name
padaslash commands
yang nantinya akan diketik di Slack channel. Rekomendasinya adalah gunakan cukup nama project/repositorinya saja. Contohnya ubah darikawalcovid19/ppe-marketplace/ppe-marketplace-backend
menjadippe-marketplace-backend
dengan menekan tombol edit. - Jika kamu melihat gambar seperti di bawah maka kamu telah berhasil melakukan setup untuk
GitLab Slack application
untuk project/repositori tersebut.
# GitLab Slack notification
# Pemakaian GitLab Slack notification
Kamu akan mendapatkan notifikasi di channel yang telah didefinisikan sesuai dengan kejadian atau perubahan status yang diatur pada bagian setup dari integrasi project/repositori terhadap workspace Slack.
# Setup GitLab Slack notification
Terdapat beberapa langkah yang butuh untuk dijalankan sebelum sebuah channel Slack bisa mendapatkan notifikasi ketika terdapat perubahan state atau aksi yang terjadi dari sebuah repositori/project GitLab atau yang kita sebut dengan GitLab Slack notification
yaitu:
Dari workspace Slack, ke bagian kiri atas di mana terdapat tulisan KawalCOVID19 dan username Slackmu, klik, Administration > Manage apps > Custom Integrations > Incoming WebHooks > Add to Slack.
Pilih channel yang akan menjadi tujuan notifikasi, sesuaikan repositori/project dengan channel dari tim project tersebut. Misalnya notifikasi repositori
ppe-marketplace/ppe-marketplace-backend
dikirimkan ke channel#team-ppe-marketplace
. Klik tombolAdd Incoming WebHooks integration
untuk mendapatkan WebHook URL.Salin dan simpan
WebHook URL
dalam bentukhttps://hooks.slack.com/services/string1/string2
. Di halaman ini kamu juga dapat mengkustomisasi beberapa opsi pada bagianIntegration settings
di bagian bawah seperti label deskriptif, mengubah nama, mengubah mengubah ikon, dan lainnya.Buka halaman Integration pada project/repositori GitLab yang ingin diintegrasikan ke dalam Slack yakni dengan *Project > Settings > Integrations > Slack notifications.
Paste
WebHook URL
yang tadi telan disalin ke bagian formWebhook
di bagian bawah.Di sini kamu juga dapat mengkustomisasi beberapa opsi sesuai kebutuhan tim dan project atau agar tidak terlalu banyak pesan yang menumpuk pada channel tim. Misalnya tim kamu hanya ingin mendapatkan update perihal issue dan bukan push maka checkbox push dapat dihilangkan centangnya. Atau juga channel dapat di-override dari pilihan yang sudah ditentukan ketika melakukan setup di Slack di tahap sebelumnya. Kustomisasi yang biasanya dilakukan yaitu:
- Trigger push diisi dengan channel
gl-push
. - Trigger note dan confidential note diisi dengan channel
gl-comments
. - Trigger pipeline diisi dengan channel
gl-pipeline
. - Username diisi dengan nama
kawalcovid19-<nama-tim/*project*>
. - Branches to be notified diisi dengan All branches.
- Trigger push diisi dengan channel
Jika sudah selesai melakukan kustomisasi, tekan tombol
Test settings and save changes
untuk memfinalisasi integrasi.Jika kamu melihat gambar seperti di bawah maka kamu telah berhasil melakukan setup untuk
GitLab Slack notification
untuk project/repositori tersebut.