A projekt keretein belül Készítettünk egy GitHub-botot, amely a felhasználók önkiszolgáló problémáira talál megoldást. A GitHub-on találkozhatunk olyan repozitóriumokkal, amelyek egyetlen funkciója az emberek koordinálása az Issue rendszerén keresztül. Néhány ilyen esetén az Issue-t benyújtóktól kérik, hogy töltsenek ki egy űrlapot. Ezután egy moderátor érkezik, amely ellenőrzi a kitöltés helyességét, és címkéket helyez ki a megadottak szerint (a címkéket csak a jogosultsággal rendelkező felhasználók helyezhetik ki, ha azok nincsenek megadva a sablonban). Egy példa egy ilyen közösségre — .
A moderátor nem érkezik azonnal. Ezért a űrlapok ellenőrzésére és műveletek végrehajtására a hírben bemutatott GitHub-művelet. A bot Pythonban készült, de a futtatását mégis node.js-en keresztül kell végezni, mivel a GitHub-nak csak 2 típusa van a műveleteknek — node.js és docker, és a docker esetében először ugyanabba a konténerbe kell betölteni a node.js-t, majd abba egy másik konténert, ami időigényes. Figyelembe véve, hogy a node.js konténerben már megtalálható a python3 és minden szükséges eszköz, racionálisabb egyszerűen csak a függőségeket betölteni, szerencsére ez nem sok.
Jellemzők:
- A műveletet YAML-config segítségével és Markdown-sablonokkal vezéreljük;
- Minden Markdown-sablonhoz hozzárendelünk egy blokkot, amely leírja az űrlap helyes kitöltésének feltételeit és a kívánt műveleteket;
- Hozzáadunk egy konfigurációs fájlt globális beállításokkal;
- Az űrlapok szekciókból állnak. Két típusú szekció létezik:
- Szabad szöveg. A művelet ellenőrizheti, hogy a felhasználó fáradozott-e valami kitöltésén. A szöveg értelme automatikusan nem ellenőrizhető.
- Jelölőnégyzetek (checkbox). Meg lehet követelni, hogy n jelölőnégyzetet töltsenek ki, úgy, hogy 0 {= m1 {= n {= m2 {= a szekcióban található jelölőnégyzetek összes száma. A művelet ellenőrzi, hogy a jelölőnégyzetek megfelelnek a sablonban megadottaknak. Ha a jelölőnégyzeteket helyesen adják meg, a művelet címkéket láthat el az issue-hoz a megfelelő jelölőnégyzetek alapján.
- Ha a űrlap helytelenül van kitöltve, akkor a művelet útmutatót ad a felhasználónak, hogyan kell azt helyesen kitölteni, és külön címkét helyez ki.
- Ha a űrlapot nem javítják ki egy meghatározott időn belül, akkor a művelet lezárhatja az issue-t. Az automatikus felhasználói eltiltás, az issue-k eltávolítása és áthelyezése jelenleg nem valósult meg, mivel nincs hivatalos API a szükséges műveletekhez, és problémák merültek fel az állapot tárolásával kapcsolatban.
- Ha a probléma megoldódik, a művelet eltávolítja a címkét.
- A válasz sablonok természetesen testreszabhatók.
Forrás: opennet.ru
