A kibocsátó — GitHub művelet a tároló felhasználóinak kötelező önkiszolgálásához

A projekt keretein belül Kibocsátó 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 — open-source-ideas/open-source-ideas.

A moderátor nem érkezik azonnal. Ezért a űrlapok ellenőrzésére és műveletek végrehajtására elkészített 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

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster