Issuer - akcja GitHub wymuszająca samoobsługę użytkowników repozytorium

W granicach projektu Emitent dla GitHuba przygotowano bota rozwiązującego problemy wymuszonej samoobsługi użytkowników repozytorium. Na GitHubie można znaleźć repozytoria, których jedyną funkcją jest koordynacja ludzi poprzez system Issue. Niektórzy z nich proszą osoby opuszczające Problem o wypełnienie formularza. Następnie przychodzi moderator, sprawdza poprawność wypełnienia formularza i umieszcza tagi zgodnie z podanymi w formularzu (tagi może dodać tylko użytkownik uprzywilejowany, jeśli nie są one określone w szablonie). Przykładem takiej społeczności jest pomysły-open-source/pomysły-open-source.

Moderator nie pojawia się od razu. Dlatego należy sprawdzać poprawność formularzy i wykonywać operacje przygotowany opisywany w wiadomościach GitHub. Bot jest napisany w Pythonie, ale nadal trzeba go uruchomić poprzez node.js, ponieważ GitHub ma tylko 2 typy akcji - node.js i docker, a dla dockera ten sam kontener jest najpierw ładowany jako node.js, a ładowałem do niego inny kontener, to dużo czasu. Biorąc pod uwagę, że kontener z node.js zawiera python3 i wszystko, czego potrzebujesz, racjonalne jest po prostu załadowanie do niego zależności, ponieważ są one małe.

Cechy:

  • Akcja jest kontrolowana za pomocą konfiguracji YAML i szablonów Markdown;
  • Do każdego szablonu Markdown dodawany jest blok opisujący warunki prawidłowego wypełnienia formularza i pożądane działania;
  • Dodano plik konfiguracyjny z ustawieniami globalnymi;
  • Formularze składają się z sekcji. Istnieją 2 rodzaje sekcji:
    • Dowolny tekst. Akcja może sprawdzić, czy użytkownik zadał sobie trud, aby coś tam wypełnić. Znaczenie tekstu nie jest sprawdzane automatycznie.
    • Pola wyboru. Możesz wymagać wypełnienia n pól wyboru, tak aby 0 {= m1 {= n {= m2 {= całkowita liczba pól wyboru w sekcji. Akcja sprawdza, czy pola wyboru pasują do pól wyboru w szablonie. Jeżeli flagi są ustawione poprawnie, akcja może odpowiednio dodać tagi do wystawienia. flagi.
  • Jeżeli formularz zostanie wypełniony błędnie, akcja instruuje użytkownika, jak poprawnie go wypełnić i umieszcza na nim specjalną etykietę.
  • Jeśli formularz nie zostanie poprawiony w określonym czasie, wówczas akcja może zamknąć sprawę. Automatyczne blokowanie użytkowników, usuwanie i przenoszenie spraw nie zostało jeszcze wdrożone ze względu na brak oficjalnego API dla niezbędnych działań i problemy z przechowywaniem stanu.
  • Jeśli problem zostanie rozwiązany, akcja usunie etykietę.
  • Szablony reakcji na działania można oczywiście dostosowywać.

Źródło: opennet.ru

Dodaj komentarz