Utsteder - GitHub-handling for å tvinge frem selvbetjening for depotbrukere

I prosjektets grenser utsteder Det er utarbeidet en bot for GitHub, som løser problemer med tvungen selvbetjening for brukere av repository. På GitHub kan du finne repositories hvis eneste funksjon er å koordinere folk gjennom Issue-systemet. Noen av dem ber de som forlater et problem om å fylle ut et skjema. Deretter kommer en moderator, sjekker at skjemaet er riktig fylt ut, og plasserer tagger i henhold til de som er spesifisert i skjemaet (tagger kan kun legges til av en privilegert bruker hvis de ikke er spesifisert i malen). Et eksempel på et slikt fellesskap er open-source-ideas/open-source-ideas.

Moderatoren kommer ikke umiddelbart. Derfor, for å validere skjemaer og utføre operasjoner forberedt omtalt i GitHub-nyhetene. Boten er skrevet i Python, men du må fortsatt starte den gjennom node.js, siden GitHub bare har 2 typer handlinger - node.js og docker, og for docker blir den samme containeren først lastet som node.js, og lastet inn en annen container, det er lang tid. Med tanke på at beholderen med node.js inneholder python3 og alt annet du trenger, er det rasjonelt å bare laste inn avhengighetene i den, siden de er små.

Funksjoner:

  • Handlingen styres ved hjelp av YAML config og Markdown maler;
  • En blokk legges til hver Markdown-mal som beskriver betingelsene for riktig utfylling av skjemaet og ønskede handlinger;
  • En konfigurasjonsfil med globale innstillinger er lagt til;
  • Skjemaer består av seksjoner. Det er 2 typer seksjoner:
    • Fri tekst. Handlingen kan sjekke at brukeren gadd å fylle ut noe der. Tekstens betydning kontrolleres ikke automatisk.
    • Avmerkingsbokser. Du kan kreve at n avmerkingsbokser fylles ut slik at 0 {= m1 {= n {= m2 {= totalt antall avmerkingsbokser i seksjonen. Handlingen sjekker at avmerkingsboksene samsvarer med avmerkingsboksene i malen. Hvis flaggene er satt riktig, kan handlingen legge til tagger til utstedelse, henholdsvis. flagg.
  • Hvis skjemaet er fylt ut feil, instruerer handlingen brukeren hvordan det skal fylles ut riktig og setter en spesiell etikett på det.
  • Hvis skjemaet ikke er rettet innen en viss tid, kan handlingen lukke problemet. Automatisk forbud mot brukere, sletting og flytting av problemer har ennå ikke blitt implementert på grunn av mangelen på en offisiell API for nødvendige handlinger og problemer med statlig lagring.
  • Hvis problemet er løst, fjerner handlingen etiketten.
  • Handlingsresponsmaler kan selvfølgelig tilpasses.

Kilde: opennet.ru

Legg til en kommentar