Saltearse al contenido

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:

Ventana de terminal
opencode github install

Esto 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.

  1. Instalar la aplicacion de GitHub

    Vaya a github.com/apps/opencode-agent. Asegurese de que este instalada en el repositorio de destino.

  2. Agregar el flujo de trabajo

    Agregue el siguiente archivo de flujo de trabajo a .github/workflows/opencode.yml en su repositorio. Asegurese de establecer el model apropiado y las claves API requeridas en env.

    .github/workflows/opencode.yml
    name: 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
    - 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
  3. 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 de proveedor/modelo. Esto es requerido.

  • agent: El agente para usar. Debe ser un agente primario. Recurre a default_agent de 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_TOKEN integrado 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: write
    contents: write
    pull-requests: write
    issues: write

    También puede usar tokens de acceso personal(PAT) si prefiere.


Eventos admitidos

OpenCode puede ser activado por los siguientes eventos de GitHub:

Tipo de eventoActivado porDetails
issue_commentComentario en una issue o PRMencione /opencode o /oc en su comentario. OpenCode lee el contexto y puede crear ramas, abrir PRs o responder.
pull_request_review_commentComentario en lineas de codigo especificas en una PRMencione /opencode o /oc al revisar el codigo. OpenCode recibe la ruta del archivo, numeros de linea y contexto de diff.
issuesIssue abierta o editadaActivar automaticamente OpenCode cuando se crean o modifican issues. Requiere entrada prompt.
pull_requestPR abierta o actualizadaActivar automaticamente OpenCode cuando se abren, sincronizan o reabren PRs. Util para revisiones automaticas.
scheduleProgramacion basada en cronEjecutar OpenCode en un horario. Requiere entrada prompt. La salida va a registros y PRs (no hay issue para comentar).
workflow_dispatchActivacion manual desde la interfaz de GitHubActivar 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:

.github/workflows/opencode-scheduled.yml
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:

.github/workflows/opencode-review.yml
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 improvements

Para 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:

.github/workflows/opencode-triage.yml
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.

.github/workflows/opencode.yml
- 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 improvements

Esto 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 issue

    OpenCode 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 this

    Y 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 /oc

    OpenCode 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 here

    Al 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.