
Menggunakan bot gitlab sebagai contoh, saya akan menunjukkan bagaimana mengotomatiskan proses rilis untuk fungsi-fungsi tanpa server dengan secara otomatis memperbarui mereka dari repositori git. Kami beralih dari game ke pengembangan praktis di serverless.
Apa itu bot gitlab?
Bayangkan Anda perlu mengotomatiskan proses reaksi untuk membuat tugas / bug di pelacak Anda, misalnya Gitlab (Masalah) atau Jira. Anda mungkin perlu menambahkan artis secara otomatis tergantung pada tag, memindahkan tugas ke tonggak tertentu, menambahkan komentar, atau hanya menutup bug jahat. Semua ini sangat mudah dilakukan menggunakan fungsi tanpa server. Sebagai contoh, kami akan menambahkan komentar (Catatan dalam terminologi Gitlab) ke tugas yang baru dibuat (Masalah).
Dan karena bot dapat sering berubah, kami akan mengotomatiskan rilisnya dengan secara otomatis menyinkronkan fungsi dengan repositori git di mana ia berada.
Pengaturan lingkungan
Pertama, kita perlu membuat proyek di Gitlab. Jika Anda tidak memiliki akun Gitlab, Anda dapat membuatnya di
sini . Anda dapat membuat proyek publik baru, misalnya, dengan memalsukan proyek saya
https://gitlab.com/bbelky/gitbotswf dengan mengklik tombol
Fork di sudut kanan atas.
Untuk dapat mengedit kode bot, Anda harus mengkloningnya secara lokal. Bahkan, untuk keperluan panduan ini, kita bisa melakukan ini secara online, tetapi kita akan lebih dekat dengan kehidupan nyata. Buka terminal Anda dan tiru repositori git. Tautan dapat ditemukan di sudut kanan atas proyek Anda
Clone >
Clone with HTTPS . Simpan sebagai
URL Gitlab , itu akan tetap berguna bagi kita.
git clone <link to your repo> cd gitbotswf/ ls README.md main.go
Ada file main.go di repositori hasil kloning. Ini bot kami ditulis dalam golang. Bot sangat sederhana: ia menerima webhook dari Gitlab pada saat pembuatan tugas baru (Masalah) dan menambahkan komentar (catatan dalam terminologi Gitlab) untuk tugas yang dibuat. Ada komentar di main.go untuk membantu Anda mengetahui cara kerja bot. Kami tidak akan membahas hal ini secara lebih rinci.
Jangan tutup terminal - beberapa saat kemudian kita perlu mengedit file
main.go.Kita juga perlu membuat API Token Gitlab untuk mengakses API hitlab.
- Buka profil Gitlab Anda> Pengaturan > Token Akses.
- Buat token baru dengan lingkup api.
- Salin dan simpan sebagai GITLABTOKEN .
Bot
Saatnya membuat bot itu sendiri. Mari kita membuat fungsi tanpa server dengan kode bot kami berdasarkan pada platform tanpa server
Swifty . Jika Anda belum memiliki akun di Rusonyx Swifty, maka sekarang saatnya untuk
membuatnya . Kami ingin mengotomatiskan proses penerapan fungsi baru, jadi mari kita lakukan urutan berikut: hubungkan repositori git kami, buat fungsi berdasarkan kode dari git, dan masukkan token api gitlab dalam repositori aman.
- Masuk ke Swifty dan pilih Repositori
- Klik Lampirkan Repo , pilih jenis URL Git dan rekatkan URL Gitlab Anda.
- Ingatlah untuk memilih opsi repositori Mirror secara otomatis dan klik Done.
Sekarang Swifty akan secara otomatis menyinkronkan dengan repositori Anda (jangan tarik git) setiap 30 menit. Sekarang buat fungsinya sendiri:
- Pergi ke Fungsi > Fungsi Baru > Dari tab repo (Templat) .
- Pilih repositori yang baru ditambahkan, misalnya, gitlab.com/bbelky/gitbotswf.git . Sekarang Anda melihat file dari repositori Anda.
- Pilih file main.go , klik Berikutnya.
- Pilih opsi Sinkronkan dengan repositori , masukkan nama fungsi gitbotswf, dan klik Buat .
Sekarang kita membutuhkan pemicu HTTP API, ketika dipanggil, fungsinya akan diaktifkan:
- Buka tab Pemicu > Tambah Pemicu > REST API (URL) .
- Salin URL yang dihasilkan dan simpan sebagai BOT_URL .
Hebat, sekarang kami memiliki repositori dan fungsi yang disinkronkan dengannya secara otomatis. Sekarang tambahkan Token API Gitlab kami ke Akun Swifty - repositori aman dan terenkripsi untuk kata sandi dan token.
- Buka Akun > Buat Akun .
- Pilih Jenis Generik .
- Beri nama GITLABTOKEN dan salin token Anda. Simpan.
Sekarang tambahkan token ke fungsi:
- Pergi ke Fungsi > fungsi gitbotswf > Akses dan klik Tambah .
- Pilih jenis Akun , GITLABTOKEN dan klik Tambah .
Nyalakan webhook
Pada tahap terakhir, kita perlu membuat webhook di Gitlab yang akan diaktifkan setiap kali Isu baru dibuat. Mari kita beralih ke Gitlab.
- Pilih proyek Anda> Pengaturan > Integrasi .
- Tambahkan BOT_URL yang sebelumnya disimpan ke bidang URL .
- Centang kotak di sebelah Masalah acara dan klik Tambahkan webhook .
Tes
Mari kita pergi ke proyek di Gitlab, pada tab
Masalah dan membuat
Masalah baru. Periksa komentarnya. Ya! Jika semuanya bekerja dengan baik, maka kita akan melihat komentar
"Terima kasih telah melaporkan masalah baru!" . Jika terjadi kesalahan di suatu tempat, tanyakan kami di sini atau ajukan pertanyaan di
slot .
Perbarui dan rilis otomatis bot
Bagaimana jika kita perlu memperbarui bot kita? Berkat integrasi dengan git, semua yang perlu Anda lakukan adalah memperbarui kode Anda (ubah teks catatan, misalnya), jalankan kode di Gitlab dan Swifty akan secara otomatis memperbarui fungsi Anda!
Jadi, buka file
main.go di terminal dan ubah variabel
note :
note := "Comments%20changed!"
Perbarui git:
git add * git commit -m "changes" git push origin master
Pergi tanpa server!