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

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
24-Июл-2020 13:30

В рамках проекта Issuer, подготовлен бот для GitHub, решающий задачи по принудительному самообслуживанию пользователей репозитория. Есть на GitHub репозитории, единственная функция которых - координация людей через issue. В некоторых из них оставляющим issue предлагается заполнить форму. Потом приходит модератор, проверяет правильность заполнения формы, и развешивает теги в соответствии с указанными в форме (теги может вешать только привилегированный пользователь, если они не заданны в шаблоне, конечно). Пример такого сообщества - open-source-ideas/open-source-ideas.
Модератор приходит не моментально. Поэтому для проверки форм и выполнения операций подготовлено представленное в новости GitHub-действие. В вышеуказанном сообществе этот бот пока не применяется, так как требует постоянного наблюдения человека: постоянно что-то отваливается, то разработчик одной из зависимостей переехал с битбакета на сорсфордж, то репозитории Ubuntu стали вдруг недоступны, то pip изменил формат репозитория... Каждая проблема приводит к большому числу сообщений в привязанную к аккаунту почту (в качестве выхода можно заморозить зависимости, данное решение не совсем правильное).
Бот написан на 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
===========

Похожие новости: Теги для поиска: #_github
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 23-Ноя 06:32
Часовой пояс: UTC + 5