Por Anónimo (no verificado) , 29 Abril 2026

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.