https://d226lax1qjow5r.cloudfront.net/blog/blogposts/12-bots-to-better-your-open-source-project/Blog_Bots-Better-Opensource_1200x600.png

12 bots para mejorar su proyecto de código abierto

Publicado el October 28, 2020

Tiempo de lectura: 5 minutos

Cuanto más tiempo exista y crezca un proyecto de código abierto, más problemas y pull requests sin resolver acumulará. Estar al día de las nuevas contribuciones, sobre todo si quedan problemas sin resolver del pasado, no es tarea fácil.

Aparecen los robots. La automatización y externalización de tareas a bots alivia la carga de trabajo de los mantenedores y les libera tiempo para tareas de mayor impacto.

Este post cubrirá 12 maneras de mejorar su proyecto de código abierto con Probot (GitHub Apps) y Acciones GitHub-dos proyectos independientes con el objetivo común de permitir y capacitar a los desarrolladores para ampliar sus flujos de trabajo y personalizar el funcionamiento de GitHub.

Si desea obtener más información sobre las diferencias entre los proyectos, puede consultar el excelente blog de Jason Etcovitch de Jason Etcovitch sobre el tema. Aquí tienes una comparación de ambos:

github apps vs actionsgithub apps vs actions

Ahora, vamos a empezar a destacar las herramientas de automatización que facilitarán tu vida como mantenedor de proyectos. Sin más preámbulos, ¡aquí tienes bots para mejorar tu proyecto de código abierto!

Probot (GitHub Apps)

Solicitar información

Solicita más información sobre incidencias y pull requests con el título por defecto o un cuerpo vacío.

Request-Info solicita más información de Pull Requests y Issues recién abiertos que contienen títulos por defecto o cuya descripción se ha dejado en blanco. Para ello, toma los datos de un archivo .github/config.yml.

Request-Info botRequest-Info bot

Sin respuesta

Cierra los temas en los que el autor no ha respondido a una solicitud de más información.

Muy a menudo, las incidencias se archivan sin suficiente información para ser investigadas adecuadamente. Cuando esto ocurre, los mantenedores pueden etiquetar una incidencia como que requiere más información del autor original. Si el autor no proporciona la información necesaria a tiempo, el bot cierra automáticamente la incidencia. Si el autor original vuelve y proporciona más información, el bot de No Respuesta elimina la etiqueta, y la incidencia se reabre automáticamente si es necesario.

No response botNo response bot

Fusionable

Evitar la fusión de Pull Requests basada en configuraciones.

Haga que sus Pull Requests sean "fusionables" sólo cuando no haya términos específicos en el título o la etiqueta, el hito en el pull request coincida con lo que está configurado, y haya al menos n número de revisiones aprobadas, donde n es configurable.

Asignación automática

Añadir revisores/asignados a pull requests cuando se abren pull requests.

Cuando se abre el pull request, este bot añadirá automáticamente revisores/asignados al pull request. Si se especifica el número de revisores/asignados, añadirá aleatoriamente revisores/asignados a la pull request. Si el título de la pull request contiene una palabra clave específica, el bot no añadirá revisores/asignados a la pull request.

Rancio

Cierra automáticamente las incidencias y Pull Requests obsoletas que tienden a acumularse durante un proyecto.

Tras un periodo de inactividad, se aplicará una etiqueta para marcar la incidencia como obsoleta y, opcionalmente, se publicará un comentario para notificar a los colaboradores que la incidencia o solicitud de extracción se cerrará. Si la incidencia o solicitud de extracción se actualiza, o alguien comenta, la etiqueta de caducado se elimina y no se hace nada más hasta que vuelve a caducar. Si no hay más actividad, la incidencia o Pull Request se cerrará automáticamente con un comentario opcional.

Stale botStale bot

Primerizos

Crea temas iniciales para ayudar a incorporar a nuevos colaboradores de código abierto.

El proceso de creación de una pull request es la barrera más importante para los nuevos colaboradores. First Timers agiliza el proceso de creación de incidencias sencillas para ayudar a que más personas se conviertan en colaboradores de código abierto por primera vez.

Acciones de GitHub

Pelusa

Muestra y corrige automáticamente los errores de linting de muchos lenguajes de programación.

Lint muestra errores de linting en commits y PRs de GitHub, permite autocorregir problemas y es compatible con muchos linters y formateadores.

Lint ActionLint Action

Límite de tamaño

Compara el coste real de ejecutar tu aplicación o librería JS para mantener un buen rendimiento en cada pull request.

Esta acción utiliza Size Limit (herramienta de presupuesto de rendimiento para JavaScript) para calcular el coste real de su JavaScript para los usuarios finales. Las principales características de esta acción son comentar las solicitudes de extracción con la comparación de la salida de Size Limit y rechazar una solicitud de extracción si el coste supera el límite.

Size limit actionSize limit action

LibreSelery

Distribución continua de financiación a los colaboradores y dependientes de su proyecto.

LibreSelery es una herramienta para distribuir financiación en proyectos libres y de código abierto. Con un nuevo modelo de financiación, ofrece una compensación transparente, automatizada y adaptable a los contribuyentes. El objetivo es sustituir en la medida de lo posible al intermediario en la distribución de donaciones con un algoritmo libre y transparente. A diferencia de la mayoría de los sistemas de donación, LibreSelery sólo ofrece una herramienta descentralizada y no una plataforma.

Roscas de cierre

Bloquea las incidencias cerradas y los pull requests tras un periodo de inactividad.

La acción utiliza el calificador de búsqueda actualizada de GitHub para determinar la inactividad. Cualquier cambio en una incidencia o pull request se considera una actualización, incluyendo comentarios, cambio de etiquetas, aplicación o eliminación de hitos o envío de confirmaciones. Bloquear hilos es una acción de GitHub que bloquea las incidencias y pull requests cerradas tras un periodo de inactividad.

Lock Threads ActionLock Threads Action

Etiquetadora de solicitudes de extracción

Etiquete automáticamente una solicitud de extracción basándose en los archivos confirmados.

Al enviar, la acción se activará y buscará archivos confirmados en la rama. Aplicará las etiquetas configuradas siempre que encuentre un archivo cuyo nombre coincida con la expresión regular asociada.

PR Labeler ActionPR Labeler Action

alex

Atrapa la escritura insensible y desconsiderada.

Alex te ayuda a encontrar en el texto frases que favorecen el género, que polarizan, que tienen que ver con la raza, que no tienen en cuenta la religión o cualquier otra frase desigual.

Próximos pasos

Existen muchas herramientas de automatización que pueden mejorar tu flujo de trabajo como mantenedor. Te animo a que explores más opciones o pruebes a crear la tuya propia.

Las aplicaciones Probot pueden escribir, desplegar y compartir. Muchas de las aplicaciones Probot más populares están alojadas, por lo que no tienes que desplegarlas ni gestionarlas. También puedes crear tus acciones o personalizar acciones compartidas por la comunidad de GitHub con la ayuda de tutoriales.

¿Cuáles son tus herramientas de automatización de código abierto favoritas? ¿Has creado alguna? Háznoslo saber en la sección de comentarios, en Twittero en Slack de la comunidad de desarrolladores de Vonage¡!

Recursos adicionales

Vonage está encantado de ser socio de Hacktoberfest 2020. No somos no somos ajenos al código abiertocon nuestras bibliotecas, fragmentos de código y demostraciones en GitHub. Para sumergirte por completo en las festividades, asegúrate de visitar nuestra página de página del Hacktoberfest para más detalles sobre todo lo que hemos planeado.

A continuación encontrará más entradas de nuestro blog relacionadas con el código abierto:

Compartir:

https://a.storyblok.com/f/270183/250x250/54e86bba88/nahrinjalal.png
Nahrin JalalAntiguos alumnos de Vonage

Nahrin fue Educadora de Desarrolladores para Vonage. Le apasiona crear comunidades inclusivas, abordar las necesidades del mundo real con soluciones de software pragmáticas y crear contenidos técnicos accesibles para todos los niveles.