Projekti raames GitHubile on loodud bot, mis lahendab probleemid, mis on seotud kasutajate iseteenindamisega hoidlas. GitHubis võib leida hoidlaid, mille ainus funktsioon on inimeste koordineerimine Issue süsteemi kaudu. Mõnes neist palutakse Issue esitajatel täita vorm. Seejärel tuleb moderaator, kontrollib vormi täitmise õigsust ja määrab sildid vastavalt vormis esitatud andmetele (silde saab määrata ainult privileegidega kasutaja, kui need pole mallis juba paika pandud). Sellise kogukonna näide on .
Moderaator ei saabu kohe. Seega, et kontrollida vorme ja teostada toiminguid on esitatud GitHubi tegevus. Bot on kirjutatud Pythonis, kuid seda tuleb ikkagi käivitada node.js kaudu, kuna GitHubil on ainult 2 tüüpi toimingut — node.js ja docker, kusjuures dockeris laetakse esmalt sama konteiner, kus on ka node.js, ja sinna laaditakse veel üks konteiner, mis võtab kaua aega. Arvestades, et node.js konteineris on python3 ja kõik muud vajalikud, on mõistlik lihtsalt sinna sõltuvused lisada, kuna need on väikesed.
Omadused:
- Tegevus toimub YAML-konfiguratsiooni ja Markdown-mallide abil;
- Iga Markdown-malli lisatakse plokk, mis kirjeldab vormi korrektse täitmise tingimusi ja soovitud tegevusi;
- Lisatakse konfiguratsioonifail globaalsete seadistustega;
- Vormid koosnevad sektsioonidest. On 2 tüüpi sektsioone:
- Vaba tekst. Tegevus võib kontrollida, et kasutaja on sinna midagi sisestanud. Teksti mõtestatust ei kontrollita automaatselt.
- Tšekkide (checkbox) vorm. Võib nõuda, et täidetud oleks n tšekki, kusjuures 0 {= m1 {= n {= m2 {= sektsiooni üldine tšekkide arv. Tegevus kontrollib, et tšekid vastavad mallis olevatele tšekkidele. Kui tšekid on õigesti määratud, võib tegevus issue peale riputada siltidega, vastavalt tšekkidele.
- Kui vorm on valesti täidetud, siis tegevus juhendab kasutajat, kuidas seda õigesti täita ja riputab spetsiaalse sildi.
- Kui vormi ei parandata teatud aja jooksul, võib tegevus sulgeda issue. Automaatne kasutajate keeldumine, issue'de kustutamine ja liigutamine ei ole veel rakendatud, kuna ametlikku API-d vajalike toimingute jaoks ei ole ning probleemid oleku salvestamisega.
- Kui probleem on lahendatud, eemaldab tegevus sildi.
- Tegevuste vastuste mallid on loomulikult kohandatavad.
Allikas: opennet.ru
