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

В рамките на проекта Издател Подготвен е бот за GitHub, който решава задачи по принудително самообслужване на потребителите на репозитория. В GitHub можем да намерим репозитории, чиято единствена функция е координирането на хора чрез система за проблеми. В някои от тях оставящите проблеми се канят да попълнят формуляр. След това идва модератор, проверява точността на попълнения формуляр и поставя етикети в съответствие с посочените в формуляра (етерите могат да поставят само потребители с привилегии, ако не са зададени в шаблона). Пример за такава общност - 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 типа секции:
    • Свободен текст. Действието може да провери, че потребителят се е потрудил да попълни нещо. Смислеността на текста не се проверява автоматично.
    • Чекбоксове. Може да се изисква да се попълнят n чекбокса, така че 0 {= m1 {= n {= m2 {= общия брой чекбоксове в секцията. Действието проверява, че чекбоксовете отговарят на чекбоксовете в шаблона. Ако чекбоксовете са зададени правилно, действието може да постави етикети на проблема, които отговарят на чекбоксовете.
  • Ако формулярът е попълнен неправилно, действието инструктира потребителя как да го попълни правилно и поставя специален етикет.
  • Ако формата не коригирана в определен период от време, действието може да затвори issue. Автоматично блокиране на потребители, изтриване и преместване на issue все още не е реализирано поради липсата на официално API за нуждите на действията и проблеми със съхранение на състоянието.
  • Ако проблемът е решен, действието премахва етикета.
  • Шаблоните за отговори на действията, разбира се, са конфигурируеми.

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

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