GitHub
Usa OpenCode en issues y pull requests de GitHub.
OpenCode se integra con tu flujo de trabajo de GitHub. Menciona /opencode o /oc en tu comentario, y OpenCode ejecutara tareas dentro de tu runner de GitHub Actions.
Caracteristicas
- Triaje de issues: Pide a OpenCode que investigue un issue y te lo explique.
- Corregir e implementar: Pide a OpenCode que corrija un issue o implemente una caracteristica. Trabajara en una nueva rama y enviara un PR con todos los cambios.
- Seguro: OpenCode se ejecuta dentro de tus runners de GitHub.
Instalacion
Ejecuta el siguiente comando en un proyecto que este en un repositorio de GitHub:
opencode github installEsto te guiara a traves de la instalacion de la app de GitHub, la creacion del workflow y la configuracion de secrets.
Configuracion Manual
O puedes configurarlo manualmente.
-
Instalar la app de GitHub
Ve a github.com/apps/opencode-agent (opens in a new tab). Asegurate de que este instalada en el repositorio de destino.
-
Agregar el workflow
Agrega el siguiente archivo de workflow a
.github/workflows/opencode.ymlen tu repositorio. Asegurate de establecer elmodelapropiado y las claves API requeridas enenv..github/workflows/opencode.ymlname: opencode on: 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-latest permissions: id-token: write steps: - name: Checkout repository uses: actions/checkout@v6 with: fetch-depth: 1 persist-credentials: false - name: Run OpenCode uses: anomalyco/opencode/github@latest env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} with: model: anthropic/claude-sonnet-4-20250514 # share: true # github_token: xxxx -
Almacenar las claves API en secrets
En la configuracion de tu organizacion o proyecto, expande Secrets and variables a la izquierda y selecciona Actions. Luego agrega las claves API requeridas.
Configuracion
-
model: El modelo a usar con OpenCode. Toma el formatoprovider/model. Esto es requerido. -
agent: El agente a usar. Debe ser un agente primario. Recurre adefault_agentde la configuracion o"build"si no se encuentra. -
share: Si compartir la sesion de OpenCode. Por defecto es true para repositorios publicos. -
prompt: Prompt personalizado opcional para anular el comportamiento predeterminado. Usa esto para personalizar como OpenCode procesa las solicitudes. -
token: Token de acceso de GitHub opcional para realizar operaciones como crear comentarios, hacer commits de cambios y abrir pull requests. Por defecto, OpenCode usa el token de acceso de instalacion de la App de GitHub de OpenCode, por lo que los commits, comentarios y pull requests aparecen como provenientes de la app.Alternativamente, puedes usar el
GITHUB_TOKENintegrado (opens in a new tab) del runner de GitHub Action sin instalar la App de GitHub de OpenCode. Solo asegurate de otorgar los permisos requeridos en tu workflow:permissions: id-token: write contents: write pull-requests: write issues: writeTambien puedes usar tokens de acceso personal (opens in a new tab) (PAT) si lo prefieres.
Eventos Soportados
OpenCode puede ser activado por los siguientes eventos de GitHub:
| Tipo de Evento | Activado Por | Detalles |
|---|---|---|
issue_comment | Comentario en un issue o PR | Menciona /opencode o /oc en tu comentario. OpenCode lee el contexto y puede crear ramas, abrir PRs o responder. |
pull_request_review_comment | Comentario en lineas de codigo especificas en un PR | Menciona /opencode o /oc mientras revisas codigo. OpenCode recibe la ruta del archivo, numeros de linea y contexto del diff. |
issues | Issue abierto o editado | Activa automaticamente OpenCode cuando se crean o modifican issues. Requiere entrada de prompt. |
pull_request | PR abierto o actualizado | Activa automaticamente OpenCode cuando se abren, sincronizan o reabren PRs. Util para revisiones automatizadas. |
schedule | Programacion basada en Cron | Ejecuta OpenCode en un horario. Requiere entrada de prompt. La salida va a logs y PRs (no hay issue para comentar). |
workflow_dispatch | Activacion manual desde la UI de GitHub | Activa OpenCode bajo demanda a traves de la pestana Actions. Requiere entrada de prompt. La salida va a logs y PRs. |
Ejemplo de Programacion
Ejecuta OpenCode en un horario para realizar tareas automatizadas:
name: Scheduled OpenCode Task
on:
schedule:
- cron: "0 9 * * 1" # Every Monday at 9am 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
with:
persist-credentials: false
- 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 de prompt es requerida ya que no hay comentario del cual extraer instrucciones. Los workflows programados se ejecutan sin contexto de usuario para verificacion de permisos, por lo que el workflow debe otorgar contents: write y pull-requests: write si esperas que OpenCode cree ramas o PRs.
Ejemplo de Pull Request
Revisa automaticamente 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
with:
persist-credentials: false
- uses: anomalyco/opencode/github@latest
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
model: anthropic/claude-sonnet-4-20250514
use_github_token: true
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 revisa el pull request por defecto.
Ejemplo de Triaje de Issues
Triaje automatico de nuevos issues. Este ejemplo filtra cuentas con 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'
with:
persist-credentials: false
- 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 de prompt es requerida ya que no hay comentario del cual extraer instrucciones.
Prompts Personalizados
Anula el prompt predeterminado para personalizar el comportamiento de OpenCode para tu workflow.
- 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 aplicar criterios de revision especificos, estandares de codificacion o areas de enfoque relevantes para tu proyecto.
Ejemplos
Aqui hay algunos ejemplos de como puedes usar OpenCode en GitHub.
-
Explicar un issue
Agrega este comentario en un issue de GitHub.
/opencode explain this issueOpenCode leera todo el hilo, incluyendo todos los comentarios, y respondera con una explicacion clara.
-
Corregir un issue
En un issue de GitHub, di:
/opencode fix thisY OpenCode creara una nueva rama, implementara los cambios y abrira un PR con los cambios.
-
Revisar PRs y hacer cambios
Deja 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 hara commit en el mismo PR.
-
Revisar lineas de codigo especificas
Deja un comentario directamente en lineas de codigo en la pestana "Files" del PR. OpenCode detecta automaticamente el archivo, numeros de linea y contexto del diff para proporcionar respuestas precisas.
[Comment on specific lines in Files tab] /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 del diff circundante
- Informacion de numeros de linea
Esto permite solicitudes mas dirigidas sin necesidad de especificar rutas de archivo o numeros de linea manualmente.