---
title: 'Project documentation template'
disqus: hackmd
---
# Taller G-Lab
Laboratorios practicos servicios MILAB
Guia G-lab
Diego Armando Castillo Morales
06 de Octubre de 2022
---
1. Objetivo
Conocer las funcionalidades basicas del servicio G-lab por parte de los usuarios, sus caracteritiscas y buen uso.
---
---
2. Materiales
- Computador
- Acceso estable a internet
---
# G-lab
En el servicio MILAB G-lab es el repositorio de codigo el cual permite un mejor trabajo colaborativo gracias al control de versiones que permite gestionar los cambios en el código fuente a través del tiempo sin alterar el codigo principal, tambien permite la integracion continua y entrega continua (CI/CD), optimizando el flujo de trabajo en codigo y la automatizacion del mismo.
## Branch
Las branchs o ramas son la parte fundamental del control de versiones con ellas podemos crear una “rama” del código principal o master para realizar modificaciones o correcciones de errores sin alterar el código master y trabajar de manera paralela. Después podemos solicitar revisión de la rama y así probar cambios sin alterar el código principal. Después de enviar sus cambios a una nueva rama, puede:
- Crear una solicitud de fusión
- Realizar revisión de código en línea
- Discuta su implementación con su equipo
- Obtenga una vista previa de los cambios enviados a una nueva sucursal con Revisar aplicaciones

## Merge
Es la solicitud de union de una rama a la rama master o principal esta esta sujeta a verificacion y autorizacion del dueño o administrador del repositorio.

## Commits
Los commmits o comentarios son esenciales en el funcionamiento del control de versiones pues de forma detallada permiten que el codigo sea legible, claro y facilmente escaneable por cualquier miembro nuevo o viejo del equipo de trabajo. Al agregar un commit a un cambio, nueva version, modificacion, correcion de errores puedes solicitar revision y merge request al administrador del grupo.

## Hash
Hash es una identificacion para cada commit realizado en nuestro trabajo permite identificarlo de esta manera le puedo decir a gitlab que comentario quiero buscar.

## Push y Pull
En el control de versiones siempre se recomienda trabajar desde un lugar remoto, para asi el host donde se encuentre el codigo master no corra riesgo y se guarde mejor la informacion realizando backup constantemente, por esto existe la posibilidad de trabajar remotamente clonando el repositorio que se encuentra en el maaster.
Al clonarlo cada miembro tiene el repositorio en su computadora y si realiza cambios y los quiere enviar al repositorio master debe hacer un commit y luego el comando push que permite enviar los cambios al repositorio ahora estos nuevos cambios para ser comprobados y bajados nuevamente del repositorio necesitan del comando pull que permite verificar si hay cambios y bajarlos al proyecto.

## Ventajas
- Permite conocer la historia de tu proyecto.
- Puedes moverte historicamente en tu proyecto a cualquier momento o version del mismo.
- Experimentar con cambios u correciones.
- Guardar tu trabajo.
- Trabajar en equipo al mismo tiempo sin afectar el trabajo de los demas compañeros.
# Creacion de un proyecto en gitlab
Para la creacion de un proyecto en Gitlab primero debemos iniciar sesion con nuestro usuario y luego en la pagina principal ir a:
1. En la pantalla principal después de la autenticación ir a nuevo proyecto.
2. Allí seleccionar crear proyecto en blanco.
3. Aquí damos nombre al proyecto, visibilidad, descripción breve del mismo.
4. El proyecto se crea con un archivo Readme el cual es editable en markdown.



## Menù perfil de usuario
Acceder al perfil de usuario que se encuentra en la parte superior derecha en el logo que se muestra en la imagen. Allí puedes cambiar tu contraseña, nombre de usuario,agregar correos a su cuenta de gitlab, volver la pagina de usuario privada, agregar informacion a su perfil con un archivo readme.


## Añadir miembros al proyecto
Para agregar miembros al proyecto debemos ir al menos del proyecto en la parte superior derecha en informacion del proyecto y seleccionar mimebros, alli tendremos un menu de busqueda de ususarios y podremos invitar grupos completos, usuarios o invitados y darles privilegios de trabajo.

## Incidencias o Issues
Las incidencias o issues son el medio fundamental para el trabajo colaborativo y la planificación del mismo en gitlab, permite definir cualquier problema que se detecta en el software y darle seguimiento.
En el meno de la izquierda seleccionamos incidencias y alli la podemos crear dandole un titulo una descripcion del porbelma, asignarla a un miembro especifico, una fecha de vencimiento y hacerle el respectvo seguimiento.
Estos issues tambien se pueden ver en forma de lista o tablero para tener una perspectiva mejor de los probelmas y como va la solucion de cada uno de ellos.


## Crear Archivos
En este menu se pueden crear archivos .docker o un archivo de licencia en caso de que se este trabajando en creacion de software es necesario este tipo de archivo, es util la creacion de texto cuando solo sean texto plano .Tambien el readme que viene creado por default y es editable para dar una descripcion del repositorio.
Cuando se necesita archivos binarios como imagenes o PDF debemos usar subir archivos de cualquier tipo esto por si necesitamos compartir algo importante y no tan grande en el repositorio. Tambien se pueden crear carpetas para tener una mejor organizacion del repositorio.

Como se puede ver en la imagen anterior tambien en este menu podemos crear la nueva rama o branch para trabajo colaborativo o en grupo. Tambien se puede crear desde el menu de la parte izquierda.
## CI/CD integracion continua / entrega continua
GitLab CI/CD se define como una herramienta que implementa las metodologías de integración, entrega e implementación continua con el objetivo de realizar actividades como el desarrollo, prueba y publicación de softwares. Todo ello sin que sea necesaria alguna aplicación o sistema externo adicional.
Permite construir, probar y entregar software a un ritmo mas rapidos ya que trata de eliminar las interacciones humanas manuales donde es posible. Esto requiere de varias herramientas disponibles en multiples sistemas pero con CI/CD gitlab podemos tener todo en un solo lugar.

Así pues, GitLab CI/CD incluye, además, las funciones de compilación, supervisión e implementación automática de las aplicaciones. Del mismo modo, destaca su capacidad para identificar errores e inconsistencias al inicio del ciclo de desarrollo, lo que garantiza que la totalidad del código de producción cumpla con los requisitos indicados para su aplicación efectiva.
### Gitlab runners
Esta herramienta es un proyecto de la plataforma diseñado para correr los trabajos y enviar de vuelta los resultados al sistema. Se utiliza en conjunto con GitLab CI/CD.
De manera que, al trabajar con la herramienta de GitLab CI/CD, se debe tener en cuenta que esta opción utiliza el recurso denominado GitLab Runners para correr sus builds. Esto quiere decir que utiliza los runners como máquinas virtuales aisladas para que se encarguen de correr pasos establecidos con anterioridad mediante la Interfaz de Programación de Aplicaciones.
Cabe destacar también que esta opción resulta ideal para correr los proyectos a través de las construcciones de pipelines, aumentando así su velocidad frente a procesos como correrlo en una única instancia.

# Actividades
Para que el taller sea interactivo y colaborativo las personas que desarrollen el mismo podran subir las evidencias en este mimsmo archivo MD ya que permite la edicion y desarrollo dentro del mismo archivo.
1. Realizar la autenticacion en el servicio G-lab.
2. Ingresar a la interfaz de usuario y crear un proyecto nuevo que contenga archivo Readme y que de nombre tenga practica prueba y su nombre completo. Adjuntar evidencia dentro de este documento.
3. Dentro del proyecto, subir un archivo tipo png de las pruebas de las actividades, crear una carpeta que contenga estas imagenes, editar el archivo readme con informacion sobre las utilidades de el servicio G-lab.
4. Crear un issue solicitando la revision del trabajo realizado y asignar a Diego Armando Castillo para que realice esta tarea.
> Adjuntar prueba visual de esta actividad.
5. Crear una rama o branch nueva realizar un cambio en el codigo del Readme como por ejemplo cambiar el titulo, crear un commit y solicitar un merge request para que los cambios sean aprovados.
> Adjuntar evidencia visual de esta actividad.