GitHub
Verwenden Sie OpenCode in GitHub-Issues und Pull-Requests.
OpenCode integriert sich in Ihren GitHub-Workflow. Erwahnen Sie /opencode oder /oc in Ihrem Kommentar, und OpenCode wird Aufgaben innerhalb Ihres GitHub Actions-Runners ausfuhren.
Funktionen
- Issues triagieren: Bitten Sie OpenCode, sich eine Issue anzusehen und sie Ihnen zu erklaren.
- Beheben und implementieren: Bitten Sie OpenCode, eine Issue zu beheben oder eine Funktion zu implementieren. Es wird in einem neuen Branch arbeiten und einen PR mit allen Anderungen einreichen.
- Sicher: OpenCode lauft innerhalb der Runner Ihres GitHub.
Installation
Fuhren Sie den folgenden Befehl in einem Projekt aus, das sich in einem GitHub-Repository befindet:
opencode github installDies fuhrt Sie durch die Installation der GitHub-App, das Erstellen des Workflows und das Einrichten der Secrets.
Manuelle Einrichtung
Oder Sie konnen es manuell einrichten.
-
GitHub-App installieren
Gehen Sie zu github.com/apps/opencode-agent. Stellen Sie sicher, dass sie im Ziel-Repository installiert ist.
-
Workflow hinzufugen
Fugen Sie die folgende Workflow-Datei zu
.github/workflows/opencode.ymlin Ihrem Repository hinzu. Stellen Sie sicher, dass Sie den entsprechendenmodelund die erforderlichen API-Schlussel inenvfestlegen..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 -
API-Schlussel in Secrets speichern
Erweitern Sie in Ihren Organisations- oder Projekteinstellungen links Secrets und Variablen und wahlen Sie Actions aus. Fugen Sie die erforderlichen API-Schlussel hinzu.
Konfiguration
-
model: Das mit OpenCode zu verwendende Modell. Hat das Format vonanbieter/modell. Dies ist erforderlich. -
agent: Der zu verwendende Agent. Muss ein primarer Agent sein. Fallt aufdefault_agentaus der Konfiguration oder"build"zuruck, wenn nicht gefunden. -
share: Ob die OpenCode-Sitzung freigegeben werden soll. Standardmafig true fur offentliche Repositorys. -
prompt: Optionaler benutzerdefinierter Prompt, um das Standardverhalten zu uberschreiben. Verwenden Sie dies, um anzupassen, wie OpenCode Anfragen verarbeitet. -
token: Optionaler GitHub-Zugriffsschlussel fur das Ausfuhren von Vorgangen wie dem Erstellen von Kommentaren, dem Committen von Anderungen und dem Offnen von Pull-Requests. Standardmafig verwendet OpenCode den Installations-Zugriffsschlussel von der OpenCode GitHub-App, also erscheinen Commits, Kommentare und Pull-Requests als von der App kommend.Alternativ konnen Sie das eingebaute
GITHUB_TOKENdes GitHub Action-Runners verwenden, ohne die OpenCode GitHub-App zu installieren. Stellen Sie einfach sicher, dass Sie die erforderlichen Berechtigungen in Ihrem Workflow erteilen:permissions:id-token: writecontents: writepull-requests: writeissues: writeSie konnen auch Personliche Zugriffsschlussel(PAT) verwenden, wenn Sie bevorzugen.
Unterstutzte Ereignisse
OpenCode kann durch die folgenden GitHub-Ereignisse ausgelost werden:
| Ereignistyp | Ausgelost durch | Details |
|---|---|---|
issue_comment | Kommentar zu einer Issue oder PR | Erwahnen Sie /opencode oder /oc in Ihrem Kommentar. OpenCode liest den Kontext und kann Branches erstellen, PRs offnen oder antworten. |
pull_request_review_comment | Kommentar zu bestimmten Codezeilen in einer PR | Erwahnen Sie /opencode oder /oc bei der Uberprufung von Code. OpenCode empfagt den Dateipfad, Zeilennummern und Diff-Kontext. |
issues | Issue geoffnet oder bearbeitet | Lost OpenCode automatisch aus, wenn Issues erstellt oder geandert werden. Erfordert prompt-Eingabe. |
pull_request | PR geoffnet oder aktualisiert | Lost OpenCode automatisch aus, wenn PRs geoffnet, synchronisiert oder wieder geoffnet werden. Nutzlich fur automatische Uberprufungen. |
schedule | Cron-basierte Zeitplan | OpenCode nach einem Zeitplan ausfuhren. Erfordert prompt-Eingabe. Ausgabe geht an Logs und PRs (keine Issue zum Kommentieren). |
workflow_dispatch | Manuelle Auslosung von der GitHub-Benutzeroberflache | OpenCode auf Anfrage uber den Tab Aktionen auslosen. Erfordert prompt-Eingabe. Ausgabe geht an Logs und PRs. |
Zeitplan-Beispiel
OpenCode nach einem Zeitplan ausfuhren, um automatisierte Aufgaben zu erledigen:
name: Scheduled OpenCode Task
on: schedule: - cron: "0 9 * * 1" # Jeden Montag um 9 Uhr 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.Bei geplanten Ereignissen ist die prompt-Eingabe erforderlich, da es keinen Kommentar gibt, aus dem Anweisungen extrahiert werden konnen. Geplante Workflows laufen ohne Benutzerkontext fur die Berechtigungsprufung, also muss der Workflow contents: write und pull-requests: write gewahren, wenn Sie erwarten, dass OpenCode Branches oder PRs erstellt.
Pull-Request-Beispiel
PRs automatisch uberprufen, wenn sie geoffnet oder aktualisiert werden:
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 improvementsBei pull_request-Ereignissen geht OpenCode standardmafig davon aus, den Pull Request zu uberprufen, wenn kein prompt bereitgestellt wird.
Issue-Triage-Beispiel
Neue Issues automatisch triagieren. Dieses Beispiel filtert nach Konten, die alter als 30 Tage sind, um Spam zu reduzieren:
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.Bei issues-Ereignissen ist die prompt-Eingabe erforderlich, da es keinen Kommentar gibt, aus dem Anweisungen extrahiert werden konnen.
Benutzerdefinierte Prompts
Den Standardprompt uberschreiben, um das Verhalten von OpenCode fur Ihren Workflow anzupassen.
- 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 improvementsDies ist nutzlich, um bestimmte Uberprufungskriterien, Codierungsstandards oder Schwerpunktbereiche durchzusetzen, die fur Ihr Projekt relevant sind.
Beispiele
Hier sind einige Beispiele fur die Verwendung von OpenCode in GitHub.
-
Eine Issue erklaren
Fugen Sie diesen Kommentar in einer GitHub-Issue hinzu.
/opencode explain this issueOpenCode liest den gesamten Thread, einschliealich aller Kommentare, und antwortet mit einer klaren Erklarung.
-
Eine Issue beheben
Sagen Sie in einer GitHub-Issue:
/opencode fix thisUnd OpenCode wird einen neuen Branch erstellen, die Anderungen implementieren und einen PR mit den Anderungen offnen.
-
PRs uberprufen und Anderungen vornehmen
Hinterlassen Sie den folgenden Kommentar auf einem GitHub-PR.
Delete the attachment from S3 when the note is removed /ocOpenCode wird die gewunschte Anderung implementieren und sie im selben PR committen.
-
Bestimmte Codezeilen uberprufen
Hinterlassen Sie einen Kommentar direkt auf Codezeilen im Tab “Dateien” des PR. OpenCode erkennt automatisch die Datei, Zeilennummern und den Diff-Kontext, um prazise Antworten zu geben.
[Kommentar zu bestimmten Zeilen im Tab "Dateien"]/oc add error handling hereBeim Kommentieren bestimmter Zeilen empfagt OpenCode:
- Die genaue Datei, die uberpruft wird
- Die bestimmten Codezeilen
- Den umgebenden Diff-Kontext
- Zeilennummern-Informationen
Dies ermoglicht gezieltere Anfragen, ohne Dateipfade oder Zeilennummern manuell angeben zu mussen.