🔗 Conectar tu Repo

Norma completa en la Wiki →
GitLab (antes)
https://gitlab.com/goecosystem/TU-REPO.git
GitHub (ahora)
https://github.com/GoEcosystemDH/TU-REPO.git
git remote set-url origin https://github.com/GoEcosystemDH/TU-REPO.git
Este comando le dice a git: "ahora mi codigo vive en GitHub, no en GitLab". Tu carpeta local, tus cambios, tu historial — todo se conserva. Solo cambia a donde se sube.
git clone https://github.com/GoEcosystemDH/TU-REPO.git
cd TU-REPO
Usa esta opcion si: es tu primera vez con el repo, quieres una copia limpia, o tuviste problemas con el cambio de origen.
git remote -v

Resultado esperado:

origin  https://github.com/GoEcosystemDH/his-api.git (fetch)
origin  https://github.com/GoEcosystemDH/his-api.git (push)
Si ves github.com/GoEcosystemDH, estas bien.
Si ves gitlab.com o cualquier otra URL, repite el paso 1.

🔎 No sabes el nombre de tu repo? → Buscalo en la Tabla de Homologacion

1 Tu codigo en 6 pasos

Norma completa en la Wiki →
1
2
3
4
5
6
🎯 Tomas una Task en Azure DevOps
Ve al board de tu equipo en Azure DevOps, elige una tarea y asignala a tu nombre. Cambia su estado a In Progress.
# El ID de la task lo vas a necesitar en tu branch y commits
Task AB#3456 — "Agregar endpoint de exportacion PDF"
Estado: To Do → In Progress
🌱 Creas una branch desde develop
Tu rama siempre nace de develop y sigue el patron feature/descripcion. Nunca trabajes directamente sobre develop.
git checkout develop
git pull origin develop
git checkout -b feature/export-pdf
💻 Desarrollas y haces commits
Trabaja en tu branch. Cada commit sigue el formato de Conventional Commits. Incluye el ID de la task de Azure DevOps.
git add src/export/pdf-service.ts
git commit -m "feat(export): agregar generacion de PDF AB#3456"

git add tests/export/pdf-service.spec.ts
git commit -m "test(export): agregar tests de generacion PDF AB#3456"
📤 Creas un Pull Request
Sube tu branch y crea un PR hacia develop. Puedes hacerlo desde la web de GitHub (recomendado) o con gh pr create en la terminal. Ver seccion "Crear un PR desde GitHub Web" mas abajo.
git push -u origin feature/export-pdf

# Desde GitHub CLI (o usa la web — ver seccion detallada abajo)
gh pr create --base develop --title "feat: agregar endpoint de exportacion PDF AB#3456" --fill
🔍 Code Review — un compañero revisa
Un compañero de equipo revisa tu codigo. Responde a los comentarios, haz los cambios necesarios y espera la aprobacion.
# Tu reviewer puede aprobar, pedir cambios, o comentar
Estado: ✓ Approved — Tu PR esta listo para merge
Estado: ✎ Changes requested — Corrige y vuelve a pedir review
🚀 Merge → Pipeline despliega automaticamente
Tu PR se mergea a develop. El pipeline de CI/CD construye, prueba y despliega tu codigo automaticamente.
# El merge activa el pipeline automaticamente
develop ← merge ← feature/export-pdf

Pipeline: Build ✓ → Test ✓ → Staging ✓ → Production ✓

2 Estructura de Ramas

Norma completa en la Wiki →
🟢 main (Produccion) Piso 3: Lo que ven los usuarios

Solo llega codigo probado y aprobado.

Push directo: NO
Merge via: release/ o hotfix/
Proteccion: Bloqueada
🔵 develop (Integracion) Piso 2: Aqui se juntan los cambios

Aqui convergen todas las features del equipo.

Push directo: NO
Merge via: PR con 1 approval
Fuente: feature/ y bugfix/
🟣 feature/* (Tu trabajo) Piso 1: Tu escritorio personal

Aqui desarrollas tranquilo, sin afectar a nadie.

Push directo: SI (tu branch)
Nace de: develop
Vuelve a: develop (via PR)
gitGraph
    commit id: "v1.0"
    branch develop
    checkout develop
    commit id: "base"
    branch feature/citas
    commit id: "feat: endpoint"
    commit id: "test: tests"
    checkout develop
    merge feature/citas id: "PR #1"
    branch release/v1.1
    commit id: "bump version"
    checkout main
    merge release/v1.1 id: "v1.1" tag: "v1.1"
      
main — Produccion. Bloqueada. Solo recibe merges de release/ y hotfix/. Cada merge genera un tag con la version.
develop — Integracion. Requiere PR. Aqui convergen todas las features. Es la fuente de verdad del desarrollo activo.
feature/ — Tu rama de trabajo. Se crea desde develop, se mergea a develop via PR. Formato: feature/nombre-descriptivo.
release/ — Preparacion de release. Se crea desde develop, se mergea a main y develop. Aqui se hace bump de version y ajustes finales.
hotfix/ — Fix urgente en produccion. Se crea desde main, se mergea a main y develop. Solo para incidentes criticos.
Tipo Formato Ejemplo Desde → Hacia
feature feature/ID-descripcion feature/3456-endpoint-citas develop → develop
hotfix hotfix/descripcion hotfix/timeout-db main → main + develop
release release/vX.Y.Z release/v2.5.0 develop → main + develop
bugfix bugfix/descripcion bugfix/validacion-cedula develop → develop

3 Conventional Commits

Norma completa en la Wiki →

feat — Nueva funcionalidad visible para el usuario. Algo que antes no existia.

feat(auth): agregar login con SSO de Azure AD
feat(citas): implementar reserva de citas por rango horario AB#2100
update code

fix — Correccion de un bug. Algo que antes funcionaba mal y ahora funciona bien.

fix(costos): corregir calculo de redondeo en facturas
fix(rcf): resolver error 500 al consultar RCF sin vigencia AB#3001
fix bug

docs — Cambios en documentacion. README, comentarios en codigo, OpenAPI specs.

docs(api): documentar endpoint de pacientes con ejemplos
docs(his): actualizar diagrama de arquitectura del modulo HIS
cambios varios

refactor — Reestructuracion de codigo sin cambiar comportamiento externo. Ni agrega funcionalidad ni corrige bugs.

refactor(citapp): extraer logica de validacion a servicio dedicado
refactor(costos): simplificar queries del reporte mensual
refactoring

test — Agregar o modificar tests. No cambia codigo de produccion.

test(his): agregar tests unitarios para servicio de pacientes
test(rcf): agregar test de integracion para flujo de aprobacion
add tests

chore — Tareas de mantenimiento. Actualizar dependencias, configuraciones, herramientas internas.

chore(deps): actualizar express a v4.18.2
chore(citapp): configurar prettier y eslint rules
update packages

ci — Cambios en pipelines de CI/CD. GitHub Actions, workflows, Dockerfiles de build.

ci(his): agregar stage de pruebas de seguridad al pipeline
ci(rcf): configurar deploy automatico a staging en merge a develop
fix pipeline

perf — Mejora de rendimiento. El comportamiento no cambia pero es mas rapido o usa menos recursos.

perf(costos): agregar indice a tabla de movimientos por fecha
perf(citapp): cachear consulta de horarios disponibles
improve performance
Formato
tipo(scope): descripcion en minuscula sin punto
❌ Incorrecto
update code
fix bug
cambios varios
✅ Correcto
feat(auth): agregar login con SSO
fix(costos): corregir calculo de redondeo
docs(api): documentar endpoint de pacientes

4 Crear un PR desde GitHub Web

Templates de PR → Reglas de aprobacion →
1 Haz push de tu branch
git push -u origin feature/3456-endpoint-citas
2 Veras este banner en GitHub
🌴
feature/3456-endpoint-citas had recent pushes 2 minutes ago
Compare & pull request
Este banner aparece automaticamente en la pagina del repo despues de hacer push.
3 Llena el formulario del PR

Open a pull request

base: develop ← compare: feature/3456-endpoint-citas
Create pull request
Reviewers
@GoEcosystemDH/his-core
Asignado automaticamente via CODEOWNERS
Labels
feature size/M
4 Espera la revision
CI/CD Pipeline passed
Build passed
Review required 1 approval needed

Los checks automaticos se ejecutan solos. Tu solo necesitas esperar la revision de un compañero.

5 Merge
✓ Squash and merge
Despues del merge, la branch se elimina automaticamente y el pipeline despliega a staging/produccion.
flowchart LR
    PUSH["🔀 Push / Merge"] --> BUILD["🔨 Build"]
    BUILD --> TEST["🧪 Test"]
    TEST --> STAGING["🟡 Staging"]
    STAGING --> APPROVAL{"👤 Approval"}
    APPROVAL -->|Aprobado| PROD["🟢 Produccion"]
    APPROVAL -->|Rechazado| FIX["🔧 Corregir"]
    FIX --> PUSH
      
Etapa Que pasa Quien lo hace
Build Se compila tu codigo y se crea una imagen Docker Robot (GitHub Actions)
Test Se ejecutan pruebas automaticas (unit + integration) Robot
Staging Se despliega en un ambiente de pruebas Robot
Approval Alguien revisa que todo funcione en staging Humano (tu lead)
Produccion Tu codigo esta live para los usuarios Robot

6 Pull Request — como se ve uno bueno

Norma completa en la Wiki →
● Open
feat: agregar endpoint de exportacion PDF AB#3456
feature size/M

Descripcion

Implementa el endpoint POST /api/v1/export/pdf que genera reportes en PDF a partir de los datos de citas del paciente. Incluye validacion de parametros, tests unitarios y documentacion OpenAPI.

Checklist

  • Mis commits siguen Conventional Commits
  • Agregue tests unitarios y de integracion
  • La documentacion esta actualizada
  • No hay secretos hardcodeados en el codigo
  • Probe localmente que funciona

Reglas de aprobacion segun tipo de cambio:

Feature normal
1 approval
Cambio de arquitectura
2 approvals
Hotfix critico
1 approval (SLA: 4h)
Solo documentacion
1 approval
Reglas de aprobacion → Checklist de Code Review →

🖥 GitHub Desktop — Guia Rapida

💡
Prefieres clicks en vez de terminal? GitHub Desktop es una app gratuita que te permite hacer branches, commits y push sin escribir comandos.
Descargar GitHub Desktop
desktop.github.com — Windows y macOS

Configuracion inicial

1
Iniciar sesion
GitHub Desktop
Welcome to GitHub Desktop
Sign in to GitHub.com
Usa tu cuenta de GitHub (la misma de GoEcosystemDH)
2
Clonar tu repo
Clone a Repository
URL GitHub.com
  • GoEcosystemDH/his-api
  • GoEcosystemDH/rcf-app
  • GoEcosystemDH/costos-web
Local Path: /Users/tu-usuario/Documents/GOE/his-api
Clone
3
Configurar identidad
Preferences › Git
Name
Email
Esto es lo que aparece en tus commits

Flujo diario en 5 pasos

1
Actualizar develop
🌴 develop
Fetch origin
Siempre empieza actualizando develop
2
Crear branch
Name:
from: develop
Crea tu branch de trabajo
3
Commit
citas-service.ts M
Commit
Marca archivos, escribe mensaje con formato conventional, commit
4
Push
Push origin
Sube tus cambios a GitHub
5
Crear PR
Create Pull Request
Se abre GitHub web donde llenas el template del PR

Terminal vs GitHub Desktop

Accion Terminal GitHub Desktop
Actualizar develop git checkout develop && git pull Current Branch → develop → Fetch origin
Crear branch git checkout -b feature/x Branch → New Branch
Commit git add . && git commit -m "feat: ..." Check files → Write message → Commit
Push git push -u origin feature/x Push origin
Crear PR gh pr create Create Pull Request (abre web)
Descargar GitHub Desktop →

7 Comandos del dia a dia

Norma completa en la Wiki →
💡 Empezar a trabajar
# Actualizar develop y crear tu branch
git checkout develop
git pull origin develop
git checkout -b feature/mi-tarea
💾 Guardar mi trabajo
# Agregar archivos y hacer commit con formato correcto
git add src/mi-archivo.ts
git commit -m "feat(modulo): descripcion del cambio AB#1234"
🚀 Pedir revision
# Subir tu branch y crear el PR
git push -u origin feature/mi-tarea
gh pr create --base develop --title "feat: mi cambio AB#1234" --fill
✅ Despues del merge
# Volver a develop y limpiar tu branch local
git checkout develop
git pull origin develop
git branch -d feature/mi-tarea
🖥 Si usas GitHub Desktop

No necesitas estos comandos si prefieres la interfaz grafica. Consulta la seccion GitHub Desktop — Guia Rapida mas arriba para ver el equivalente visual de cada accion.