GitHub
Plataforma de desarrollo colaborativo construida sobre Git. Más que hosting de repositorios — es el hub central para code review, CI/CD, gestión de proyectos y colaboración open source.
GitHub es una plataforma que extiende Git con colaboración, automatización y gestión de proyectos. Fundada en 2008, adquirida por Microsoft en 2018, hoy aloja más de 200 millones de repositorios y es el estándar de facto para desarrollo open source.
¿Qué agrega sobre Git?
Git es el motor de control de versiones. GitHub agrega:
- Pull Requests — propuestas de cambio con code review integrado
- Issues — tracking de bugs, features y tareas
- Actions — CI/CD nativo con workflows declarativos
- Projects — tableros Kanban y planificación
- Discussions — foros por repositorio
- Codespaces — entornos de desarrollo en la nube
- Copilot — asistente de código con IA
- Security — Dependabot, secret scanning, code scanning
Pull Requests
El flujo central de colaboración:
- Crear rama desde
main - Hacer commits con cambios
- Abrir Pull Request (PR)
- Code review — comentarios, sugerencias, aprobaciones
- CI checks pasan
- Merge a
main
Anatomía de un buen PR
## Descripción
Qué cambia y por qué.
## Tipo de cambio
- [ ] Bug fix
- [ ] Nueva feature
- [ ] Breaking change
- [ ] Documentación
## Testing
Cómo se probó este cambio.
## Screenshots (si aplica)Merge strategies
| Estrategia | Resultado | Cuándo usar |
|---|---|---|
| Merge commit | Preserva todos los commits + merge commit | Historial completo importa |
| Squash and merge | Un solo commit en main | PRs con muchos commits WIP |
| Rebase and merge | Commits individuales sin merge commit | Historial lineal limpio |
GitHub Actions
CI/CD declarativo en YAML. Los workflows viven en .github/workflows/.
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- run: pnpm install
- run: pnpm test
- run: pnpm buildConceptos clave
- Workflow — archivo YAML que define la automatización
- Job — conjunto de steps que corren en el mismo runner
- Step — comando individual o action reutilizable
- Action — unidad reutilizable (ej:
actions/checkout@v4) - Runner — máquina que ejecuta el job (GitHub-hosted o self-hosted)
- Secret — variable encriptada para tokens y credenciales
Triggers comunes
on:
push: # cualquier push
pull_request: # PRs abiertos/actualizados
schedule:
- cron: '0 0 * * *' # diario a medianoche UTC
workflow_dispatch: # manual desde UI
release:
types: [published] # cuando se publica un releaseBranch protection
Reglas para proteger ramas críticas:
- Requerir PR antes de merge
- Requerir N aprobaciones
- Requerir status checks (CI debe pasar)
- Requerir conversaciones resueltas
- Requerir firma de commits
- Bloquear force push
Configurar en: Settings → Branches → Add rule
GitHub CLI (gh)
Interactuar con GitHub desde la terminal:
# Autenticación
gh auth login
# Repositorios
gh repo create mi-proyecto --public
gh repo clone owner/repo
gh repo fork owner/repo
# Pull Requests
gh pr create --title "feat: add login" --body "Description"
gh pr list
gh pr checkout 123
gh pr merge 123 --squash
gh pr review 123 --approve
# Issues
gh issue create --title "Bug: login fails"
gh issue list --label bug
gh issue close 456
# Actions
gh run list
gh run view 789
gh run watch 789
# Releases
gh release create v1.0.0 --generate-notesGitHub vs alternativas
| Plataforma | Fortaleza | Consideración |
|---|---|---|
| GitHub | Ecosistema, comunidad, Actions | Propiedad de Microsoft |
| GitLab | DevOps completo, self-hosted | UI más compleja |
| Bitbucket | Integración Atlassian (Jira) | Menos comunidad open source |
| Azure DevOps | Enterprise, integración Azure | Curva de aprendizaje |
Buenas prácticas
- Commits atómicos — cada commit hace una cosa
- Conventional commits —
feat:,fix:,chore:,docs: - PRs pequeños — más fáciles de revisar, menos riesgo
- Branch protection — nunca push directo a main
- CODEOWNERS — asignar reviewers automáticamente
- Templates — PR e issue templates para consistencia
- Dependabot — actualizaciones de seguridad automáticas
Archivos especiales
.github/
├── workflows/ # GitHub Actions
├── CODEOWNERS # Asignación automática de reviewers
├── PULL_REQUEST_TEMPLATE.md
├── ISSUE_TEMPLATE/
│ ├── bug_report.md
│ └── feature_request.md
├── FUNDING.yml # Sponsors
└── dependabot.yml # Configuración Dependabot
¿Por qué importa?
GitHub no es solo un hosting de repositorios — es la plataforma donde convergen el código, la revisión, el CI/CD, la gestión de proyectos y la colaboración. Dominar sus capacidades nativas (Actions, branch protection, CLI) reduce la dependencia de herramientas externas y acelera el ciclo de desarrollo.
Referencias
- GitHub Docs — GitHub, 2024. Documentación oficial completa.
- GitHub Skills — GitHub, 2024. Cursos interactivos gratuitos.
- GitHub CLI Manual — GitHub, 2024. Referencia completa de
gh. - Awesome GitHub Actions — Sarah Drasner, 2024. Colección curada de actions.