Contenido del curso
Planificación y Gestión del Proyecto
Desarrollo, Versionamiento y Pruebas
- 5

Crea tu primera API con .NET en GitHub
Viendo ahora - 6

Pruebas unitarias con xUnit en .NET
06:40 min - 7

Blindaje de rama main y gestión de commits en GitHub
07:06 min - 8

GitHub Actions para validar pruebas en pull requests
08:34 min - 9

Dockerfile para API .NET en Docker local
06:51 min - 10

CI/CD para imágenes Docker en GitHub Actions
05:58 min - 11

Publicar imagen Docker en Hub con GitHub Actions
06:21 min
CI/CD
Observabilidad, Mejora Continua
- 15

OpenTelemetry con Azure Application Insights
08:16 min - 16

Variables de ambiente en GitHub Actions y Azure Container App
09:49 min - 17

Creación de paneles personalizados con Azure Workbooks
09:49 min - 18

Creación de método para obtener contactos con pruebas unitarias
04:01 min - 19

Deploy automático con pull request en Azure
04:29 min - 20

Herramientas DevOps que puedes intercambiar
04:05 min - 21

Scrum y DevOps juntos en GitHub Projects
03:31 min - 22

Qué sigue después de tu primer pipeline
02:55 min
Crea tu primera API con .NET en GitHub
Resumen
Avanzar en un proyecto DevOps con GitHub exige disciplina con los detalles: registrar tareas, mover issues entre columnas y mantener el repositorio limpio. Aquí verás cómo pasar una tarea de ready a done, crear un proyecto de API en .NET y subir tu primer commit sin romper la metodología.
Por qué los detalles definen tu metodología DevOps
La metodología DevOps se sostiene en hábitos pequeños que, si los descuidas, se convierten en deuda técnica. Guardar tareas, crear issues y mover tarjetas en el panel parece trivial, pero abandonar esos pasos diluye los beneficios del flujo.
Antes de avanzar conviene que tengas tus tareas cargadas en el proyecto. Si no lo has hecho, pausa, súbelas y regresa. Solo así el panel de control reflejará el estado real del trabajo.
¿Qué pasa si no actualizo mis issues en DevOps? Pierdes trazabilidad. La metodología depende de que cada tarea tenga estado visible (ready, in progress, done) para que el equipo y tú mismo sepan en qué enfocarse.
Cómo mover una tarea de ready a in progress en GitHub Projects
El panel de GitHub Projects organiza el trabajo en columnas. Cuando una tarea ya tiene definición clara, pasa a ready. En el ejemplo había dos tareas listas: crear un método para agregar contactos y crear el proyecto de API con .NET.
El flujo correcto al iniciar el día es directo:
- Identificar la tarea prioritaria en ready.
- Moverla a in progress para señalar foco.
- Abrir el detalle del issue y autoasignártelo.
- Confirmar que la iteración esté configurada.
Cuando autoasignas el issue, GitHub registra responsabilidad. Eso elimina la ambigüedad sobre quién está tocando ese código en ese momento.
Cómo se vinculan los issues con el repositorio
Los issues creados en el proyecto aparecen también dentro del repositorio asociado. En el ejemplo, el issue número seis, crear el proyecto de API con .NET, ya estaba señalado con su assignee visible. Esa visibilidad cruzada entre proyecto y repositorio es lo que mantiene la coherencia del tablero.
Cómo crear un proyecto de API con .NET y estructurarlo bien
Con la tarea en progreso, el siguiente paso es crear el proyecto. Desde la terminal, dentro del repositorio, el comando inicial es dotnet new webapi -n contactosapi. Aquí se eligió C# con .NET por preferencia, pero el mismo flujo aplica con TypeScript, Go o PHP.
El primer intento mostró un error común: crear el proyecto directamente en la raíz del repositorio. La corrección fue eliminarlo con rm -rf contactosapi y rehacerlo dentro de una carpeta src, que es la convención para source code.
El orden quedó así:
- Crear la carpeta con
mkdir src. - Entrar a esa carpeta.
- Ejecutar
dotnet new webapi -n contactosapi. - Volver al nivel raíz y abrir el editor con
code ..
¿Por qué usar una carpeta src en lugar de la raíz? Porque separa el código fuente de archivos de configuración, infraestructura y documentación. Mantiene el repositorio escalable cuando se sumen más servicios.
Para verificar que todo compila, dentro de contactosapi se ejecuta dotnet build. Si la compilación pasa, el proyecto está listo para versionarse.
Cómo configurar gitignore para subir solo lo esencial
El archivo .gitignore decide qué se sube al repositorio y qué no. En el ejemplo era un archivo personalizado que excluía:
- Las carpetas
binyobjgeneradas por .NET al compilar. - Los archivos de compilación de Terraform, que se usarán más adelante para infraestructura.
Cuando .gitignore está bien configurado, las carpetas excluidas aparecen en gris dentro del editor. Esa señal visual confirma que no viajarán al repositorio remoto.
Cómo hacer el primer commit y sincronizar cambios
Con el proyecto compilando y el .gitignore correcto, el flujo de versionado es:
- Abrir el panel de control de versiones en Visual Studio Code.
- Escribir un mensaje breve, por ejemplo primer commit.
- Ejecutar el commit.
- Sincronizar e ingresar la frase del SSH cuando la pida.
El mensaje no necesita ser extenso en este punto inicial, pero sí descriptivo conforme el proyecto crezca.
Cómo cerrar un issue manualmente y por qué no es lo ideal
Una vez que los cambios están en el repositorio, el issue asociado debe cerrarse. La forma rápida es entrar al issue y darle close issue. Al hacerlo, el proyecto detecta el cambio y mueve la tarjeta automáticamente de in progress a done.
En el ejemplo, la tarea curso DevOps número seis, crear proyecto de API quedó marcada como done sin intervención adicional en el tablero.
¿Está bien cerrar issues manualmente en GitHub? Funciona, pero no es la mejor práctica. Lo recomendable es que el commit o pull request cierre el issue automáticamente mediante referencias como
closes #6.
Esa diferencia entre cerrar a mano y cerrar por referencia es justo lo que separa un flujo DevOps básico de uno refinado. ¿Cómo crees que cambia tu trazabilidad cuando cada commit documenta qué issue resuelve? Cuéntame en los comentarios cómo gestionas tus tareas hoy.