Issuer — działanie GitHub do przymusowego samodzielnego obsługiwania użytkowników repozytorium

W ramach projektu Wydawca stworzono bota na GitHubie, który rozwiązuje problemy związane z przymusowym samodzielnym obsługiwaniem użytkowników repozytoriów. Na GitHubie można spotkać repozytoria, których jedyną funkcją jest koordynacja ludzi poprzez system Issue. W niektórych z nich osobom pozostawiającym zgłoszenia sugeruje się wypełnienie formularza. Następnie przychodzi moderator, sprawdza poprawność wypełnienia formularza i dodaje tagi zgodnie z tym, co zostało podane w formularzu (tagi mogą być dodawane tylko przez użytkowników z uprawnieniami, jeśli nie zostały określone w szablonie). Przykładem takiej społeczności jest open-source-ideas/open-source-ideas.

Moderator nie przychodzi natychmiast. Dlatego do weryfikacji formularzy i wykonywania operacji opracowano została przedstawiona w wiadomości o działaniu GitHub. Bot napisany jest w Pythonie, jednak musi być uruchamiany przez node.js, ponieważ GitHub ma tylko dwa typy działań — node.js i docker, a dla dockera najpierw ładowany jest ten sam kontener, w którym znajduje się node.js, a do niego ładowany jest kolejny kontener, co jest czasochłonne. Biorąc pod uwagę, że w kontenerze z node.js jest już python3 i wszystko, co potrzebne, rozsądnie jest po prostu załadować w niego zależności, na szczęście są niewielkie.

Cechy:

  • Działanie zarządzane jest za pomocą YAML-configu 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;
  • Dodawany jest plik konfiguracyjny z globalnymi ustawieniami;
  • Formularze składają się z sekcji. Istnieją 2 typy sekcji:
    • Tekst swobodny. Działanie może sprawdzić, że użytkownik rzeczywiście włożył wysiłek w wypełnienie tego miejsca. Sensowność tekstu nie jest automatycznie sprawdzana.
    • Checkboxy. Można wymagać wypełnienia n checkboxów, tak że 0 {= m1 {= n {= m2 {= całkowita liczba checkboxów w sekcji. Działanie sprawdza, czy checkboxy odpowiadają checkboxom w szablonie. Jeśli checkboxy są poprawnie ustawione, działanie może dodać do zgłoszenia tagi zgodne z checkboxami.
  • Jeśli formularz zostanie wypełniony niepoprawnie, działanie informuje użytkownika, jak poprawnie go wypełnić i dodaje specjalną etykietę.
  • Jeśli formularz nie zostanie poprawiony w określonym czasie, działanie może zamknąć zgłoszenie. Automatyczne banowanie użytkowników, usuwanie i przenoszenie zgłoszeń nie zostało jeszcze zrealizowane z powodu braku oficjalnego API do potrzebnych działań oraz problemów z przechowywaniem stanu.
  • Jeśli problem został rozwiązany, działanie usuwa etykietę.
  • Szablony odpowiedzi akcji są oczywiście konfigurowalne.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster