Emittente: azione GitHub per forzare il self-service degli utenti del repository

Nell'ambito del progetto Emittente è stato preparato un bot per GitHub, risolvendo problemi di self-service forzato per gli utenti del repository. Su GitHub puoi trovare repository la cui unica funzione è coordinare le persone attraverso il sistema Issue. Alcuni di loro chiedono a chi lascia un numero di compilare un modulo. Poi arriva un moderatore, controlla che il modulo sia compilato correttamente e inserisce i tag in conformità con quelli specificati nel modulo (i tag possono essere aggiunti solo da un utente privilegiato se non sono specificati nel modello). Un esempio di tale comunità è idee-open-source/idee-open-source.

Il moderatore non arriva subito. Pertanto, per convalidare moduli ed eseguire operazioni preparato presente nelle notizie di GitHub. Il bot è scritto in Python, ma devi comunque avviarlo tramite node.js, poiché GitHub ha solo 2 tipi di azioni: node.js e docker, e per docker, lo stesso contenitore viene prima caricato come node.js e caricato dentro un altro contenitore, è molto tempo. Considerando che il contenitore con node.js contiene python3 e tutto il resto di cui hai bisogno, è razionale caricare semplicemente le dipendenze al suo interno, poiché sono piccole.

Caratteristiche:

  • L'azione è controllata utilizzando la configurazione YAML e i modelli Markdown;
  • Ad ogni template Markdown viene aggiunto un blocco che descrive le condizioni per compilare correttamente il form e le azioni desiderate;
  • Viene aggiunto un file di configurazione con impostazioni globali;
  • I moduli sono costituiti da sezioni. Esistono 2 tipi di sezioni:
    • Testo libero. L'azione può verificare che l'utente si sia preso la briga di inserire qualcosa lì. Il significato del testo non viene verificato automaticamente.
    • Caselle di controllo. Puoi richiedere che n caselle di controllo siano riempite in modo tale che 0 {= m1 {= n {= m2 {= numero totale di caselle di controllo nella sezione. L'azione verifica che le caselle di controllo corrispondano alle caselle di controllo nel modello. Se i flag sono impostati correttamente, l'azione può rispettivamente aggiungere tag al problema. bandiere.
  • Se il modulo viene compilato in modo errato, l'azione istruisce l'utente su come compilarlo correttamente e vi inserisce un'etichetta speciale.
  • Se il modulo non viene corretto entro un certo tempo, l'azione può chiudere il problema. Il ban automatico degli utenti, l'eliminazione e lo spostamento dei problemi non sono stati ancora implementati a causa della mancanza di un'API ufficiale per le azioni necessarie e di problemi con l'archiviazione dello stato.
  • Se il problema viene risolto, l'azione rimuove l'etichetta.
  • I modelli di risposta all'azione sono, ovviamente, personalizzabili.

Fonte: opennet.ru

Aggiungi un commento