From c06e64a3f201ab53fc6736943532241013879a33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20J=2E=20El=C3=ADas?= Date: Sat, 1 Nov 2025 22:19:23 +0000 Subject: [PATCH 1/2] Add Git workflow documentation for Pull Request process MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added comprehensive workflow documentation including: - Branch protection rules configuration - Pull request creation and review process - Required 2 approvals workflow - Common git commands for collaboration - Team collaboration guidelines 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- WORKFLOW.md | 140 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 WORKFLOW.md diff --git a/WORKFLOW.md b/WORKFLOW.md new file mode 100644 index 0000000..1a4142d --- /dev/null +++ b/WORKFLOW.md @@ -0,0 +1,140 @@ +# Git Workflow - Pull Request Process + +## Repository Configuration + +**Repository**: https://github.com/ajeelias/AJEImpositivoAPI +**Visibility**: Public +**Branch**: main (protected) + +## Branch Protection Rules ✅ + +La rama `main` está protegida con las siguientes reglas: + +### ✅ Pull Request Reviews +- **Aprobaciones requeridas**: 2 (DOS revisores deben aprobar) +- **Descartar aprobaciones obsoletas**: ✅ Habilitado (si hay nuevos commits, se descartan aprobaciones previas) +- **Requiere aprobación del último push**: ✅ Habilitado +- **No requiere code owners**: ❌ Deshabilitado (cualquier colaborador puede aprobar) + +### ✅ Protecciones Adicionales +- **Enforce admins**: ✅ Los administradores también deben seguir las reglas +- **Historial lineal requerido**: ✅ No se permiten merge commits, solo rebase +- **Force push**: ❌ Bloqueado +- **Eliminación de rama**: ❌ Bloqueado + +## Workflow de Desarrollo + +### 1. Crear una nueva rama para cambios + +```bash +# Crear y cambiar a nueva rama +git checkout -b feature/nueva-funcionalidad + +# O para bugs +git checkout -b fix/corregir-error +``` + +### 2. Realizar cambios y commits + +```bash +# Hacer cambios en archivos... +git add . +git commit -m "Descripción del cambio + +Detalles adicionales del cambio realizado. + +🤖 Generated with [Claude Code](https://claude.com/claude-code) + +Co-Authored-By: Claude " +``` + +### 3. Push de la rama + +```bash +git push -u origin feature/nueva-funcionalidad +``` + +### 4. Crear Pull Request + +```bash +# Usando gh CLI +gh pr create --title "Título del PR" --body "Descripción detallada" + +# O vía web en: https://github.com/ajeelias/AJEImpositivoAPI/pulls +``` + +### 5. Proceso de Revisión + +1. **Asignar revisores**: Mínimo 2 personas deben revisar +2. **Revisores aprueban**: Ambos revisores deben dar "Approve" +3. **Si hay cambios solicitados**: Realizar commits adicionales + - ⚠️ Las aprobaciones previas se descartarán automáticamente + - Necesitarás 2 nuevas aprobaciones +4. **Merge**: Una vez con 2 aprobaciones, se puede hacer merge + +### 6. Merge del Pull Request + +```bash +# Via CLI (después de aprobaciones) +gh pr merge --rebase + +# O vía web en GitHub +``` + +## Comandos Útiles + +### Ver estado de PRs + +```bash +# Ver todos los PRs +gh pr list + +# Ver detalles de un PR +gh pr view 123 + +# Ver checks y aprobaciones +gh pr checks +gh pr review --list +``` + +### Actualizar rama con cambios de main + +```bash +# Estando en tu rama de feature +git fetch origin +git rebase origin/main + +# Si hay conflictos, resolverlos y continuar +git rebase --continue +``` + +### Cerrar un PR sin merge + +```bash +gh pr close 123 +``` + +## Notas Importantes + +⚠️ **IMPORTANTE**: No se puede hacer push directo a `main`. Todos los cambios DEBEN pasar por Pull Request. + +⚠️ **2 APROBACIONES REQUERIDAS**: El merge solo se habilita después de que 2 revisores diferentes aprueben el PR. + +⚠️ **Nuevos commits = Nuevas aprobaciones**: Si haces push de nuevos commits después de recibir aprobaciones, las aprobaciones se descartan y necesitarás 2 nuevas. + +✅ **Historial lineal**: Solo se permite rebase merge, manteniendo un historial limpio sin merge commits. + +## Colaboradores + +Para añadir colaboradores al repositorio: + +```bash +# Añadir colaborador +gh api repos/ajeelias/AJEImpositivoAPI/collaborators/USERNAME -X PUT + +# O vía web: Settings > Collaborators > Add people +``` + +--- + +**Alejandro J. Elías -- Director -- DeveloperTeam Software Solutions** From 4668dfc514c3874c39c6c253b746c3430294f8d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20J=2E=20El=C3=ADas?= Date: Sat, 1 Nov 2025 22:41:15 +0000 Subject: [PATCH 2/2] Update branch protection rules documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changed from 2 to 1 required approval for Pull Requests. Changes: - Updated required approvals from 2 to 1 - Documented that owner/admin can bypass approval requirements - Updated "require last push approval" status (now disabled) - Updated "enforce admins" status (now disabled for bypass) - Modified review process section to reflect 1 approval workflow - Updated important notes with new approval requirements This change makes the workflow more flexible for solo development while maintaining pull request discipline and linear history. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- WORKFLOW.md | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/WORKFLOW.md b/WORKFLOW.md index 1a4142d..60508ad 100644 --- a/WORKFLOW.md +++ b/WORKFLOW.md @@ -11,13 +11,13 @@ La rama `main` está protegida con las siguientes reglas: ### ✅ Pull Request Reviews -- **Aprobaciones requeridas**: 2 (DOS revisores deben aprobar) +- **Aprobaciones requeridas**: 1 (UNA aprobación necesaria) - **Descartar aprobaciones obsoletas**: ✅ Habilitado (si hay nuevos commits, se descartan aprobaciones previas) -- **Requiere aprobación del último push**: ✅ Habilitado +- **Requiere aprobación del último push**: ❌ Deshabilitado - **No requiere code owners**: ❌ Deshabilitado (cualquier colaborador puede aprobar) ### ✅ Protecciones Adicionales -- **Enforce admins**: ✅ Los administradores también deben seguir las reglas +- **Enforce admins**: ❌ Deshabilitado (el owner/administrador puede hacer bypass de las reglas) - **Historial lineal requerido**: ✅ No se permiten merge commits, solo rebase - **Force push**: ❌ Bloqueado - **Eliminación de rama**: ❌ Bloqueado @@ -65,12 +65,13 @@ gh pr create --title "Título del PR" --body "Descripción detallada" ### 5. Proceso de Revisión -1. **Asignar revisores**: Mínimo 2 personas deben revisar -2. **Revisores aprueban**: Ambos revisores deben dar "Approve" +1. **Asignar revisores**: Mínimo 1 persona debe revisar +2. **Revisor aprueba**: El revisor debe dar "Approve" 3. **Si hay cambios solicitados**: Realizar commits adicionales - ⚠️ Las aprobaciones previas se descartarán automáticamente - - Necesitarás 2 nuevas aprobaciones -4. **Merge**: Una vez con 2 aprobaciones, se puede hacer merge + - Necesitarás una nueva aprobación +4. **Merge**: Una vez con 1 aprobación, se puede hacer merge +5. **Owner/Admin**: El propietario o administrador puede hacer merge sin aprobaciones si es necesario ### 6. Merge del Pull Request @@ -118,9 +119,11 @@ gh pr close 123 ⚠️ **IMPORTANTE**: No se puede hacer push directo a `main`. Todos los cambios DEBEN pasar por Pull Request. -⚠️ **2 APROBACIONES REQUERIDAS**: El merge solo se habilita después de que 2 revisores diferentes aprueben el PR. +✅ **1 APROBACIÓN REQUERIDA**: El merge se habilita después de que 1 revisor apruebe el PR. -⚠️ **Nuevos commits = Nuevas aprobaciones**: Si haces push de nuevos commits después de recibir aprobaciones, las aprobaciones se descartan y necesitarás 2 nuevas. +👑 **OWNER/ADMIN BYPASS**: El propietario o administradores del repositorio pueden hacer merge sin aprobaciones si es necesario. + +⚠️ **Nuevos commits = Nueva aprobación**: Si haces push de nuevos commits después de recibir aprobación, la aprobación se descarta y necesitarás una nueva. ✅ **Historial lineal**: Solo se permite rebase merge, manteniendo un historial limpio sin merge commits.