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 # github_token: xxxx -
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. -
token: Optionales GitHub-Zugriffstoken zum Durchführen von Operationen wie dem Erstellen von Kommentaren, dem Committen von Änderungen und dem Öffnen von Pull Requests. Standardmäßig verwendet OpenCode das Installations-Zugriffstoken der OpenCode GitHub-App, sodass Commits, Kommentare und Pull Requests so erscheinen, als kämen sie von der App. Alternativ können Sie das eingebauteGITHUB_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 gewähren:permissions: id-token: write contents: write pull-requests: write issues: writeSie können auch ein Personal Access Token (opens in a new tab) (PAT) verwenden, falls bevorzugt.
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.