Deutsch
Dokumentation
GitHub

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 install

Dies 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.

  1. 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.

  2. Den Workflow hinzufügen Fügen Sie die folgende Workflow-Datei zu .github/workflows/opencode.yml in Ihrem Repository hinzu. Stellen Sie sicher, dass Sie das passende model und die erforderlichen API-Schlüssel in env setzen.

    .github/workflows/opencode.yml
    name: 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
  3. 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 Format provider/model. Dies ist erforderlich.

  • agent: Der zu verwendende Agent. Muss ein primärer Agent sein. Fällt auf default_agent aus 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 Beispiel high, max oder minimal.

  • oidc_base_url: Basis-URL der API für den OIDC-Tokenaustausch. Nur bei einer benutzerdefinierten GitHub-App-Installation erforderlich. Standardmäßig https://api.opencode.ai.

  • use_github_token: Bei true wird ein vom Aufrufer bereitgestelltes GITHUB_TOKEN verwendet, statt per OIDC ein Installationstoken der OpenCode App auszutauschen. Standardmäßig false. In diesem Modus ist keine Installation der OpenCode GitHub App nötig. Übergeben Sie das Token über env und 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: true

    id-token: write ist 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 als GITHUB_TOKEN.


Unterstützte Ereignisse

OpenCode kann durch die folgenden GitHub-Ereignisse ausgelöst werden:

EreignistypAusgelöst durchDetails
issue_commentKommentar zu einem Issue oder PRErwähnen Sie /opencode oder /oc in Ihrem Kommentar. OpenCode liest den Kontext und kann Branches erstellen, PRs öffnen oder antworten.
pull_request_review_commentKommentar zu bestimmten Codezeilen in einem PRErwähnen Sie /opencode oder /oc während der Code-Überprüfung. OpenCode erhält Dateipfad, Zeilennummern und Diff-Kontext.
issuesIssue geöffnet oder bearbeitetLöst OpenCode automatisch aus, wenn Issues erstellt oder geändert werden. Erfordert prompt-Eingabe.
pull_requestPR geöffnet oder aktualisiertLöst OpenCode automatisch aus, wenn PRs geöffnet, synchronisiert oder wieder geöffnet werden. Nützlich für automatisierte Überprüfungen.
scheduleCron-basierter ZeitplanFührt OpenCode nach einem Zeitplan aus. Erfordert prompt-Eingabe. Die Ausgabe geht in Logs und PRs (kein Issue zum Kommentieren).
workflow_dispatchManueller Auslöser über die GitHub-UILö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:

.github/workflows/opencode-scheduled.yml
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:

.github/workflows/opencode-review.yml
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 improvements

Fü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:

.github/workflows/opencode-triage.yml
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.

.github/workflows/opencode.yml
- 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 improvements

Dies 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 issue

    OpenCode 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 this

    Und 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 /oc

    OpenCode 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 here

    Beim 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.

Dokumentationsquelle (MIT)