Deutsch
Dokumentation
GitHub

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 install

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

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

    Fugen Sie die folgende Workflow-Datei zu .github/workflows/opencode.yml in Ihrem Repository hinzu. Stellen Sie sicher, dass Sie das entsprechende model und die erforderlichen API-Schlussel 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. 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 Format provider/model an. Dies ist erforderlich.

  • agent: Der zu verwendende Agent. Muss ein primarer Agent sein. Fallt auf default_agent aus 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: write

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

EreignistypAusgelost durchDetails
issue_commentKommentar zu einem Issue oder PRErwahnen Sie /opencode oder /oc in Ihrem Kommentar. OpenCode liest den Kontext und kann Branches erstellen, PRs offnen oder antworten.
pull_request_review_commentKommentar zu bestimmten Codezeilen in einem PRErwahnen Sie /opencode oder /oc beim Code-Review. OpenCode erhalt Dateipfad, Zeilennummern und Diff-Kontext.
issuesIssue geoffnet oder bearbeitetAutomatisches Auslosen von OpenCode, wenn Issues erstellt oder geandert werden. Erfordert prompt-Eingabe.
pull_requestPR geoffnet oder aktualisiertAutomatisches Auslosen von OpenCode, wenn PRs geoffnet, synchronisiert oder wieder geoffnet werden. Nutzlich fur automatisierte Reviews.
scheduleCron-basierter ZeitplanOpenCode nach Zeitplan ausfuhren. Erfordert prompt-Eingabe. Ausgabe geht an Logs und PRs (kein Issue zum Kommentieren).
workflow_dispatchManueller Trigger uber GitHub UIOpenCode 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:

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

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:

.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

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

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

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.

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

    OpenCode liest den gesamten Thread, einschliesslich aller Kommentare, und antwortet mit einer klaren Erklarung.

  • Ein Issue beheben

    Sagen Sie in einem GitHub Issue:

    /opencode fix this

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

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

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