Active CI/CD desde Slack Slash Commands: ejecute acciones de Github desde Slack con Google Cloud Functions | de Ankur Anurag | julio 2022

Con la llegada de ChatOps, el desarrollo basado en conversaciones se está volviendo más popular cada día. Imagine poder implementar su código en el servidor o publicar una nueva versión en Play Store simplemente usando un comando de Slack, ¡qué práctico y conveniente sería! En este artículo, aprenderemos lo mismo. Activaremos nuestro flujo de trabajo de acciones de Github desde un comando Slack Slash.

  1. Inicie sesión en https://api.slack.com/apps y haga clic en Crear nueva aplicación
  2. Ingrese el nombre de la aplicación y el espacio de trabajo donde desea instalar la aplicación
  3. Ahora seleccione su aplicación recién creada de la lista tus aplicaciones
  4. Selecciona Barra lateral izquierda > Seleccionar información básica. Tome nota de la secreto de firma afuera Credenciales de la aplicación. Se utilizará más adelante en la integración.
  5. Nuevamente, seleccione Barra lateral izquierda> Características> Comandos de barra> Crear nuevo comando de barra

Crear un nuevo comando de barra diagonal 6. Introduzca el nombre del comando. lo mantendremos /para construir . Puede dar al comando cualquier nombre.7. ignora eso URL de solicitud campo por ahora. Obtendremos este comando una vez que se haya creado nuestra función de Google Cloud.

Nota: Podemos proporcionar datos adicionales con nuestro comando. Me gusta /construir branchName|buidType|flavor|someMoreData

8. Vuelva a ir a SideBar > Información básica > Instalar la aplicación en su espacio de trabajo.

  1. Inicie sesión en https://console.cloud.google.com. Crear un proyecto > Funciones de búsqueda en la nube > crear función

Nota: debe activar la facturación para acceder a las funciones de la nube

2. Ahora cambiamos a nuestra máquina local. Escribiremos nuestro código e implementaremos la función desde nuestra máquina local. Para eso tenemos que configurar CLI de base de fuego y nodo en nuestra máquina3. Instalar CLI de base de fuego y nodo usar este enlace.4. Después de una instalación exitosa, ejecute $firebase login:ci, que lo redirigirá al inicio de sesión de Gmail. Asegúrese de estar usando la cuenta de Gmail que tiene acceso al proyecto Firebase.5. Para verificar si ejecuta $firebase project:list, si ve su proyecto en la nube en el resultado, significa que el inicio de sesión fue exitoso.6. Las funciones de la nube admiten JavaScript y TypeScript. Usaremos TypeScript para escribir el código de nuestra función.7. Crea una carpeta. Navegue a esta carpeta en la terminal y ejecútela $ Funciones de inicio de Firebase . Esto creará un diccionario en su proyecto con algunos archivos generados automáticamente.8. Para activar las API de Github, necesitamos los siguientes valores de nombre de usuario, repositorio y token de acceso por adelantado. signature_secret de la aplicación de Slack generada en el paso A4 también se le pedirá que verifique que la solicitud provenga de una fuente válida. también generar Token personal de Github.9. Dado que todos estos valores son constantes, podemos configurarlos como variables de entorno en nuestras funciones que recuperaremos y usaremos más adelante en nuestro código: $ firebase functions:config:set github.username=test-username github.repository =test – repositorio github.access_token=test-token slack.signing_secret=test-slack-signing-secret github.workflow_name=workflow-file.yml10. Para verificar lo mismo: $ firebase functions:config:get Obtendrá una respuesta como: {«github»: {«username»: «test-username»,»access_token»: «test-token»,»repository»: » prueba – repositorio»,»workflow_name»: «workflow-file.yml»},»slack»: {«signing_secret»: «test-slack-signing-secret»}}}

Código para la función:

  1. Usaremos Para expresar para responder a las solicitudes provenientes de nuestro comando de barra.
  2. Primero necesitamos instalar las dependencias requeridas. En el directorio de características, instale las dependencias requeridas:

npm install –save @types/express @types/tsscmp @types/cors3. Crear un archivo bajo /funciones/src/index.ts. Esto sirve como punto de entrada. El nombre de la función se usa como el nombre de la función de Google Cloud. La función en la nube onSlackCommand llama a nuestro en el archivo /funciones/slack-command.ts.4. Entonces creamos /funciones/slack-command.ts . El código es bastante autoexplicativo. Analizamos la solicitud del comando Slack y recuperamos datos como el nombre del canal, datos adicionales adjuntos al comando, etc. Tenga en cuenta que importamos para verificar() y Deducción() Métodos de otro archivo.5. Que para verificar() y Deducción() Las funciones son parte de nuestro archivo. /funciones/utilidades/slack.ts. para verificar() comprueba si la solicitud entrante es auténtica y Deducción() La función en realidad hace que la API llame para activar el flujo de trabajo de Github. Puede leer sobre cómo activar el flujo de trabajo de acción de Github manualmente a través de la API REST. Recuperaremos las variables globales que habíamos configurado en el paso B9mediante funciones.config().github.access_token6. Una última cosa. Desde Google Cloud Console > Su función > Copie la URL de activación y péguela en la URL de solicitud de comando de barra inclinada como se menciona en el paso A7. Ahora podemos empezar.Comando de barra en acción Supongo que eso es todo por este artículo. Felicitaciones por su bot de lanzamiento automatizado. Siéntete libre de dejar un comentario si encuentras algún problema. no lo olvides 👏👏👏 si te gustó

Deja una respuesta

Tu dirección de correo electrónico no será publicada.