
Usando el bot de gitlab como ejemplo, mostraré cómo automatizar el proceso de lanzamiento de funciones sin servidor actualizándolas automáticamente desde el repositorio de git. Pasamos de los juegos al desarrollo práctico en sin servidor.
¿Qué es un bot de gitlab?
Imagine que necesita automatizar el proceso de reacción para crear tareas / errores en su rastreador, por ejemplo, Gitlab (Problemas) o Jira. Es posible que deba agregar automáticamente un artista según las etiquetas, mover la tarea a un hito específico, agregar un comentario o simplemente cerrar el error desagradable. Todo esto se hace muy fácilmente usando funciones sin servidor. Como ejemplo, agregaremos un comentario (Nota en la terminología de Gitlab) a una tarea recién creada (Problema).
Y dado que el bot puede cambiar con frecuencia, automatizaremos su lanzamiento sincronizando automáticamente la función con el repositorio git donde se encuentra.
Entorno
Primero necesitamos crear un proyecto en Gitlab. Si no tiene una cuenta de Gitlab, puede crear una
aquí . Puede crear un nuevo proyecto público, por ejemplo, bifurcando mi proyecto
https://gitlab.com/bbelky/gitbotswf haciendo clic en el botón
Fork en la esquina superior derecha.
Para poder editar el código bot, debe clonarlo localmente. De hecho, a los fines de esta guía, podemos hacer esto en línea, pero estaremos más cerca de la vida real. Abre tu terminal y clona el repositorio git. El enlace se puede encontrar en la esquina superior derecha de su proyecto
Clonar >
Clonar con HTTPS .
Guárdelo como una
URL de Gitlab , aún nos será útil.
git clone <link to your repo> cd gitbotswf/ ls README.md main.go
Hay un archivo main.go en el repositorio clonado. Este es nuestro bot escrito en golang. El bot es muy simple: recibe un webhook de Gitlab en el caso de la creación de una nueva tarea (Issue) y agrega un comentario (nota en la terminología de Gitlab) a la tarea creada. Hay comentarios en main.go para ayudarlo a descubrir cómo funciona el bot. No nos detendremos en esto con más detalle.
No cierre la terminal; un poco más tarde tendremos que editar el archivo
main.go.También necesitamos crear la API de token de Gitlab para acceder a la API de hitlab.
- Vaya a su perfil de Gitlab> Configuración > Tokens de acceso.
- Crea un nuevo token con el alcance de la API.
- Cópielo y guárdelo como GITLABTOKEN .
El bot
Es hora de crear el bot en sí. Creemos una función sin servidor con el código de nuestro bot basado en la plataforma sin servidor
Swifty . Si aún no tiene una cuenta en Rusonyx Swifty, es hora de
crear una . Queremos automatizar el proceso de implementación de una nueva función, así que hagamos la siguiente secuencia: conecte nuestro repositorio git, cree una función basada en el código del git y coloque el token api gitlab en un repositorio seguro.
- Inicie sesión en Swifty y seleccione Repositorios
- Haga clic en Adjuntar repositorio , seleccione el tipo de URL de Git y pegue su URL de Gitlab .
- Recuerde seleccionar la opción del repositorio Mirror automáticamente y haga clic en Listo.
Ahora Swifty se sincronizará automáticamente con su repositorio (hacer git pull) cada 30 minutos. Ahora cree la función en sí:
- Vaya a Funciones > Nueva función > Desde la pestaña repositorio (Plantillas) .
- Seleccione el repositorio agregado recientemente, por ejemplo, gitlab.com/bbelky/gitbotswf.git . Ahora ves los archivos de tu repositorio.
- Seleccione el archivo main.go , haga clic en Siguiente.
- Seleccione la opción Sincronizar con el repositorio , ingrese el nombre de la función gitbotswf y haga clic en Crear .
Ahora necesitamos un disparador de API HTTP, cuando se llama, la función se activará:
- Vaya a la pestaña Triggers > Add Trigger > REST API (URL) .
- Copie la URL resultante y guárdela como BOT_URL .
Genial, ahora tenemos un repositorio y una función que se sincroniza con él automáticamente. Ahora agregue nuestro token API de Gitlab a cuentas Swifty, un repositorio seguro y encriptado para contraseñas y tokens.
- Vaya a Cuentas > Crear cuenta .
- Seleccione un tipo genérico .
- Nombra GITLABTOKEN y copia tu token. Guardar.
Ahora agregue el token a la función:
- Vaya a Funciones > función gitbotswf > Acceso y haga clic en Agregar .
- Seleccione el tipo Cuentas , GITLABTOKEN y haga clic en Agregar .
Activar webhook
En la última etapa, necesitamos crear un webhook en Gitlab que se disparará cada vez que se cree un nuevo Issue. Pasemos a Gitlab.
- Seleccione su proyecto> Configuración > Integraciones .
- Agregue el BOT_URL guardado anteriormente al campo URL .
- Marque la casilla junto a Eventos de problemas y haga clic en Agregar webhook .
Prueba
Vayamos al proyecto en Gitlab, en la pestaña
Problemas y creemos un nuevo
Problema . Revisa los comentarios. Si! Si todo funcionó bien, veremos el comentario
"¡Gracias por informar un nuevo problema!" . Si ocurrió un error en algún lugar, pregúntenos aquí o haga una pregunta en una
ranura .
Actualización y lanzamiento automático del bot
¿Qué pasa si necesitamos actualizar nuestro bot? Gracias a la integración con git, todo lo que necesita hacer es actualizar su código (cambiar el texto de la nota, por ejemplo), ejecutar el código en Gitlab y Swifty actualizará automáticamente su función.
Entonces, abra el archivo
main.go en la terminal y cambie la variable de
nota :
note := "Comments%20changed!"
Actualizar git:
git add * git commit -m "changes" git push origin master
Ir sin servidor!