V rámci projektu bol pripravený bot pre GitHub, ktorý rieši úlohy na nútené samoobsluhovanie používateľov repozitára. Na GitHub-e sa dajú nájsť repozitáre, ktorých jedinou funkciou je koordinácia ľudí prostredníctvom systému Issue. V niektorých z nich sa žiada používateľov, aby vyplnili formulár. Potom príde moderátor, skontroluje správnosť vyplnenia formulára a priradí štítky v súlade s uvedenými v formulári (štítky môže priradiť iba privilégiovaný používateľ, ak nie sú zadané v šablóne). Príkladom takejto komunity je .
Moderátor neprichádza okamžite. Preto na kontrolu formulárov a vykonávanie operácií je predstavená v správe akcia na GitHub-e. Bot je napísaný v Pythone, ale je potrebné ho spustiť cez node.js, pretože GitHub má len 2 typy akcií — node.js a docker, pričom pre docker sa najskôr načíta ten istý kontajner, kde je aj node.js, a do neho sa načíta ešte jeden kontajner, čo trvá dlhšie. Vzhľadom na to, že v kontajneri s node.js už je python3 a všetko ostatné potrebné, je rozumné jednoducho načítať závislosti, keďže nie sú veľké.
Funkcie:
- Akcia sa riadi pomocou YAML konfigurácie a Markdown šablón;
- Do každej Markdown šablóny sa pridáva blok, ktorý popisuje podmienky správneho vyplnenia formulára a požadované akcie;
- Pridáva sa konfiguračný súbor s globálnymi nastaveniami;
- Formuláre pozostávajú z sekcií. Existujú 2 typy sekcií:
- Voľný text. Akcia môže skontrolovať, že používateľ sa snažil niečo vyplniť. Význam textu sa automaticky nekontroluje.
- Checkboxy. Môže sa požadovať, aby sa vyplnilo n checkboxov, tak, že 0 {= m1 {= n {= m2 {= celkový počet checkboxov v sekcii. Akcia kontroluje, či checkboxy zodpovedajú checkboxom v šablóne. Ak sú checkboxy zadané správne, akcia môže priradiť k issue štítky, ktoré zodpovedajú checkboxom.
- Ak je formulár vyplnený nesprávne, akcia inštruuje používateľa, ako ho správne vyplniť, a priradí špeciálnu nálepku.
- Ak nie je formulár opravený počas určitého času, akcia môže uzavrieť issue. Automatický ban používateľov, mazanie a presúvanie issue zatiaľ nebolo implementované v súvislosti s absenciou oficiálneho API pre potrebné akcie a problémami so zaznamenávaním stavu.
- Ak je problém vyriešený, akcia odstráni nálepku.
- Šablóny odpovedí akcií sú, samozrejme, prispôsobiteľné.
Zdroj: opennet.ru
