GitHub
Usa OpenCode nelle issue e pull-request di GitHub.
OpenCode si integra con il tuo flusso di lavoro GitHub. Menziona /opencode o /oc nel tuo commento, e OpenCode eseguirà attività all’interno del runner GitHub Actions.
Caratteristiche
- Triaging delle issue: Chiedi a OpenCode di esaminare una issue e spiegartela.
- Correggere e implementare: Chiedi a OpenCode di correggere una issue o implementare una funzionalità. Lavorerà in un nuovo ramo e invierà una PR con tutte le modifiche.
- Sicuro: OpenCode viene eseguito all’interno dei runner del tuo GitHub.
Installazione
Esegui il seguente comando in un progetto che si trova in un repository GitHub:
opencode github installQuesto ti guiderà attraverso l’installazione dell’app GitHub, la creazione del flusso di lavoro e l’impostazione dei segreti.
Configurazione manuale
Oppure puoi configurarlo manualmente.
-
Installa l’app GitHub
Vai su github.com/apps/opencode-agent. Assicurati che sia installata sul repository di destinazione.
-
Aggiungi il flusso di lavoro
Aggiungi il seguente file di flusso di lavoro a
.github/workflows/opencode.ymlnel tuo repository. Assicurati di impostare ilmodelappropriato e le chiavi API richieste inenv..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 -
Archivia le chiavi API nei segreti
Nelle impostazioni della tua organizzazione o progetto, espandi Secrets and variables a sinistra e seleziona Actions. Aggiungi le chiavi API richieste.
Configurazione
-
model: Il modello da usare con OpenCode. Prende la forma difornitore/modello. Questo è richiesto. -
agent: L’agente da usare. Deve essere un agente primario. Torna adefault_agentdalla configurazione o"build"se non trovato. -
share: Se condividere la sessione OpenCode. Predefinito a true per repository pubblici. -
prompt: Prompt personalizzato opzionale per sovrascrivere il comportamento predefinito. Usalo per personalizzare come OpenCode elabora le richieste. -
token: Token di accesso GitHub opzionale per eseguire operazioni come la creazione di commenti, il commit delle modifiche e l’apertura di pull request. Per impostazione predefinita, OpenCode usa il token di accesso di installazione dall’app GitHub OpenCode, quindi commit, commenti e pull request appaiono come provenienti dall’app.In alternativa, puoi usare il
GITHUB_TOKENintegrato del runner GitHub Action senza installare l’app GitHub OpenCode. Assicurati solo di concedere i permessi richiesti nel tuo flusso di lavoro:permissions:id-token: writecontents: writepull-requests: writeissues: writePuoi anche usare token di accesso personali(PAT) se preferisci.
Eventi supportati
OpenCode può essere attivato dai seguenti eventi GitHub:
| Tipo di evento | Attivato da | Dettagli |
|---|---|---|
issue_comment | Commento su una issue o PR | Menziona /opencode o /oc nel tuo commento. OpenCode legge il contesto e può creare rami, aprire PR o rispondere. |
pull_request_review_comment | Commento su righe di codice specifiche in una PR | Menziona /opencode o /oc durante la revisione del codice. OpenCode riceve il percorso del file, numeri di riga e contesto diff. |
issues | Issue aperta o modificata | Attiva automaticamente OpenCode quando le issue vengono create o modificate. Richiede input prompt. |
pull_request | PR aperta o aggiornata | Attiva automaticamente OpenCode quando le PR vengono aperte, sincronizzate o riaperte. Utile per revisioni automatiche. |
schedule | Programmazione basata su cron | Esegui OpenCode secondo un programma. Richiede input prompt. L’output va ai log e alle PR (nessuna issue su cui commentare). |
workflow_dispatch | Attivazione manuale dall’interfaccia GitHub | Attiva OpenCode su richiesta tramite la scheda Actions. Richiede input prompt. L’output va ai log e alle PR. |
Esempio di programmazione
Esegui OpenCode secondo un programma per eseguire attività automatizzate:
name: Scheduled OpenCode Task
on: schedule: - cron: "0 9 * * 1" # Ogni lunedì alle 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.Per eventi programmati, l’input prompt è richiesto poiché non c’è un commento da cui estrarre istruzioni. I flussi di lavoro programmati vengono eseguiti senza contesto utente per il controllo dei permessi, quindi il flusso di lavoro deve concedere contents: write e pull-requests: write se ti aspetti che OpenCode crei rami o PR.
Esempio di pull request
Revisiona automaticamente le PR quando vengono aperte o aggiornate:
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 improvementsPer eventi pull_request, se non viene fornito prompt, OpenCode per impostazione predefinita revisionerà la pull request.
Esempio di triage delle issue
Triage automatico delle nuove issue. Questo esempio filtra gli account di più di 30 giorni per ridurre lo 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.Per eventi issues, l’input prompt è richiesto poiché non c’è un commento da cui estrarre istruzioni.
Prompt personalizzati
Sovrascrivi il prompt predefinito per personalizzare il comportamento di OpenCode per il tuo flusso di lavoro.
- 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 improvementsQuesto è utile per far rispettare criteri di revisione specifici, standard di codifica o aree di focus rilevanti per il tuo progetto.
Esempi
Ecco alcuni esempi di come puoi usare OpenCode in GitHub.
-
Spiegare una issue
Aggiungi questo commento in una issue GitHub.
/opencode explain this issueOpenCode leggerà l’intero thread, inclusi tutti i commenti, e risponderà con una spiegazione chiara.
-
Correggere una issue
In una issue GitHub, di’:
/opencode fix thisE OpenCode creerà un nuovo ramo, implementerà le modifiche e aprirà una PR con le modifiche.
-
Revisionare le PR e apportare modifiche
Lascia il seguente commento su una PR GitHub.
Delete the attachment from S3 when the note is removed /ocOpenCode implementerà la modifica richiesta e la farà commit nella stessa PR.
-
Revisionare righe di codice specifiche
Lascia un commento direttamente sulle righe di codice nella scheda “File” della PR. OpenCode rileva automaticamente il file, i numeri di riga e il contesto diff per fornire risposte precise.
[Commento su righe specifiche nella scheda File]/oc add error handling hereQuando commenti righe specifiche, OpenCode riceve:
- Il file esatto in fase di revisione
- Le righe di codice specifiche
- Il contesto diff circostante
- Informazioni sui numeri di riga
Questo permette richieste più mirate senza bisogno di specificare percorsi di file o numeri di riga manualmente.