Издател — GitHub действие за принудително самообслужване на потребителите на хранилището

В рамките на проекта Издател подготвен бот за GitHub, който решава проблеми с принудителното самообслужване на потребителите на репозитория. В GitHub може да се срещнат репозитории, чиято единствена функция е координацията на хора през системата Issue. В някои от тях на оставящите Issue се предлага да попълнят форма. След това идва модератор, проверява правилността на попълнената форма и разпределя тагове в съответствие с указаното във формата (тагът може да се добавя само от привилегирован потребител, ако не е зададен в шаблона). Пример за такава общност — open-source-ideas/open-source-ideas.

Модераторът не идва моментално. Затова за проверка на формите и извършване на операции подготвено представеното в новината действие на GitHub. Ботът е написан на Python, но все пак трябва да се стартира през node.js, тъй като GitHub има само 2 типа действия — node.js и docker, като за docker първо се зарежда същият контейнер, където е и node.js, и в него се зарежда още един контейнер, което е бавно. Имайки предвид, че в контейнера с node.js имаме python3 и всичко необходимо, е рационално просто да се добавят зависимостите, тъй като те са малки.

Характеристики:

  • Действието се управлява чрез YAML-конфигурация и Markdown-шаблони;
  • Във всеки Markdown-шаблон се добавя блок, който описва условията за коректно попълване на формуляра и желаните действия;
  • Добавя се конфигурационен файл с глобални настройки;
  • Формулярите се състоят от секции. Има 2 типа секции:
    • Свободен текст. Действието може да провери, че потребителят е полагал усилия да попълни нещо. Осмислеността на текста не се проверява автоматично.
    • Проверки (checkbox). Може да се изисква попълването на n проверки, така че 0 {= m1 {= n {= m2 {= общият брой проверки в секцията. Действието проверява, че проверките съответстват на проверките в шаблона. Ако проверките са зададени правилно, действието може да постави тагове на issue, съответстващи на проверките.
  • Ако формулярът е попълнен неправилно, действието инструктира потребителя как да го попълни правилно и поставя специален етикет.
  • Ако формулярът не бъде коригиран в рамките на определено време, действието може да затвори issue. Автоматичният бан на потребителите, изтриването и преместенето на issue все още не е реализирано поради липса на официално API за необходимите действия и проблеми с съхранението на състоянието.
  • Ако проблемът е отстранен, действието премахва маркера.
  • Шаблоните за отговори за действия, разбира се, могат да бъдат настроени.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster