13. Git, GitHub, GitLab y trabajo en equipo

Objetivo del tema

Integrar OpenCode en el ciclo colaborativo del software: trabajar con seguridad sobre repositorios versionados, instalar el agente de GitHub para atender issues y pull requests, conocer las opciones para GitLab y compartir conocimiento entre miembros del equipo.

13.1 OpenCode sobre un repositorio Git

El control de versiones no es opcional en el flujo con agentes: es la red de seguridad que permite deshacer, comparar y auditar. Recuerda dos hechos importantes:

  • /undo y /redo usan Git internamente para revertir cambios de archivos, por lo que funcionan mejor en proyectos versionados.
  • Cada iteración es revisable: antes de aceptar, puedes inspeccionar el diff completo con git diff o desde tu editor.

Buenas prácticas al delegar tareas:

  • Trabaja con el árbol limpio (git status sin cambios pendientes) para aislar los cambios del agente.
  • Rama por tarea: pide al agente crear una rama antes de implementar.
  • Commits atómicos: una funcionalidad o corrección por commit, con mensajes convencionales (feat:, fix:, docs:).

13.2 El agente de GitHub

OpenCode puede vivir dentro de tu repositorio de GitHub y ejecutarse en los runners de GitHub Actions cuando alguien lo menciona en un issue o pull request:

Triage de issues

Pídele que lea un issue completo (incluidos comentarios) y explique el problema o sugiera documentación relevante.

Arreglar e implementar

Con "/opencode fix this" crea una rama nueva, implementa los cambios y abre un PR con todo.

Ejecución segura

Todo corre dentro de los runners de tu propio repositorio: tu código nunca sale hacia infraestructura ajena.

La instalación guiada se hace con un comando dentro del proyecto:

opencode github install

Este asistente configura la aplicación de GitHub (opencode-agent), crea el workflow en .github/workflows/opencode.yml y te guía en la carga de secretos con la clave API del modelo elegido.

13.3 Eventos que activan al agente

Eventos de GitHub soportados
Evento Activación Detalle
issue_comment Comentario en issue o PR Mención /opencode o /oc: lee el contexto, puede crear ramas, abrir PRs o responder.
pull_request_review_comment Comentario sobre líneas concretas del PR Recibe archivo, números de línea y diff automáticamente.
issues Issue creado o editado Triaje automático; requiere prompt en el workflow.
pull_request PR abierto, actualizado o reabierto Revisión automática; por defecto revisa el PR si no se indica prompt.
schedule Cron programado Tareas periódicas (auditorías, limpiezas); requiere prompt.
workflow_dispatch Ejecución manual desde la pestaña Actions Activar el agente bajo demanda.

Ejemplos de comentarios en la práctica:

/opencode explain this issue          → resume y explica el hilo completo
/opencode fix this                    → rama nueva + cambios + PR
Elimina el adjunto de S3 al borrar la nota /oc   → implementa en el mismo PR
/oc agrega manejo de errores aquí     → comentado sobre líneas del PR

Al comentar sobre líneas específicas en la pestaña Files, OpenCode recibe archivo, líneas y contexto del diff sin que tengas que indicarlo.

13.4 Configuración del workflow

La pieza central es el workflow de Actions. Versión mínima:

name: opencode
on:
  issue_comment:
    types: [created]
jobs:
  opencode:
    if: contains(github.event.comment.body, '/oc')
    runs-on: ubuntu-latest
    permissions:
      id-token: write
    steps:
      - uses: actions/checkout@v6
        with: { fetch-depth: 1, persist-credentials: false }
      - uses: anomalyco/opencode/github@latest
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        with:
          model: anthropic/claude-sonnet-4-20250514

Opciones destacadas: model (obligatorio), agent para elegir el agente primario, prompt para personalizar la consigna, y share para publicar la sesión (activa por defecto en repos públicos). Si prefieres no instalar la app de GitHub, puedes autenticar con el GITHUB_TOKEN del runner o un PAT, otorgando los permisos contents: write, pull-requests: write e issues: write.

13.5 GitLab y otras plataformas

  • GitLab Duo (experimental): suscriptores Premium/Ultimate pueden conectar su cuenta con /connect (OAuth o token personal) y usar los modelos de Duo dentro de OpenCode.
  • CI universal: en cualquier plataforma con pipelines (GitLab CI, Azure DevOps, Jenkins), el modo headless del tema 9 hace el resto: opencode run "..." --format json como paso más del pipeline.
  • Pull requests locales: el comando opencode pr <número> descarga un PR de GitHub, hace checkout de su rama y abre el agente listo para trabajar sobre él.

13.6 Conocimiento compartido entre el equipo

Herramientas de colaboración incluidas
Herramienta Uso en equipo
AGENTS.md versionado Las convenciones acordadas viajan con el repositorio: todos los agentes del equipo responden igual.
/share / /unshare Enlaces públicos de sesiones para code review asistido o mostrar cómo se resolvió un bug.
opencode export / import Transferir sesiones completas (JSON) o recuperarlas desde un enlace share.
Sesiones en stats Auditar consumo por proyecto antes de repartir costos internos.

Política sugerida para equipos: acuerden qué tareas pueden delegarse al agente sin revisión (tests, docs, refactors menores), cuáles exigen plan en modo Plan aprobado por otro desarrollador, y documenten todo en el AGENTS.md. La herramienta amplifica tanto las buenas como las malas prácticas existentes.

Conclusión: OpenCode se integra al flujo colaborativo en dos niveles: como compañero local que respeta Git en cada cambio, y como miembro asincrónico del equipo mediante el agente de GitHub, atendiendo issues, implementando fixes y revisando PRs dentro de tu propia infraestructura. En el próximo tema entraremos en la personalización profunda: agentes propios, comandos a medida y permisos finos.