AI y automatización de desarrollos Open Source

Sindy Tatiana Moncada Pisso
Bancolombia Tech
Published in
5 min readAug 14, 2023

Cuando hablamos de Inteligencia artificial imaginamos maquinas realizando y/o reemplazando acciones humanas, en este articulo veremos una herramienta que se convierte en un aliado o partner del desarrollador y permite agilizar ciertas actividades dentro del desarrollo de software, también abordaremos la automatización usando tecnologías Open Source.

Exploremos dos herramientas de GitHub Actions + GitHub Copilot.

¿Qué es GitHub Copilot?

GitHub Copilot es una herramienta de inteligencia artificial, desarrollada por GitHub y OpenAI, está basada en la nube y que permite el autocompletado de código para usuarios de Visual Studio Code, Visual Studio, Neovim y de JetBrains. Actualmente soporta varios lenguajes de programación, incluyendo Python, JavaScript, TypeScript, Ruby, Go y PHP, entre otros​.

Copilot es un aliado para el desarrollo de software agilizando y brindando opciones de soluciones al desarrollador. Fue lanzado como vista previa a mediados de 2021 y un año más tarde en 2022 ya se tiene disponible para su uso en una suscripción de cuenta individual con una capa gratuita de 30 días y posterior a ello tiene un costo de 10 dólares al mes.

Su configuración es de manera sencilla, en el cual se habilita desde nuestra cuenta personal de GitHub y agrega la extensión en nuestro IDE como por ejemplo Visual Studio Code, permitiendo que se pueda habilitar y deshabilitar según su uso.

Extensión Visual Studio Code

Puede servir de apoyo a la hora de crear nuevas fracciones de código, hacer traducción de un lenguaje a otro, facilitar generación de listas y expresiones regulares.

Sugerencias de código de una función

Con GitHub Copilot se puede expresar de manera natural en inglés o escribir código y el interactuar brindando opciones de auto completado de código.

Sugerencias de código dada por instrucción de lenguaje natural

GitHub ya lanzó Copilot X el cual se encuentra en etapa de vista previa, en este se incluiría soportado un Chat para su interacción y ampliando a otros idiomas aparte del inglés.

Aquí encontraras la documentación oficial: GitHub Copilot · Your AI pair programmer

y ahora ¿Qué es GitHub Actions?

GitHub Actions es una plataforma de integración y despliegue continuo (CI/CD) que te permite automatizar el mapa de compilación, pruebas y despliegue. Permite crear flujos de trabajo, probar, desplegar cada solicitud de cambios en tu repositorio.

GitHub proporciona máquinas virtuales Linux, Windows y macOS para ejecutar los flujos de trabajo, soporta 500MB de storage y 2.000 minutos de ejecución gratuitos al mes.

¿Cómo se implementa?

Dentro de nuestra cuenta de GitHub tenemos habilitado por defecto Actions, en el cual dentro de nuestro repositorio podemos configurar creando la ruta ./github/workflows y en estos flujos de trabajos que deben tener como extensión .yaml

Repositorio con implementación de GitHub Actions

¿Cómo se ve?

Finalmente, cuando tenemos los flujos de trabajo implementados veremos con las interacciones a nuestro repositorio los flujos de trabajo o pipelines en la pestaña de Actions.

GitHub Actions en ejecución

Para que entendamos más de Actions veamos su estructura:

Metadata: especifica el nombre del proyecto y los métodos de ejecución (triggers)

Como se observa en la imagen se le debe dar un nombre e indicar en donde correrá dichas acciones push, pull request e issues, se puede indicar en que branches aplica y sobre los issues a que tipos.

Jobs: tareas y pasos que se esperan ejecutar dentro del pipeline de GitHub Actions

Para los Jobs se definen pasos y ejecuciones dentro de la máquina virtual que se requiera, para probar, compilar, desplegar cambios de un repositorio (test, build, deploy), entre otras.

Estas definirán las actividades a ejecutar cuando actions se habilite dentro de nuestro repositorio.

Marketplace de GitHub Actions

GitHub Actions también proporciona un Marketplace el cual es un catálogo, donde se pueden agregar y consultar acciones predefinidas que se pueden utilizar dentro de los flujos de trabajo.

Marketplace GitHub Actions
Ejemplo de uso de GitHub Actions del marketplace (checkout@v3 — setup-node@v3)

Para mayor detalle puedes consultar la documentación oficial de GitHub Actions en el siguiente enlace: Documentación sobre las Acciones de GitHub

Y para practicar un poco, entender el uso y ver cómo funciona GitHub Actions se presenta el siguiente ejemplo: bancolombia/github_actions_ejemplo_frontend at solution

En estes puedes crear una rama Fork para replicar y en el branch de Feature/login crear tus propios .yaml de configuración. Ir a la sección de README.md y seguir los pasos…

Ejemplo para el uso de GitHub Actions Bancolombia

y Git Hub Copilot nos apoya también en la generación y escritura de código a la hora de crear yamls de Actions. Así que puedes habilitar estas dos herramientas y probar el ejercicio.

GitHub Copilot en apoyo con GitHub Actions

Estas dos herramientas Open Source GitHub Actions + GitHub Copilot, nos permiten adentramos al mundo de la inteligencia artificial y la automatización en desarrollos Open Source.

--

--

Sindy Tatiana Moncada Pisso
Bancolombia Tech

Ingeniera de Sistemas y Especialista en Procesos de Desarrollo de Software, Ingeniera de Software en Bancolombia