Dalam batas-batas proyek Bot GitHub telah dikembangkan untuk menangani tugas-tugas layanan mandiri wajib bagi pengguna repositori. Di GitHub, Anda dapat menemukan repositori yang fungsi utamanya adalah mengoordinasikan orang-orang melalui sistem Isu. Di beberapa repositori, pengirim isu diminta untuk mengisi formulir. Seorang moderator kemudian masuk, memeriksa keakuratan formulir, dan menetapkan tag sesuai dengan yang ditentukan dalam formulir (tag hanya dapat ditetapkan oleh pengguna yang memiliki hak istimewa kecuali ditentukan dalam templat). Contoh komunitas semacam itu adalah .
Moderator tidak langsung datang. Oleh karena itu, untuk memeriksa formulir dan melakukan operasi Tindakan GitHub yang ditampilkan dalam berita. Bot ini ditulis dalam Python, tetapi tetap harus dijalankan melalui Node.js, karena GitHub hanya mendukung dua jenis tindakan—Node.js dan Docker. Docker pertama-tama memuat kontainer yang sama berisi Node.js, lalu memuat kontainer lain ke dalamnya, yang membutuhkan waktu. Mengingat kontainer Node.js sudah memiliki Python3 dan semua yang dibutuhkan, masuk akal untuk hanya memuat dependensinya, yang untungnya berukuran kecil.
Fitur:
- Tindakan dikontrol menggunakan konfigurasi YAML dan templat Markdown;
- Setiap templat Markdown dilengkapi dengan blok yang menjelaskan kondisi untuk mengisi formulir dengan benar dan tindakan yang diinginkan;
- Berkas konfigurasi dengan pengaturan global ditambahkan;
- Formulir terdiri dari beberapa bagian. Ada dua jenis bagian:
- Teks bebas. Tindakan ini dapat memverifikasi bahwa pengguna telah meluangkan waktu untuk mengisi apa pun. Kepekaan teks tidak diperiksa secara otomatis.
- Kotak centang. Anda dapat meminta n kotak centang untuk diisi, sehingga 0 = m1 = n = m2 = jumlah total kotak centang di bagian tersebut. Tindakan ini memverifikasi bahwa kotak centang tersebut cocok dengan kotak centang di templat. Jika kotak centang diatur dengan benar, tindakan ini dapat menetapkan tag masalah yang sesuai dengan kotak centang tersebut.
- Jika formulir diisi dengan tidak benar, tindakan tersebut akan memberi petunjuk kepada pengguna tentang cara mengisinya dengan benar dan memberikan tanda khusus.
- Jika formulir tidak diperbaiki dalam jangka waktu tertentu, tindakan tersebut dapat menutup masalah. Larangan pengguna otomatis, penghapusan, dan pemindahan masalah belum diterapkan karena kurangnya API resmi untuk tindakan yang diperlukan dan masalah dengan penyimpanan status.
- Jika masalah teratasi, tindakan tersebut akan menghapus label.
- Template respons tindakan tentu saja dapat disesuaikan.
Sumber: opennet.ru
