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
              # github_token: xxxx
  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.

  • 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 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 gewähren:

    permissions:
      id-token: write
      contents: write
      pull-requests: write
      issues: write

    Sie 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:

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.