GitHub
Usa OpenCode en los 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 ejecutará tareas dentro de tu runner de GitHub Actions.
Características
- Triaje de issues : Pídele a OpenCode que investigue un issue y te lo explique.
- Corregir e implementar : Pídele a OpenCode que corrija un issue o implemente una función. Trabajará en una nueva rama y enviará un PR con todos los cambios.
- Seguro : OpenCode se ejecuta dentro de tus runners de GitHub.
Instalación
Ejecuta el siguiente comando en un proyecto que esté en un repositorio de GitHub:
opencode github installEsto te guiará a través de la instalación de la app de GitHub, la creación del workflow y la configuración de los secrets.
Configuración manual
O puedes configurarlo manualmente.
-
Instala la app de GitHub Ve a github.com/apps/opencode-agent (opens in a new tab). Asegúrate de que esté instalada en el repositorio de destino.
-
Agrega el workflow Agrega el siguiente archivo de workflow a
.github/workflows/opencode.ymlen tu repositorio. Asegúrate de establecer elmodelapropiado y las claves de 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 -
Almacena las claves de API en secrets En la configuración de tu organización o proyecto, expande Secrets and variables a la izquierda y selecciona Actions. Luego agrega las claves de API requeridas.
Configuración
-
model: El modelo a usar con OpenCode. Toma el formatoprovider/model. Esto es obligatorio. -
agent: El agente a usar. Debe ser un agente primario. Recurre adefault_agentde la configuración o a"build"si no se encuentra. -
share: Si compartir la sesión de OpenCode. Por defecto es true para repositorios públicos. -
prompt: Prompt personalizado opcional para anular el comportamiento por defecto. Úsalo para personalizar cómo OpenCode procesa las solicitudes. -
token: Token de acceso de GitHub opcional para realizar operaciones como crear comentarios, hacer commit de cambios y abrir pull requests. Por defecto, OpenCode usa el token de acceso de instalación 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 elGITHUB_TOKENintegrado (opens in a new tab) del runner de GitHub Action sin instalar la App de GitHub de OpenCode. Solo asegúrate de otorgar los permisos requeridos en tu workflow:permissions: id-token: write contents: write pull-requests: write issues: writeTambién puedes usar un token de acceso personal (opens in a new tab) (PAT) si lo prefieres.
Eventos compatibles
OpenCode puede activarse mediante 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 líneas de código específicas de un PR | Menciona /opencode o /oc mientras revisas código. OpenCode recibe la ruta del archivo, los números de línea y el contexto del diff. |
issues | Issue abierto o editado | Activa automáticamente OpenCode cuando se crean o modifican issues. Requiere la entrada prompt. |
pull_request | PR abierto o actualizado | Activa automáticamente OpenCode cuando se abren, sincronizan o reabren PRs. Útil para revisiones automatizadas. |
schedule | Programación basada en Cron | Ejecuta OpenCode según un horario. Requiere la entrada prompt. La salida va a los logs y los PRs (no hay issue para comentar). |
workflow_dispatch | Activación manual desde la interfaz de GitHub | Activa OpenCode bajo demanda desde la pestaña Actions. Requiere la entrada prompt. La salida va a los logs y los PRs. |
Ejemplo de programación
Ejecuta OpenCode según 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 prompt es obligatoria, ya que no hay ningún comentario del que extraer instrucciones. Los workflows programados se ejecutan sin un contexto de usuario para verificar 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 automáticamente 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
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 ningún prompt, OpenCode revisa el pull request por defecto.
Ejemplo de triaje de issues
Triaje automático de nuevos issues. Este ejemplo filtra las cuentas con más de 30 días de antigüedad para reducir el 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 prompt es obligatoria, ya que no hay ningún comentario del que extraer instrucciones.
Prompts personalizados
Anula el prompt por defecto 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 útil para aplicar criterios de revisión específicos, estándares de codificación o áreas de enfoque relevantes para tu proyecto.
Ejemplos
Aquí tienes algunos ejemplos de cómo puedes usar OpenCode en GitHub.
-
Explicar un issue Agrega este comentario en un issue de GitHub.
/opencode explain this issueOpenCode leerá todo el hilo, incluidos todos los comentarios, y responderá con una explicación clara.
-
Corregir un issue En un issue de GitHub, escribe:
/opencode fix thisY OpenCode creará una nueva rama, implementará los cambios y abrirá un PR con ellos.
-
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 implementará el cambio solicitado y lo hará commit en el mismo PR.
-
Revisar líneas de código específicas Deja un comentario directamente sobre las líneas de código en la pestaña "Files" del PR. OpenCode detecta automáticamente el archivo, los números de línea y el contexto del diff para proporcionar respuestas precisas.
[Comment on specific lines in Files tab] /oc add error handling hereAl comentar en líneas específicas, OpenCode recibe:
- El archivo exacto que se está revisando
- Las líneas de código específicas
- El contexto del diff circundante
- La información de los números de línea
Esto permite solicitudes más dirigidas sin necesidad de especificar manualmente las rutas de archivo o los números de línea.