The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпущен первый релиз Issuer, бота для автоматической модерации issues на GitHub

24.07.2020 03:29

В рамках проекта Issuer подготовлен бот для 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 для нужных действий и проблемами с хранением состояния.
  • Если проблема устранена, то действие удаляет метку.
  • Шаблоны ответов действия, разумеется, настраиваются.


  1. Главная ссылка к новости (https://github.com/KOLANICH/is...)
  2. OpenNews: GitHub сохранил архив открытого кода в арктическом хранилище
  3. OpenNews: GitHub решил отказаться от имени "master" для основных веток
  4. OpenNews: Ассоциация кинокомпаний потребовала заблокировать на GitHub разработчика Kodi-репозитория Blamo
  5. OpenNews: GitHub проанализировал влияние COVID-19 на активность разработки
  6. OpenNews: В GitHub добавлены среда разработки и система дискуссий
Автор новости: Аноним
Тип: Программы
Короткая ссылка: https://opennet.ru/53420-github
Ключевые слова: github
Поддержать дальнейшую публикацию новостей на OpenNET.


Обсуждение (29) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 11:05, 24/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +24 +/
    > Бот написан на Python, но запускать его всё равно приходится через node.js, так как у GitHub всего 2 типа действий - node.js и docker, причём для docker сначала грузится тот же контейнер, где и node.js, и в него грузится ещё один контейнер, что долго.

    Самим-то не смешно?

     
     
  • 2.3, Урри (?), 11:11, 24/07/2020 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Это не смешно, это очень печально.
     
  • 2.5, заминированный тапок (ok), 11:37, 24/07/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    коротко о современных технологиях.

    в конце статьи дожны быть ещё титры Титры Directed by Robert B Weide theme meme
    https://youtu.be/KAgk_zc8vGI

     
  • 2.9, Аноним (9), 12:42, 24/07/2020 Скрыто модератором
  • +2 +/
     

  • 1.2, Аноним (2), 11:09, 24/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    что это за самореклама ?
    у этого вашего  Issuer, 0 звезд. создали только что ?
     
     
  • 2.16, Аноним (16), 17:12, 24/07/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    1. ОК, предложи более подходящее место для того, чтоб рассказать о своём ОС-проекте и набрать первые жизненно важные для некоторых "лайки".

    2. Если автор накрутит звёзды ботами, ты потечёшь?

     
     
  • 3.21, Аноним (21), 21:22, 24/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем нужны эти лайки, поясни, пожалуйста?
     
  • 2.26, Аноним (26), 22:14, 26/07/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >создали только что ?

    Создал под новый год в качестве подарка модеру упомянутого сообщества Фредрику. Фредрик сказал, что у него нет времени поставить действие в сообщество, что может мне выдать админку, чтобы я его сам туда установил, что уже меня не устроило - просто иметь доступ в админку популярного сообщества - уже большая ответственность.

    Полгода пролежало, пока мне в почту из тестового репозитория уведомлений не навалило, что pipeline failed (запуск по cronу раз в 5 минут - макс. частота запуска пайплайнов по крону в гитхабе). Починил добавлением apt update в запускающий баш-скрипт (раньше образы докер шли уже с обновлённой базой) и обратил внимание, что звёзд - 0. Видимо потому, что не в мартеплейсе.

    В маркетплейс я добавить его не могу. Так что если кто-то хочет, может стать мейнтейнером и добавить в маркетплейс.

    Сюда запостил, потому что кому-то может пригодиться. Не пропадать же трудам.

     

  • 1.4, заминированный тапок (ok), 11:36, 24/07/2020 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • +6 +/
     
     
  • 2.7, A.Stahl (ok), 12:11, 24/07/2020 Скрыто модератором
  • +10 +/
     
     
  • 3.13, Анонимъ (?), 15:33, 24/07/2020 Скрыто модератором
  • +/
     

     ....ответы скрыты модератором (2)

  • 1.6, Аноним (6), 12:09, 24/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    редактор под веществами? я мозг сломал пока пытался прочитать статью
     
     
  • 2.15, Аноним (16), 17:04, 24/07/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Конкретные фрагменты текста, "сломавшие мозг", будь добр. У меня что-то таких проблем не возникло.
    Может, тебе компетентности в теме не хватает?
     
     
  • 3.19, Аноним (19), 18:37, 24/07/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    То что появилось действие, после которого вы будете принудительно самообслуживаться как гласит заголовок вас не смущает?
     

  • 1.8, manster (ok), 12:22, 24/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    интересная фича
     
  • 1.10, Аноним (10), 13:56, 24/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Автор, ты зачем каждый день репозитории форкаешь? 322 репы уже! Коммиты у тебя еще замечательнее... Еще бы орфографию в доках правил...

    В общем, мутный ты какой-то, я бы тебе не доверял.

    Про Python и Node.js тебе уже написали.

     
     
  • 2.11, Аноним (10), 14:03, 24/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    И друзья у него такие-же.
     
  • 2.20, онанимуз (?), 19:15, 24/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    так индусы набивают себе красивое резюме - "я супер программист, 100500 репозиториев в гитхабе!", ибо HR-ы обычно некомпетентны и предпочтут индуса с 100500 форкнутыми репозиториями, чем неиндуса с 10, но собственными.
     
     
  • 3.33, Аноним (33), 18:08, 28/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    И получат отборный гуанокод в подарок. После чего кто-то еще удивляется что 90% стартапов постигает факап. Потому что наняли вы такого - ну а дальше, собственно, чего?! Слить проект он как раз вам и поможет.
     
  • 2.27, Аноним (26), 22:25, 26/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Если вижу, что меня лично что-то не устраивает в репозитории, то форкаю и фикшу и посылаю PR. Так и должна работать экосистема FOSS.

    К сожалению некоторые мейнтейнеры не это не понимают и игнорят PRы годами. А некоторые требуют CLA, потому что им юротдел сказал требовать CLA, хотя IMHO достаточно лицензии и правил GitHub.

    >В общем, мутный ты какой-то, я бы тебе не доверял.

    А не надо мне доверять. Доверяй своим глазам и голове. Есть код - бери и читай.

     

  • 1.14, rm_ (ok), 16:29, 24/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    "Issuer - GitHub-действие для принудительного самообслуживания пользователей репозитория"

    Автор какой-то поехавший.

    Слова "принудительное самообслуживание" не несут никакого смысла кроме как выразить НЕНАВИЗДЬ автора ко всем этим "пользователям репозитория". Не говоря уж о том, что сочетание слов "Issuer - GitHub-действие" просто ахренеть как читаемо и сразу же понятно. Рекомендую изучать русский, пригодится. Можно было написать например так:

    "Выпущен первый релиз Issuer, бота для автоматической модерации системы отслеживания обращений на GitHub"

     
     
  • 2.24, Аноним (24), 11:23, 25/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    "Выпущен первый релиз Issuer, бота для автоматической модерации issues на GitHub"
     
  • 2.28, Аноним (26), 22:36, 26/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >Слова "принудительное самообслуживание" не несут никакого смысла

    Несут такой смысл: "либо пользователь заполняет форму, либо отправляется в пешее порнографическое".

    >просто ахренеть как читаемо и сразу же понятно. Рекомендую изучать русский, пригодится.

    Вы в каком словаре нашли "ахренеть"?

    GitHub-действие это перевод GitHub Action.

    >бота

    Если честно, то в изначальной версии текста я использовал это слово, но всё-таки это не совсем бот. Бот подразумевает долгоживущий процесс, а GitHub Actions - это больше похоже на "serverless" computing.

    >для автоматической модерации

    Опять же не совсем так. Модерация подразумевает реакцию на многие действия в соответствии с личными предпочтениями модератора. То есть чтобы заявлять об "автоматической модерации" нужно сначала заиметь ИИ общего назначения.

    Тут же просто что-то в роде form-like template enforcement. Если переводить, то получится ещё чудовищнее.

     
  • 2.29, Аноним (16), 11:22, 27/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Рекомендую изучать русский, пригодится.

    Где?

     

  • 1.22, AntonAlekseevich (ok), 02:28, 25/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Issuer - GitHub-действие для принудительного самообслуживания пользователей репозитория

    Так полагаю, принудительно-добровольческим обслуживанием занимаетесь или добровольно принуждаетесь обслуживать собираетесь. Статья похожа на каламбур.

    Пока опустим этот момент мне всё равно, что думает про эту часть комментария автор.

    > Бот написан на Python, но запускать его всё равно приходится через node.js, так как у GitHub всего 2 типа действий - node.js и docker, причём для docker сначала грузится тот же контейнер, где и node.js, и в него грузится ещё один контейнер, что долго. Учитывая, что в контейнере с node.js python3 и всё остальное нужное и так есть, рационально просто подгрузить в него зависимости, благо что они небольшие.

    Допустим что это прототип перед написанием его на Javascript для Node.JS. Пусть тогда его на JS перепишут. Как минимум это будет хоть, но немного экономичнее и рациональнее.

    Посыл я думаю замечен не будет. Поэтому пусть продолжают делать так как делают.

     
  • 1.23, бедный буратино (ok), 05:05, 25/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ваще ничё не понял, кто на ком и зачем стоял. даже приблизительно. понял, что это страшное нечто, требующее python3 и node.js, но зачем требующее...
     
     
  • 2.25, Богатенький Буратино (?), 15:48, 25/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Я тоже ничего не понял.
     

  • 1.32, Аноним (33), 18:04, 28/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Бот написан на Python, но запускать его всё равно
    > приходится через node.js

    Так-так, все-же гадюка в этот раз на жабе отыгралась? Хипстеропроблемы, блин, с войнушками в багтрекерах %))

     
  • 1.34, _Vitaly_ (ok), 09:30, 29/07/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Автоматизация через Github Actions - удобная штука. Но описание, блин... пока в исходники не полез, не мог понять о каком боте речь.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:
    При перепечатке указание ссылки на opennet.ru обязательно



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2021 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру