Uitgever - GitHub-actie om selfservice van repositorygebruikers af te dwingen

Binnen de grenzen van het project Emittent er is een bot voorbereid voor GitHub, die problemen van gedwongen zelfbediening voor repositorygebruikers oplost. Op GitHub kun je repositories vinden waarvan de enige functie het coördineren van mensen via het Issue-systeem is. Sommigen van hen vragen degenen die een probleem achterlaten om een ​​formulier in te vullen. Dan komt er een moderator die controleert of het formulier correct is ingevuld en tags plaatst in overeenstemming met de tags die in het formulier zijn gespecificeerd (tags kunnen alleen worden toegevoegd door een bevoorrechte gebruiker als ze niet in de sjabloon zijn gespecificeerd). Een voorbeeld van zo’n gemeenschap is open-source-ideeën/open-source-ideeën.

De moderator komt niet onmiddellijk. Daarom om formulieren te valideren en bewerkingen uit te voeren voorbereid te zien in GitHub-nieuws. De bot is geschreven in Python, maar je moet hem nog steeds starten via node.js, aangezien GitHub slechts 2 soorten acties heeft: node.js en docker, en voor docker wordt eerst dezelfde container geladen als node.js, en er nog een container in geladen, dat is lang. Gezien het feit dat de container met node.js python3 en al het andere dat je nodig hebt bevat, is het rationeel om de afhankelijkheden er eenvoudigweg in te laden, omdat ze klein zijn.

Features:

  • De actie wordt bestuurd met behulp van YAML-configuratie- en Markdown-sjablonen;
  • Aan elk Markdown-sjabloon wordt een blok toegevoegd waarin de voorwaarden voor het correct invullen van het formulier en de gewenste acties worden beschreven;
  • Er is een configuratiebestand met algemene instellingen toegevoegd;
  • Formulieren bestaan ​​uit secties. Er zijn 2 soorten secties:
    • Vrije tekst. Met de actie kan worden gecontroleerd of de gebruiker de moeite heeft genomen om daar iets in te vullen. De betekenis van de tekst wordt niet automatisch gecontroleerd.
    • Selectievakjes. U kunt vereisen dat n selectievakjes worden ingevuld, zodat 0 {= m1 {= n {= m2 {= totaal aantal selectievakjes in de sectie. De actie controleert of de selectievakjes overeenkomen met de selectievakjes in de sjabloon. Als de vlaggen correct zijn ingesteld, kan de actie respectievelijk tags aan de uitgifte toevoegen. vlaggen.
  • Als het formulier onjuist wordt ingevuld, instrueert de actie de gebruiker hoe het formulier correct moet worden ingevuld en wordt er een speciaal label op aangebracht.
  • Als het formulier niet binnen een bepaalde tijd wordt gecorrigeerd, kan de actie het probleem sluiten. Het automatisch verbannen van gebruikers, verwijderen en verplaatsen van problemen is nog niet geïmplementeerd vanwege het ontbreken van een officiële API voor de vereiste acties en problemen met statusopslag.
  • Als het probleem is opgelost, wordt het label verwijderd.
  • Sjablonen voor actie-antwoorden zijn uiteraard aanpasbaar.

Bron: opennet.ru

Voeg een reactie