Integrar notificaciones de eventos de solicitud de extracción con Discord en el repositorio de AWS CodeCommit
En este blog, vamos a implementar notificaciones de eventos PR (solicitud de extracción) en Discord. ¡Esto va a ser interesante!
Veremos el proceso paso a paso para el mismo…
Se han ocultado algunos detalles como el nombre del repositorio, el nombre del tema de SNS, etc. en las imágenes de referencia solo para mantener la confidencialidad.
¡Empecemos!
Asegúrese de tener el requisito previo listo antes de avanzar hacia los pasos:
- El depósito S3 con política de depósito actualizada escrita en JSON proporciona acceso a los objetos almacenados en el depósito.
- Una distribución en CloudFront para los respectivos depósitos s3.
Paso 1: Configurar CodePipeline
En la consola de AWS, vaya a CodePipeline y haga clic en Crear canalización.
Cuando hacemos clic en Crear canalización, nos guiará a través de algunas etapas para configurar la canalización.
En la primera etapa, le daremos un nombre a esta canalización y configuraremos el depósito s3 como una ubicación personalizada.
En la segunda etapa, seleccionaremos el proveedor de origen, el repositorio y la sucursal para la que se creará el PR.
Además, seleccionaremos un proveedor de compilación en la tercera etapa (etapa de compilación).
Aquí tenemos que elegir un proyecto de construcción. Así que vamos a crear un proyecto de construcción. Al presionar el botón Crear proyecto, aparecerá una nueva ventana emergente aquí, debemos ingresar el nombre del proyecto de CodeBuild (podemos dar el que mejor se adapte).
Luego elegiremos el sistema operativo Amazon Linux 2 y el tiempo de ejecución como estándar y la imagen más reciente de las opciones dadas.
Si queremos usar un rol existente, podemos usarlo, pero por ahora, vamos con un nuevo rol de servicio. Establecerá automáticamente el nuevo nombre del rol de servicio, pero podemos editarlo si queremos.
Asegúrese de actualizar su archivo de especificaciones de compilación aquí y mantenga el resto de opciones como predeterminadas.
(Básicamente, un archivo de especificaciones de compilación tiene todos los comandos escritos para diferentes fases, como instalación, pre_construcción, compilación y post_construcción, etc.)
Una vez que coloquemos toda esta información, haremos clic en el botón Continuar a CodePipeline, que nos llevará de regreso a la 3.ª etapa del canal de código.
Ahora haremos clic en siguiente y crearemos la canalización.
(Aquí, omitimos la cuarta etapa porque no la estamos implementando, pero ya hemos escrito el comando para sincronizar el código con el depósito s3 en la fase posterior a la compilación dentro de nuestro archivo de especificaciones de compilación). Paso 1: Configurar CodePipeline
Paso 2: Crear tema SNS
Ahora regresaremos a la consola de AWS y buscaremos SNS.
Aquí crearemos un tema de SNS requerido durante la creación de la regla de notificación.
Mantendremos el tipo de SNS como Estándar, le daremos un nombre y dejaremos el resto como predeterminado. Finalmente, cree un tema SNS.
Paso 3: Crear una regla de notificación
Para crear una regla de notificación, nos dirigiremos a nuestro repositorio de CodeCommit.
Aquí seleccionaremos el repositorio para el que queremos configurar la notificación PR y haremos clic en el botón Notificar, donde veremos una opción para crear una regla de notificación.
Una vez más, estableceremos el nombre de la regla de notificación y seleccionaremos los eventos necesarios sobre los que queremos recibir la notificación.
Estableceremos el tipo de objetivo como SNS y seleccionaremos el tema de SNS como el objetivo que acabamos de crear en el último paso.
En esta etapa, hemos configurado correctamente las notificaciones para eventos de relaciones públicas.
Paso 4: Creación de una función Lambda
En este último paso, necesitamos crear una función lambda que recibirá los datos de diferentes eventos de relaciones públicas y los enviará a discord.
Iremos a Lambda desde la consola de AWS y crearemos una nueva función allí.
Una vez creada, agregaremos el activador SNS a la función.
Y finalmente, escribiremos nuestro código para enviar la notificación a un canal de Discord. Asegúrate de tener la URL del webhook de Discord.
Aquí está el código de muestra para enviar todos los detalles del evento en Discord.
Podemos modificar el código según nuestros requisitos.
Ahora, tan pronto como levantemos un PR, se activará una notificación y se enviará a la Discord.
Gracias por llegar hasta aquí, si encuentras esto útil no olvides dejar un👍🏼y suscribirse para recibir más contenido.
Si le interesa, puede echar un vistazo a algunos de los otros artículos que he escrito recientemente sobre AWS y Laravel: