Emisor: acción de GitHub para forzar el autoservicio para los usuarios del repositorio

En el marco del proyecto. Emisor Se ha preparado un bot para GitHub que soluciona los problemas de autoservicio forzado de los usuarios del repositorio. En GitHub puedes encontrar repositorios cuya única función es coordinar personas a través del sistema Issue. Algunos de ellos piden a quienes abandonan un problema que rellenen un formulario. Luego viene un moderador, verifica que el formulario esté completado correctamente y coloca etiquetas de acuerdo con las especificadas en el formulario (las etiquetas solo pueden ser agregadas por un usuario privilegiado si no están especificadas en la plantilla). Un ejemplo de tal comunidad es ideas de código abierto/ideas de código abierto.

El moderador no llega de inmediato. Por tanto, para validar formularios y realizar operaciones preparado presentado en las noticias de GitHub. El bot está escrito en Python, pero aún debe ejecutarlo a través de node.js, ya que GitHub tiene solo 2 tipos de acciones: node.js y docker, y para Docker, primero se carga el mismo contenedor como node.js, y Cargué en él otro contenedor, eso es mucho tiempo. Teniendo en cuenta que el contenedor con node.js contiene python3 y todo lo demás que necesita, es racional simplemente cargar las dependencias en él, ya que son pequeñas.

Características:

  • La acción se controla mediante la configuración YAML y las plantillas de Markdown;
  • Se agrega un bloque a cada plantilla de Markdown que describe las condiciones para completar correctamente el formulario y las acciones deseadas;
  • Se agrega un archivo de configuración con configuraciones globales;
  • Los formularios constan de secciones. Hay 2 tipos de secciones:
    • Texto libre. La acción puede verificar que el usuario se molestó en completar algo allí. El significado del texto no se comprueba automáticamente.
    • Casillas de verificación. Puede requerir que se completen n casillas de verificación de modo que 0 {= m1 {= n {= m2 {= número total de casillas de verificación en la sección. La acción verifica que las casillas de verificación coincidan con las casillas de verificación de la plantilla. Si las banderas están configuradas correctamente, la acción puede agregar etiquetas para emitir, respectivamente. banderas.
  • Si el formulario se completa incorrectamente, la acción le indica al usuario cómo completarlo correctamente y le coloca una etiqueta especial.
  • Si el formulario no se corrige dentro de un tiempo determinado, entonces la acción puede cerrar el problema. La prohibición automática de usuarios, la eliminación y el movimiento de problemas aún no se han implementado debido a la falta de una API oficial para las acciones requeridas y problemas con el almacenamiento del estado.
  • Si el problema se resuelve, la acción elimina la etiqueta.
  • Las plantillas de respuesta a la acción son, por supuesto, personalizables.

Fuente: opennet.ru

Añadir un comentario