### comandos de git: status, add, commit, push, pull, rm, log, branch, checkout, merge
El objetivo principal de esta práctica es aprender qué es, para qué sirve y cómo funcionan los issues en github
En este caso, vamos a simular como podemos indicarle al dueño y/o colaboradores de un repositorio, donde creéis que puede, hay un fallo, posible mejora o comentario al código del repositorio sin ser colaborador o pertenecer al repositorio.
En primer lugar, lee la guía de github sobre issues: Mastering Issues
Vamos a simular una situación real de trabajo colaborativo.
Para no alargar la práctica innecesariamente y como ya hemos trabajado ramas en otras prácticas, en este repositorio sólo tendremos las siguientes ramas: main
Se trabajará por parejas. Elije un/a compañero/a. Si hay alguien sin pareja, puedes hacerlo con cualquiera que ya tenga una.
En este caso, para realizar un Issue, no es necesario ser colaborador de un repositorio. Los Issues pueden realizarse a cualquier repositorio
Por tanto, haremos los Issues al repositorio del compañero/a elegido sin ser colaboradores (también es posible hacerlo siendo colaboradores del proyecto, por supuesto)
En esta práctica (teniendo en cuenta la simulación) trabajaremos dos roles:
Sube a tu repositorio algún código o práctica con varios errores (que posteriormente te indicará tu pareja para que los soluciones)(repositorio propietario de aquí en adelante) Rol propietario del repositorio
Ve hasta el repositorio de tu compañero y abre el código fuente que tiene errores. Rol desarrollador
Antes de crear el primer Issue, y tal como describe la guía de github indicada en el punto 2, a cada issue puedes asignarle Milestones, Labels, and Assignees. Asegurate de entender que diferencia hay entre cada uno de ellos. Rol desarrollador
A cada uno de los issues que vamos a generar hay que darle un título, una descripción del error y cómo podría solucionarlo Rol desarrollador
En este caso, como no sois colaboradores, no se pueden añadir labels, milstone ni asignar a ningún usuario. Para ello debes ser colaborador del repositorio. (¿Entiendes la diferencia? ¿Ves la razón por la que no puedes sin ser colaborador y si siendo colaborador?) Ahora, añade como colaborador a tu compañero/a y asigna un label, un milestone (para esta práctica siempre el mismo: "practica5". Si has entendido lo que es Milestone, entenderás porque le damos el mismo a todos los issues de esta práctica), y asignárselo al propietario del repositorio, tu compañero/a en esta práctica.
Genera 4 Issues. Rol desarrollador
Como habrás podido observar, cada issue se referencia por un número precedido de "#" Ambos roles
En los Issues, como en los pull request, podemos mantener una conversación y hablar entre el propietario del repositorio y quien haya abierto el Issue. Ambos roles
Hay 2 formas de cerrar issues, mediante github y en repositorio local a través de un commit. Rol propietario del repositorio
El issue #1 lo cerraremos en github. Rol propietario del repositorio
Una vez que nuestro compañero haya abierto el issue le responderemos. Rol propietario del repositorio
Responderás a la conversación. Rol desarrollador
Modificas el código con la sugerencia de tu compañero y cierras el issue #1. Rol propietario del repositorio
El resto de issues será cerrado en repositorio local. Lee este artículo para saber cómo Closing issues using keywords Rol propietario del repositorio
Primero cerraremos un único issue (#2). Cambia en el repositorio local(recuerda tenerlo actualizado). Modifica el código para solucionar el issue #2. Rol propietario del repositorio
Compromote el código añadiendo el keyword para cerrar el issue a través del commit. Rol propietario del repositorio
Actualiza el repositorio en github. Rol propietario del repositorio
Observa el en el repositorio como el issue #2 se ha cerrado. Rol propietario del repositorio
Realiza los mismos pasos pero eliminando varios issues (#3 y #4) añadiendo el keyword a través del commit. Rol propietario del repositorio
Actualiza el repositorio en github. Rol propietario del repositorio
Vuelve a observar en el repositorio como los issue #3 y #4 se han cerrado. Rol propietario del repositorio