Issuer — GitHub action per l'auto-servizio forzato degli utenti del repository

Nell'ambito del progetto Emittente È stato sviluppato un bot per GitHub che affronta le problematiche legate al self-service forzato degli utenti del repository. Su GitHub si possono trovare repository il cui scopo principale è coordinare le persone tramite il sistema Issue. In alcuni di essi, gli utenti che creano Issue sono invitati a compilare un modulo. Poi arriva un moderatore, che verifica la correttezza della compilazione del modulo e assegna i tag secondo quanto indicato nel modulo (i tag possono essere assegnati solo da un utente privilegiato, se non sono specificati nel template). Un esempio di tale comunità è open-source-ideas/open-source-ideas.

Il moderatore non interviene immediatamente. Pertanto, per controllare i moduli ed eseguire operazioni preparati si tratta di un'azione GitHub presentata nella notizia. Il bot è scritto in Python, ma deve comunque essere avviato tramite node.js, poiché GitHub ha solo 2 tipi di azioni: node.js e docker; e per docker, inizialmente viene caricato lo stesso contenitore in cui si trova node.js e in esso viene caricato un ulteriore contenitore, il che richiede tempo. Considerando che nel contenitore con node.js sono già presenti python3 e tutte le altre dipendenze necessarie, è quindi razionale semplicemente caricare le dipendenze in esso, dato che sono di dimensioni contenute.

Caratteristiche:

  • L'azione è gestita tramite un file di configurazione YAML e modelli Markdown;
  • Ogni modello Markdown include un blocco che descrive le condizioni per il corretto completamento del modulo e le azioni desiderate;
  • Viene aggiunto un file di configurazione con impostazioni globali;
  • I moduli sono composti da sezioni. Ci sono 2 tipi di sezioni:
    • Testo libero. L'azione può verificare che l'utente si sia preso la briga di inserire qualcosa. La coerenza del testo non viene verificata automaticamente.
    • Checkbox. Può essere richiesto di compilare n checkbox, tali che 0 {= m1 {= n {= m2 {= numero totale di checkbox nella sezione. L'azione verifica che i checkbox corrispondano a quelli nel modello. Se i checkbox sono configurati correttamente, l'azione può aggiungere etichette all'issue in base ai checkbox.
  • Se il modulo non viene compilato correttamente, l'azione istruisce l'utente su come compilarlo correttamente e applica un'etichetta speciale.
  • Se il modulo non viene corretto entro un certo periodo di tempo, l'azione può chiudere l'issue. Il ban automatico degli utenti, la cancellazione e lo spostamento degli issue non sono ancora implementati a causa dell'assenza di un'API ufficiale per le azioni necessarie e dei problemi con la gestione dello stato.
  • Se il problema è risolto, l'azione rimuove il tag.
  • I modelli di risposta delle azioni, naturalmente, sono personalizzabili.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster