GitHub
Verwenden Sie OpenCode in GitHub-Issues und Pull Requests.
OpenCode integriert sich in Ihren GitHub-Workflow. Erwähnen Sie /opencode oder /oc in Ihrem Kommentar, und OpenCode führt Aufgaben innerhalb Ihres GitHub Actions-Runners aus.
Funktionen
- Issues triagieren : Bitten Sie OpenCode, sich ein Issue anzusehen und es Ihnen zu erklären.
- Beheben und implementieren : Bitten Sie OpenCode, ein Issue zu beheben oder eine Funktion zu implementieren. Und es arbeitet in einem neuen Branch und reicht einen PR mit allen Änderungen ein.
- Sicher : OpenCode wird in den Runnern Ihres GitHub ausgeführt.
Installation
Führen Sie den folgenden Befehl in einem Projekt aus, das sich in einem GitHub-Repository befindet:
opencode github installDies führt Sie durch die Installation der GitHub-App, das Erstellen des Workflows und das Einrichten von Secrets.
Manuelle Einrichtung
Oder Sie können es manuell einrichten.
-
Die 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.
-
Den Workflow hinzufügen Fügen Sie die folgende Workflow-Datei zu
.github/workflows/opencode.ymlin Ihrem Repository hinzu. Stellen Sie sicher, dass Sie das passendemodelund die erforderlichen API-Schlüssel 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 -
Die API-Schlüssel in Secrets speichern Erweitern Sie in den settings Ihrer Organisation oder Ihres Projekts links Secrets and variables und wählen Sie Actions. Und fügen Sie die erforderlichen API-Schlüssel hinzu.
Konfiguration
-
model: Das mit OpenCode zu verwendende Modell. Hat das Formatprovider/model. Dies ist erforderlich. -
agent: Der zu verwendende Agent. Muss ein primärer Agent sein. Fällt aufdefault_agentaus der Konfiguration oder"build"zurück, falls nicht gefunden. -
share: Ob die OpenCode-Sitzung geteilt werden soll. Standardmäßig true für öffentliche Repositorys. -
prompt: Optionaler benutzerdefinierter Prompt zum Überschreiben des Standardverhaltens. Verwenden Sie dies, um anzupassen, wie OpenCode Anfragen verarbeitet. -
mentions: Kommagetrennte Liste von Trigger-Phrasen ohne Beachtung der Groß-/Kleinschreibung. Standardmäßig/opencode,/oc. -
variant: Modellvariante für den providerspezifischen Reasoning-Aufwand, zum Beispielhigh,maxoderminimal. -
oidc_base_url: Basis-URL der API für den OIDC-Tokenaustausch. Nur bei einer benutzerdefinierten GitHub-App-Installation erforderlich. Standardmäßighttps://api.opencode.ai. -
use_github_token: Beitruewird ein vom Aufrufer bereitgestelltesGITHUB_TOKENverwendet, statt per OIDC ein Installationstoken der OpenCode App auszutauschen. Standardmäßigfalse. In diesem Modus ist keine Installation der OpenCode GitHub App nötig. Übergeben Sie das Token überenvund erteilen Sie dem Workflow die erforderlichen Berechtigungen:permissions: contents: write pull-requests: write issues: write steps: - 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: trueid-token: writeist in diesem Modus nicht erforderlich, da der OIDC-Austausch übersprungen wird. Wenn Sie ein Personal Access Token (opens in a new tab) oder ein anderes GitHub-App-Token verwenden, speichern Sie es als Secret und übergeben Sie dieses alsGITHUB_TOKEN.
Unterstützte Ereignisse
OpenCode kann durch die folgenden GitHub-Ereignisse ausgelöst werden:
| Ereignistyp | Ausgelöst durch | Details |
|---|---|---|
issue_comment | Kommentar zu einem Issue oder PR | Erwähnen Sie /opencode oder /oc in Ihrem Kommentar. OpenCode liest den Kontext und kann Branches erstellen, PRs öffnen oder antworten. |
pull_request_review_comment | Kommentar zu bestimmten Codezeilen in einem PR | Erwähnen Sie /opencode oder /oc während der Code-Überprüfung. OpenCode erhält Dateipfad, Zeilennummern und Diff-Kontext. |
issues | Issue geöffnet oder bearbeitet | Löst OpenCode automatisch aus, wenn Issues erstellt oder geändert werden. Erfordert prompt-Eingabe. |
pull_request | PR geöffnet oder aktualisiert | Löst OpenCode automatisch aus, wenn PRs geöffnet, synchronisiert oder wieder geöffnet werden. Nützlich für automatisierte Überprüfungen. |
schedule | Cron-basierter Zeitplan | Führt OpenCode nach einem Zeitplan aus. Erfordert prompt-Eingabe. Die Ausgabe geht in Logs und PRs (kein Issue zum Kommentieren). |
workflow_dispatch | Manueller Auslöser über die GitHub-UI | Löst OpenCode bei Bedarf über den Actions-Tab aus. Erfordert prompt-Eingabe. Die Ausgabe geht in Logs und PRs. |
Zeitplan-Beispiel
Führen Sie OpenCode nach einem Zeitplan aus, um automatisierte Aufgaben durchzuführen:
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.Für geplante Ereignisse ist die prompt-Eingabe erforderlich, da es keinen Kommentar gibt, aus dem Anweisungen extrahiert werden können. Geplante Workflows laufen ohne Benutzerkontext für die Berechtigungsprüfung, daher muss der Workflow contents: write und pull-requests: write gewähren, wenn Sie erwarten, dass OpenCode Branches oder PRs erstellt.
Pull-Request-Beispiel
Überprüfen Sie PRs automatisch, wenn sie geöffnet 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 improvementsFür pull_request-Ereignisse überprüft OpenCode standardmäßig den Pull Request, wenn kein prompt angegeben wird.
Beispiel für Issue-Triage
Triagieren Sie neue Issues automatisch. Dieses Beispiel filtert auf Konten, die älter 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.Für issues-Ereignisse ist die prompt-Eingabe erforderlich, da es keinen Kommentar gibt, aus dem Anweisungen extrahiert werden können.
Benutzerdefinierte Prompts
Überschreiben Sie den Standard-Prompt, um das Verhalten von OpenCode für 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 nützlich, um spezifische Überprüfungskriterien, Coding-Standards oder für Ihr Projekt relevante Schwerpunkte durchzusetzen.
Beispiele
Hier sind einige Beispiele, wie Sie OpenCode in GitHub verwenden können.
-
Ein Issue erklären Fügen Sie diesen Kommentar in einem GitHub-Issue hinzu.
/opencode explain this issueOpenCode liest den gesamten Thread, einschließlich aller Kommentare, und antwortet mit einer klaren Erklärung.
-
Ein Issue beheben Sagen Sie in einem GitHub-Issue:
/opencode fix thisUnd OpenCode erstellt einen neuen Branch, implementiert die Änderungen und öffnet einen PR mit den Änderungen.
-
PRs überprüfen und Änderungen vornehmen Hinterlassen Sie den folgenden Kommentar in einem GitHub-PR.
Delete the attachment from S3 when the note is removed /ocOpenCode implementiert die angeforderte Änderung und committet sie in denselben PR.
-
Bestimmte Codezeilen überprüfen Hinterlassen Sie einen Kommentar direkt an Codezeilen im Tab „Files" des PR. OpenCode erkennt automatisch die Datei, die Zeilennummern und den Diff-Kontext, um präzise Antworten zu liefern.
[Comment on specific lines in Files tab] /oc add error handling hereBeim Kommentieren bestimmter Zeilen erhält OpenCode:
- Die genaue zu überprüfende Datei
- Die spezifischen Codezeilen
- Den umgebenden Diff-Kontext
- Informationen zur Zeilennummer
Dies ermöglicht gezieltere Anfragen, ohne dass Dateipfade oder Zeilennummern manuell angegeben werden müssen.