GitHub
Use OpenCode en issues y solicitudes de extraccion de GitHub.
OpenCode se integra con su flujo de trabajo de GitHub. Mencione /opencode o /oc en su comentario, y OpenCode ejecutara tareas dentro de su ejecutor de GitHub Actions.
Caracteristicas
- Triage de issues: Pida a OpenCode que investigue una issue y se la explique.
- Corregir e implementar: Pida a OpenCode que corrija una issue o implemente una caracteristica. Trabajara en una nueva rama y enviara un PR con todos los cambios.
- Seguro: OpenCode se ejecuta dentro de los ejecutores de su GitHub.
Instalacion
Ejecute el siguiente comando en un proyecto que este en un repositorio de GitHub:
opencode github installEsto lo guiara a traves de la instalacion de la aplicacion de GitHub, la creacion del flujo de trabajo y la configuracion de secretos.
Configuracion manual
O puede configurarlo manualmente.
-
Instalar la aplicacion de GitHub
Vaya a github.com/apps/opencode-agent. Asegurese de que este instalada en el repositorio de destino.
-
Agregar el flujo de trabajo
Agregue el siguiente archivo de flujo de trabajo a
.github/workflows/opencode.ymlen su repositorio. Asegurese de establecer elmodelapropiado y las claves API requeridas enenv..github/workflows/opencode.yml name: opencodeon:issue_comment:types: [created]pull_request_review_comment:types: [created]jobs:opencode:if: |contains(github.event.comment.body, '/oc') ||contains(github.event.comment.body, '/opencode')runs-on: ubuntu-latestpermissions:id-token: writesteps:- name: Checkout repositoryuses: actions/checkout@v6with:fetch-depth: 1- name: Run OpenCodeuses: anomalyco/opencode/github@latestenv:ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}with:model: anthropic/claude-sonnet-4-20250514# share: true# github_token: xxxx -
Almacenar las claves API en secretos
En la configuracion de su organizacion o proyecto, expanda Secretos y variables a la izquierda y seleccione Actions. Agregue las claves API requeridas.
Configuracion
-
model: El modelo para usar con OpenCode. Tomara el formato deproveedor/modelo. Esto es requerido. -
agent: El agente para usar. Debe ser un agente primario. Recurre adefault_agentde la configuracion o"build"si no se encuentra. -
share: Si se debe compartir la sesion de OpenCode. Por defecto a true para repositorios publicos. -
prompt: Prompt personalizado opcional para anular el comportamiento predeterminado. Uselo para personalizar como OpenCode procesa las solicitudes. -
token: Token de acceso a GitHub opcional para realizar operaciones como crear comentarios, confirmar cambios y abrir solicitudes de extraccion. Por defecto, OpenCode usa el token de acceso de instalacion de la aplicacion OpenCode de GitHub, por lo que las confirmaciones, comentarios y solicitudes de extraccion aparecen como provenientes de la aplicacion.Alternativamente, puede usar el
GITHUB_TOKENintegrado del ejecutor de GitHub Action sin instalar la aplicacion OpenCode de GitHub. Solo asegurese de otorgar los permisos requeridos en su flujo de trabajo:permissions:id-token: writecontents: writepull-requests: writeissues: writeTambién puede usar tokens de acceso personal(PAT) si prefiere.
Eventos admitidos
OpenCode puede ser activado por los siguientes eventos de GitHub:
| Tipo de evento | Activado por | Details |
|---|---|---|
issue_comment | Comentario en una issue o PR | Mencione /opencode o /oc en su comentario. OpenCode lee el contexto y puede crear ramas, abrir PRs o responder. |
pull_request_review_comment | Comentario en lineas de codigo especificas en una PR | Mencione /opencode o /oc al revisar el codigo. OpenCode recibe la ruta del archivo, numeros de linea y contexto de diff. |
issues | Issue abierta o editada | Activar automaticamente OpenCode cuando se crean o modifican issues. Requiere entrada prompt. |
pull_request | PR abierta o actualizada | Activar automaticamente OpenCode cuando se abren, sincronizan o reabren PRs. Util para revisiones automaticas. |
schedule | Programacion basada en cron | Ejecutar OpenCode en un horario. Requiere entrada prompt. La salida va a registros y PRs (no hay issue para comentar). |
workflow_dispatch | Activacion manual desde la interfaz de GitHub | Activar OpenCode a demanda a traves de la pestana Acciones. Requiere entrada prompt. La salida va a registros y PRs. |
Ejemplo de programacion
Ejecutar OpenCode en un horario para realizar tareas automatizadas:
name: Scheduled OpenCode Task
on: schedule: - cron: "0 9 * * 1" # Todos los lunes a las 9 AM UTC
jobs: opencode: runs-on: ubuntu-latest permissions: id-token: write contents: write pull-requests: write issues: write steps: - name: Checkout repository uses: actions/checkout@v6
- name: Run OpenCode uses: anomalyco/opencode/github@latest env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} with: model: anthropic/claude-sonnet-4-20250514 prompt: | Review the codebase for any TODO comments and create a summary. If you find issues worth addressing, open an issue to track them.Para eventos programados, la entrada prompt es requerida ya que no hay comentario para extraer instrucciones. Los flujos de trabajo programados se ejecutan sin contexto de usuario para verificar permisos, por lo que el flujo de trabajo debe otorgar contents: write y pull-requests: write si espera que OpenCode cree ramas o PRs.
Ejemplo de solicitud de extraccion
Revisar automaticamente los PRs cuando se abren o actualizan:
name: opencode-review
on: pull_request: types: [opened, synchronize, reopened, ready_for_review]
jobs: review: runs-on: ubuntu-latest permissions: id-token: write contents: read pull-requests: read issues: read steps: - uses: actions/checkout@v6 - uses: anomalyco/opencode/github@latest env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} with: model: anthropic/claude-sonnet-4-20250514 prompt: | Review this pull request: - Check for code quality issues - Look for potential bugs - Suggest improvementsPara eventos pull_request, si no se proporciona prompt, OpenCode por defecto revisara la solicitud de extraccion.
Ejemplo de triage de issues
Triagear automaticamente nuevas issues. Este ejemplo filtra cuentas de mas de 30 dias para reducir spam:
name: Issue Triage
on: issues: types: [opened]
jobs: triage: runs-on: ubuntu-latest permissions: id-token: write contents: write pull-requests: write issues: write steps: - name: Check account age id: check uses: actions/github-script@v7 with: script: | const user = await github.rest.users.getByUsername({ username: context.payload.issue.user.login }); const created = new Date(user.data.created_at); const days = (Date.now() - created) / (1000 * 60 * 60 * 24); return days >= 30; result-encoding: string
- uses: actions/checkout@v6 if: steps.check.outputs.result == 'true'
- uses: anomalyco/opencode/github@latest if: steps.check.outputs.result == 'true' env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} with: model: anthropic/claude-sonnet-4-20250514 prompt: | Review this issue. If there's a clear fix or relevant docs: - Provide documentation links - Add error handling guidance for code examples Otherwise, do not comment.Para eventos issues, la entrada prompt es requerida ya que no hay comentario para extraer instrucciones.
Prompts personalizados
Anular el prompt predeterminado para personalizar el comportamiento de OpenCode para su flujo de trabajo.
- uses: anomalyco/opencode/github@latest with: model: anthropic/claude-sonnet-4-5 prompt: | Review this pull request: - Check for code quality issues - Look for potential bugs - Suggest improvementsEsto es util para hacer cumplir criterios de revision especificos, estandares de codificacion o areas de enfoque relevantes para su proyecto.
Ejemplos
Aquí hay algunos ejemplos de como puede usar OpenCode en GitHub.
-
Explicar una issue
Agregue este comentario en una issue de GitHub.
/opencode explain this issueOpenCode leera todo el hilo, incluyendo todos los comentarios, y respondra con una explicacion clara.
-
Corregir una issue
En una issue de GitHub, diga:
/opencode fix thisY OpenCode creara una nueva rama, implementara los cambios y abrira un PR con los cambios.
-
Revisar PRs y hacer cambios
Deje el siguiente comentario en un PR de GitHub.
Delete the attachment from S3 when the note is removed /ocOpenCode implementara el cambio solicitado y lo confirmara en el mismo PR.
-
Revisar lineas de codigo especificas
Deje un comentario directamente en las lineas de codigo en la pestana “Archivos” del PR. OpenCode detecta automaticamente el archivo, numeros de linea y contexto de diff para proporcionar respuestas precisas.
[Comentario en lineas especificas en la pestana Archivos]/oc add error handling hereAl comentar en lineas especificas, OpenCode recibe:
- El archivo exacto que se esta revisando
- Las lineas de codigo especificas
- El contexto diff circundante
- Informacion de numeros de linea
Esto permite solicitudes mas dirigidas sin necesidad de especificar rutas de archivo o numeros de linea manualmente.