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 fuhrt Aufgaben innerhalb Ihres GitHub Actions Runners aus.
Funktionen
- Issues triagieren: Bitten Sie OpenCode, ein Issue zu untersuchen und es Ihnen zu erklaren.
- Beheben und implementieren: Bitten Sie OpenCode, ein Issue zu beheben oder ein Feature zu implementieren. Es arbeitet in einem neuen Branch und reicht einen PR mit allen Anderungen ein.
- Sicher: OpenCode lauft innerhalb Ihrer GitHub Runner.
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 von Secrets.
Manuelle Einrichtung
Oder Sie konnen es manuell einrichten.
-
GitHub App installieren
Gehen Sie zu github.com/apps/opencode-agent (opens in a new tab). 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 das entsprechendemodelund die erforderlichen API-Schlussel inenvsetzen..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 -
API-Schlussel in Secrets speichern
Erweitern Sie in den Einstellungen Ihrer Organisation oder Ihres Projekts Secrets and variables auf der linken Seite und wahlen Sie Actions. Fugen Sie dann die erforderlichen API-Schlussel hinzu.
Konfiguration
-
model: Das mit OpenCode zu verwendende Modell. Nimmt das Formatprovider/modelan. 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 geteilt werden soll. Standardmassig true fur offentliche Repositories. -
prompt: Optionaler benutzerdefinierter Prompt zum Uberschreiben des Standardverhaltens. Verwenden Sie dies, um anzupassen, wie OpenCode Anfragen verarbeitet. -
token: Optionales GitHub-Zugriffstoken fur Operationen wie das Erstellen von Kommentaren, Committen von Anderungen und Offnen von Pull Requests. Standardmassig verwendet OpenCode das Installations-Zugriffstoken der OpenCode GitHub App, sodass Commits, Kommentare und Pull Requests als von der App kommend erscheinen.Alternativ konnen Sie das eingebaute
GITHUB_TOKEN(opens in a new tab) des GitHub Action Runners verwenden, ohne die OpenCode GitHub App zu installieren. Stellen Sie nur sicher, dass Sie die erforderlichen Berechtigungen in Ihrem Workflow gewahren:permissions: id-token: write contents: write pull-requests: write issues: writeSie konnen auch personliche Zugriffstoken (opens in a new tab) (PAT) verwenden, wenn Sie mochten.
Unterstutzte Ereignisse
OpenCode kann durch die folgenden GitHub-Ereignisse ausgelost werden:
| Ereignistyp | Ausgelost durch | Details |
|---|---|---|
issue_comment | Kommentar zu einem 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 einem PR | Erwahnen Sie /opencode oder /oc beim Code-Review. OpenCode erhalt Dateipfad, Zeilennummern und Diff-Kontext. |
issues | Issue geoffnet oder bearbeitet | Automatisches Auslosen von OpenCode, wenn Issues erstellt oder geandert werden. Erfordert prompt-Eingabe. |
pull_request | PR geoffnet oder aktualisiert | Automatisches Auslosen von OpenCode, wenn PRs geoffnet, synchronisiert oder wieder geoffnet werden. Nutzlich fur automatisierte Reviews. |
schedule | Cron-basierter Zeitplan | OpenCode nach Zeitplan ausfuhren. Erfordert prompt-Eingabe. Ausgabe geht an Logs und PRs (kein Issue zum Kommentieren). |
workflow_dispatch | Manueller Trigger uber GitHub UI | OpenCode bei Bedarf uber den Actions-Tab auslosen. Erfordert prompt-Eingabe. Ausgabe geht an Logs und PRs. |
Zeitplan-Beispiel
Fuhren Sie OpenCode nach Zeitplan aus, um automatisierte Aufgaben durchzufuhren:
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.Fur geplante Ereignisse ist die prompt-Eingabe erforderlich, da es keinen Kommentar gibt, aus dem Anweisungen extrahiert werden konnen. Geplante Workflows laufen ohne Benutzerkontext fur Berechtigungsprufungen, daher muss der Workflow contents: write und pull-requests: write gewahren, wenn Sie erwarten, dass OpenCode Branches oder PRs erstellt.
Pull Request-Beispiel
Automatisches Review von PRs, 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
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 improvementsFur pull_request-Ereignisse reviewt OpenCode standardmassig den Pull Request, wenn kein prompt angegeben wird.
Issue-Triage-Beispiel
Automatische Triage neuer Issues. Dieses Beispiel filtert auf 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'
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.Fur issues-Ereignisse ist die prompt-Eingabe erforderlich, da es keinen Kommentar gibt, aus dem Anweisungen extrahiert werden konnen.
Benutzerdefinierte Prompts
Uberschreiben Sie den Standard-Prompt, 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 spezifische Review-Kriterien, Coding-Standards oder Schwerpunktbereiche fur Ihr Projekt durchzusetzen.
Beispiele
Hier sind einige Beispiele, wie Sie OpenCode in GitHub verwenden konnen.
-
Ein Issue erklaren
Fugen Sie diesen Kommentar in einem GitHub Issue hinzu.
/opencode explain this issueOpenCode liest den gesamten Thread, einschliesslich aller Kommentare, und antwortet mit einer klaren Erklarung.
-
Ein Issue beheben
Sagen Sie in einem GitHub Issue:
/opencode fix thisUnd OpenCode erstellt einen neuen Branch, implementiert die Anderungen und offnet einen PR mit den Anderungen.
-
PRs reviewen und Anderungen vornehmen
Hinterlassen Sie den folgenden Kommentar in einem GitHub PR.
Delete the attachment from S3 when the note is removed /ocOpenCode implementiert die angeforderte Anderung und committet sie in denselben PR.
-
Bestimmte Codezeilen reviewen
Hinterlassen Sie einen Kommentar direkt auf Codezeilen im "Files"-Tab des PR. OpenCode erkennt automatisch die Datei, Zeilennummern und den Diff-Kontext, um prazise Antworten zu geben.
[Comment on specific lines in Files tab] /oc add error handling hereBeim Kommentieren bestimmter Zeilen erhalt OpenCode:
- Die genaue Datei, die reviewt wird
- Die spezifischen Codezeilen
- Den umgebenden Diff-Kontext
- Zeilennummerninformationen
Dies ermoglicht gezieltere Anfragen, ohne Dateipfade oder Zeilennummern manuell angeben zu mussen.