Skip to main content

Programmgesteuertes Ausführen von GitHub Copilot CLI

Verwenden Sie Copilot CLI im Terminal, in Skripts oder in Aktionen-Workflows.

Einführung

Sie können ein Prompt direkt an Copilot CLI in einem einzigen Befehl übergeben, ohne eine interaktive Sitzung aufzurufen. Auf diese Weise können Sie Copilot direkt vom Terminal aus verwenden, aber auch die CLI programmgesteuert in Skripts, CI/CD-Pipelines und Automatisierungsworkflows verwenden.

Wenn Sie Copilot CLI programmgesteuert verwenden möchten, können Sie eine der folgenden Möglichkeiten nutzen:

  • Verwenden Sie den copilot Befehl mit der -p oder --prompt Befehlszeilenoption, gefolgt von Ihrer Eingabeaufforderung.

    Shell
    copilot -p "Explain this file: ./complex.ts"
    
  • Leiten Sie eine Eingabeaufforderung an den copilot-Befehl weiter:

    Shell
    echo "Explain this file: ./complex.ts" | copilot
    

    Hinweis

    Weitergeleitete Eingaben werden ignoriert, wenn Sie auch eine Eingabeaufforderung mit der -p oder --prompt Option bereitstellen.

Tipps für die programmatische Nutzung von Copilot CLI

  •         **Geben Sie präzise Eingabeaufforderungen an –** klare, eindeutige Anweisungen liefern bessere Ergebnisse als vage Anfragen. Je mehr Kontext Sie angeben – Dateinamen, Funktionsnamen, die genaue Änderung – desto weniger muss Copilot raten.
    
  •         **Zitate Aufforderungen sorgfältig** — Verwende einfache Anführungszeichen um Ihr Prompt, wenn Sie die Interpretation von Sonderzeichen durch die Shell vermeiden möchten.
    
  •         **Geben Sie immer minimale Berechtigungen –** verwenden Sie die Befehlszeilenoptionen `--allow-tool=[TOOLS...]` und `--allow-url=[URLs...]`, um Copilot nur die erforderlichen Tools und Zugriffe zur Verfügung zu stellen, die zum Vollenden der Aufgabe notwendig sind. Vermeiden Sie die Verwendung von allzu großzügigen Optionen (z. B. `--allow-all`), es sei denn, Sie arbeiten in einer Sandbox-Umgebung.
    
  • Beim Erfassen der Ausgabe wird -s (still) verwendet. Dadurch werden Sitzungsmetadaten unterdrückt, sodass Sie sauberen Text erhalten.
  •         **Verwenden `--no-ask-user`** um zu verhindern, dass der Agent versucht, Klarstellungsfragen zu stellen.
    
  •         **Legen Sie ein Modell explizit** mit `--model` fest, um ein konsistentes Verhalten über alle Umgebungen hinweg zu gewährleisten.
    

Unter GitHub Copilot CLI Programmreferenz finden Sie Optionen, die bei der programmatisch betriebenen Ausführung von Copilot CLI besonders nützlich sind.

CI/CD-Integration

Ein gängiger Anwendungsfall für das Ausführen von Copilot CLI auf programmiertem Weg ist die Integration eines CLI-Befehls in einen CI/CD-Workflowschritt.

Dieser Auszug aus einem GitHub Actions Workflow zeigt ein einfaches Beispiel für das Ausführen eines Copilot CLI -Befehls.

# Workflow step using Copilot CLI
- name: Generate test coverage report
  env:
    COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
  run: |
    copilot -p "Run the test suite and produce a coverage summary" \
      -s --allow-tool='shell(npm:*), write' --no-ask-user

Weitere Informationen findest du unter Automatisieren von Aufgaben mit Copilot CLI und GitHub Actions.

Beispiele für die programmgesteuerte Verwendung

Generieren einer Commit-Nachricht

Bash
copilot -p 'Write a commit message in plain text for the staged changes' -s \
  --allow-tool='shell(git:*)'

Zusammenfassen einer Datei

Bash
copilot -p 'Summarize what src/auth/login.ts does in no more than 100 words' -s

Schreiben von Tests für ein Modul

Bash
copilot -p 'Write unit tests for src/utils/validators.ts' \
  --allow-tool='write, shell(npm:*), shell(npx:*)'

Beheben von Lintfehlern

Bash
copilot -p 'Fix all ESLint errors in this project' \
  --allow-tool='write, shell(npm:*), shell(npx:*), shell(git:*)'

Erläutern eines Diff

Bash
copilot -p 'Explain the changes in the latest commit on this branch and flag any potential issues' -s

Code-Review eines Branches

Verwenden Sie /review den Schrägstrichbefehl, damit der integrierte code-review Agent die Codeänderungen in der aktuellen Verzweigung überprüft.

Bash
copilot -p '/review the changes on this branch compared to main. Focus on bugs and security issues.' \
  -s --allow-tool='shell(git:*)'

Dokumentation generieren

Bash
copilot -p 'Generate JSDoc comments for all exported functions in src/api/' \
  --allow-tool=write

Exportieren einer Sitzung

Speichern Sie das vollständige Sitzungstranskript in einer Markdown-Datei im lokalen Dateisystem.

Bash
copilot -p "Audit this project's dependencies for vulnerabilities" \
  --allow-tool='shell(npm:*), shell(npx:*)' \
  --share='./audit-report.md'

Speichern Sie das Sitzungstranskript in einem Gist (ein Code-Snippet- oder Text-Speicherungsdienst) auf GitHub.com, um es leicht teilen zu können.

Bash
copilot -p 'Summarize the architecture of this project' --share-gist

Hinweis

Gists sind nicht verfügbar für Enterprise Managed Users, oder wenn Sie GitHub Enterprise Cloud mit Datenresidenz (*.ghe.com) verwenden.

Shell-Skript-Muster

Erfassen Sie die Ausgabe von Copilot in einer Variablen

Bash
result=$(copilot -p 'What version of Node.js does this project require? \
  Give the number only. No other text.' -s)
echo "Required Node version: $result"

Verwendung in einer bedingten

Bash
if copilot -p 'Does this project have any TypeScript errors? Reply only YES or NO.' -s \
  | grep -qi "no"; then
  echo "No type errors found."
else
  echo "Type errors detected."
fi

Verarbeiten mehrerer Dateien

Bash
for file in src/api/*.ts; do
  echo "--- Reviewing $file ---" | tee -a review-results.md
  copilot -p "Review $file for error handling issues" -s --allow-all-tools | tee -a review-results.md
done

Weiterführende Lektüre

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-programmatic-reference)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options)