Generalidades

Cómo crear tareas programadas en la versión del repositorio de Github a través de la aplicación Slack | Autor: Yazan Tarifi | Octubre de 2021

0*U6imzV0iuOakQ0Pg
Foto tomada por Aron Visuals en Unsplash

Como desarrollador, has participado en muchos proyectos, en estos proyectos debes usar la biblioteca Toneladao Independientemente de si la biblioteca es una biblioteca de la parte 3 del marco en sí o una biblioteca nativa, está completamente bien implementar una función. Si tengo problemas al usar la biblioteca, debo verificar o seguir a alguien en Twitter, Reddit o el media Para recibir notificaciones sobre las bibliotecas que uso en el proyecto, pero si no abro ninguna aplicación de las aplicaciones de redes sociales, nunca sabré si alguna biblioteca ha introducido nuevas versiones en sus repositorios, o tal vez lo sabré. actualización después de 2 semanas. Por este motivo, necesito que me notifiquen el mismo día del lanzamiento, porque algunas bibliotecas aún están impulsando cambios importantes en el lanzamiento. Si encontramos esta actualización 2 semanas después de la fecha de lanzamiento, esto es realmente un gran problema

LEER  Día 84 | GADS 100 días.Verificación de tiempo: 5 horas 30 minutos | Via Judas Ben | Diciembre de 2021

nosotros Se debe crear una tarea programada para verificar todas las bibliotecas que usamos en el proyecto para ser notificado el mismo día de esta versión, la construiremos desde cero usando algunas herramientas que nos ayudan a construir esta tarea.

  1. Proyecto Node Js
  2. Aplicación de relajación
  3. Enlace a la fuente de la biblioteca

Se proporcionará un ejemplo completo al final del artículo.

Usaremos NodeJs para construir el backend de este proyecto, especialmente el marco de NestJs y Typecript. Necesitamos usar uno de los marcos de backend para usar trabajos de Cron, y CronJob es un evento programado que activará ciertos eventos en un momento específico que usted especifique. Crea una instancia del servicio de tareas

Puede usar cualquier marco de backend, porque la mayoría de ellos implementa Cron Job en él, pero para mí, prefiero construir estas cosas en NestJs

La aplicación Slack es una API lista de Slack, que se utiliza para crear una aplicación con Id, nombre y logotipo. Enviará mensajes a los miembros y canales en su espacio de trabajo. Para este proyecto, configuraremos esta aplicación Para enviar una nueva versión de un canal de mensajes con una biblioteca específica

Lo realmente importante es saber qué fuente de cada biblioteca es la mejor para obtenerla, P.ej, Cuando construyo una aplicación de Android, tengo varias fuentes para obtener la biblioteca, en lugar de todas las fuentes que provienen de una fuente, por ejemplo (MavenCentral, GoogleMavenRepository, GithubRepository, GradlePortal), necesitamos encontrar una manera de obtener la biblioteca de múltiples fuentes en el mismo proyecto Obtener la biblioteca

Pero en esta parte, veo que lo común entre ellos es que el 90% del código fuente de la biblioteca en el repositorio de Github, y todos tienen versiones de lanzamiento y etiquetadas, por lo que podemos rastrear todos estos códigos fuente desde una fuente común. (API de Github)

norteAhora comencemos con la implementación del proyecto, comenzaremos con la creación de la configuración de Slack y Github

El primer paso es configurar Slack y Github para obtener el token, necesitamos la clave utilizada en el proyecto NodeJs

El primer paso es crear una aplicación de Slack en su espacio de trabajo y especificar el logotipo y el nombre de la aplicación, y luego agregar la siguiente configuración al manifiesto de la aplicación.

Ahora necesita crear una aplicación Github desde la configuración de OAuth en la configuración de su cuenta de Github, y obtener el ID de cliente y el ID de cliente secreto, y luego usar la clave Slack (token, clave de firma) para guardarlos en un archivo de texto, todos estos Las claves se pueden configurar en la aplicación en la pestaña general y luego guardar todas las claves y tokens en un archivo de texto, porque las necesitaremos más adelante.

Ahora crea un canal en tu lugar de trabajo de Slack e invita a las aplicaciones que creaste en este canal para que accedan al canal.

Use NestJs para generar un nuevo proyecto ejecutando el siguiente comando en la terminal

Esta tarea comenzará a una hora específica, como se muestra en el siguiente ejemplo.

Ahora usaremos Axios para enviar una solicitud de API en GitHub para verificar todas las bibliotecas y usar GitHub API v3 para obtener el lanzamiento.

Ahora la función será la siguiente, queremos almacenar todas las bibliotecas que necesitamos verificar todos los días, luego almacenaremos las últimas etiquetas publicadas, y todos los días el programador enviará una solicitud al repositorio de GitHub para verificar las últimas etiquetas , si no es similar a las etiquetas almacenadas, entonces usaremos esta biblioteca para enviar un mensaje de holgura

En esta etapa, puede elegir almacenarlos todos de la manera que desee, si lo desea, puede usar una base de datos para almacenarlos todos, pero prefiero escribirlos todos en un archivo JSON en este tipo de proyecto

Este es un ejemplo simple de cómo verificar todo esto en esta etapa, necesita obtener la aplicación Github clientId, SecreteId de la aplicación GitHub que creó en la configuración del perfil de GitHub

Ahora que hemos actualizado las bibliotecas en Array, queremos repetirlas y usar la clave de firma, clave secreta para enviar mensajes a través de la API de slack.

Use este método en su bucle y cree su propio mensaje en cada biblioteca. En mi caso, he agregado todas las bibliotecas y sus enlaces de documentación, sitios web oficiales que necesito a mi archivo JSON, y en cada mensaje, verifico todos estos y los envío con el mensaje

Crea un canal en la aplicación Slack e invita a la aplicación a unirse al canal escribiendo / invitar, luego selecciona la aplicación y en el código, cuando quieras enviar un mensaje en el canal, debes escribirlo así (#general)

El ejemplo completo se puede encontrar en Github.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba