Lo que lograrás
Configurarás un repositorio Git compartido con branch protection, un workflow predeterminado limpio, hooks para calidad de código, e integración CI.
Paso 1: crear el repositorio
git clone [email protected]:myorg/project.git
cd project
Paso 2: configurar branch predeterminado
git config init.defaultBranch main
Paso 3: branch protection
- Requerir un PR antes de mergear.
- Requerir al menos una review aprobatoria.
- Requerir status checks pasen.
- Requerir historia lineal.
- No permitir force pushes.
- No permitir eliminación directa.
Paso 4: .gitignore y .gitattributes
# .gitignore - ejemplo para Node
node_modules/
dist/
.env*
!.env.example
.DS_Store
*.swp
# .gitattributes
* text=auto eol=lf
*.png binary
*.jpg binary
*.pdf binary
Paso 5: CODEOWNERS
# .github/CODEOWNERS
* @myorg/maintainers
/docs/ @myorg/docs-team
/infra/ @myorg/devops
Paso 6: plantillas de PR e issue
# .github/PULL_REQUEST_TEMPLATE.md
## Resumen
## Plan de prueba
- [ ]
## Capturas / videos (si UI)
## Issues vinculados
Paso 7: hooks pre-commit
npm install --save-dev husky lint-staged
npx husky init
# .husky/pre-commit
npx lint-staged
# package.json
"lint-staged": {
"*.{js,ts}": ["eslint --fix", "prettier --write"]
}
Paso 8: configuración CI
# .github/workflows/ci.yml
name: CI
on:
push:
branches: [main]
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm ci
- run: npm run lint
- run: npm test
Paso 9: escaneo de secretos
# .github/workflows/gitleaks.yml
name: gitleaks
on: [pull_request]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: gitleaks/gitleaks-action@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Paso 10: documentación de contribución
# CONTRIBUTING.md
## Nombrado de branch
feature/, fix/, chore/, docs/
## Mensajes de commit
Modo imperativo, asunto de 50 caracteres, cuerpo opcional.
## Proceso PR
1. Branchea desde main.
2. Abre un PR borrador temprano.
3. Obtén una aprobación y CI verde.
4. Squash y merge.
Paso 11: invitar al equipo
Paso 12: primer PR
Crea un PR pequeño tú mismo.
Mantenimiento
- Revisar reglas de branch protection trimestralmente.
- Actualizar CODEOWNERS cuando el equipo cambie.
- Refrescar configuraciones de bots de actualización de dependencias.
- Periódicamente podar branches mergeados.