Skip to main content

Anpassen der Entwicklungsumgebung für den Copilot-Programmier-Agent

Hier erfährst du, wie du die GitHub Copilot-Entwicklungsumgebung mit zusätzlichen Tools anpasst.

Hinweis

Copilot-Programmier-Agent is in public preview and subject to change.

Weitere Informationen zu Copilot-Programmier-Agent findest du unter Informationen zum Zuweisen von Aufgaben zu Copilot.

Informationen zum Anpassen der Copilot-Programmier-Agent-Entwicklungsumgebung

Bei der Bearbeitung einer Aufgabe kann Copilot auf eine eigene kurzlebige Entwicklungsumgebung zugreifen, die von GitHub Actions unterstützt wird. Dort kann Copilot u. a. deinen Code erkunden, Änderungen vornehmen sowie automatisierte Tests und Linter ausführen.

Du hast folgende Möglichkeiten, die Copilot-Umgebung anzupassen:

Vorinstallieren von Tools oder Abhängigkeiten in der Copilot-Umgebung

In der kurzlebigen Entwicklungsumgebung kann Copilot dein Projekt erstellen oder kompilieren sowie automatisierte Tests, Linter und andere Tools ausführen. Zu diesem Zweck müssen die Abhängigkeiten deines Projekts installiert werden.

Copilot kann diese Abhängigkeiten über Versuch und Irrtum selbst ermitteln und installieren, was jedoch auf Grund der nicht deterministischen Eigenschaften großer Sprachmodelle (LLMs) ein langwieriger und unzuverlässiger Prozess sein kann. In einigen Fällen, z. B. bei privaten Abhängigkeiten, können diese möglicherweise gar nicht heruntergeladen werden.

Daher kannst du stattdessen vor dem Start des Agents die Copilot-Umgebung vorkonfigurieren, indem du eine spezielle GitHub Actions-Workflowdatei erstellst, die sich in deinem Repository unter .github/workflows/copilot-setup-steps.yml befindet.

Eine Datei vom Typ copilot-setup-steps.yml sieht aus wie eine normale GitHub Actions-Workflowdatei, enthält jedoch nur einen einzelnen copilot-setup-steps-Auftrag. Dieser Auftrag wird in GitHub Actions ausgeführt, bevor Copilot mit der Arbeit beginnt. Weitere Informationen zu GitHub Actions-Workflowdateien findest du unter Workflowsyntax für GitHub Actions.

Das folgende Beispiel zeigt eine einfache copilot-setup-steps.yml-Datei für ein TypeScript-Projekt, mit der das Projekt geklont, „Node.js“ installiert und die Abhängigkeiten des Projekts heruntergeladen und zwischengespeichert werden. Passe diese Datei entsprechend der Sprache(n) und Abhängigkeiten deines eigenen Projekts an:

YAML
name: "Copilot Setup Steps"

# Automatically run the setup steps when they are changed to allow for easy validation, and
# allow manual testing through the repository's "Actions" tab
on:
  workflow_dispatch:
  push:
    paths:
      - .github/workflows/copilot-setup-steps.yml
  pull_request:
    paths:
      - .github/workflows/copilot-setup-steps.yml

jobs:
  # The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot.
  copilot-setup-steps:
    runs-on: ubuntu-latest

    # Set the permissions to the lowest permissions possible needed for your steps.
    # Copilot will be given its own token for its operations.
    permissions:
      # If you want to clone the repository as part of your setup steps, for example to install dependencies, you'll need the `contents: read` permission. If you don't clone the repository in your setup steps, Copilot will do this for you automatically after the steps complete.
      contents: read

    # You can define any steps you want, and they will run before the agent starts.
    # If you do not check out your code, Copilot will do this for you.
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: "20"
          cache: "npm"

      - name: Install JavaScript dependencies
        run: npm ci

In deiner copilot-setup-steps.yml-Datei kannst du nur die folgenden Einstellungen des Auftrags copilot-setup-steps anpassen. Wenn du versuchst, andere Einstellungen anzupassen, werden deine Änderungen ignoriert.

  • steps (siehe oben)
  • permissions (siehe oben)
  • runs-on (siehe unten)
  • container
  • services
  • snapshot
  • timeout-minutes (Höchstwert: 59)

Weitere Informationen zu diesen Optionen findest du unter Workflowsyntax für GitHub Actions.

Deine copilot-setup-steps.yml-Datei wird automatisch als normaler GitHub Actions-Workflow ausgeführt, wenn Änderungen vorgenommen werden, sodass du sehen kannst, ob sie erfolgreich ausgeführt wird. Dies wird zusammen mit anderen Prüfungen in einem Pull Request dargestellt, in dem du die Datei erstellen oder ändern kannst.

Nachdem du die YML-Datei mit deinem Standardbranch gemergt hast, kannst du den Workflow jederzeit über die Registerkarte Actions des Repositorys ausführen, um zu überprüfen, ob alles wie erwartet funktioniert. Weitere Informationen finden Sie unter Manuelles Ausführen eines Workflows.

Upgraden auf größere GitHub Actions-Runner, die auf GitHub gehostet werden

Standardmäßig wird Copilot in einem GitHub Actions-Standard-Runner mit begrenzten Ressourcen ausgeführt.

Du kannst dich stattdessen für größere Runner mit erweiterten Features entscheiden, wie z. B. mehr RAM, CPU und Festplattenspeicher sowie erweiterter Netzwerksteuerung. Bei schlechter Leistung etwa beim Herunterladen von Abhängigkeiten oder beim Ausführen von Tests kann ein Upgrade auf einen größeren Runner sinnvoll sein. Weitere Informationen finden Sie unter Informationen zu großen Runnern.

Bevor Copilot größere Runner nutzen kann, musst du zunächst einen oder mehrere größere Runner hinzufügen und dann dein Repository so konfigurieren, dass es diese verwendet. Weitere Informationen findest du unter Verwalten größerer Runner. Anschließend kannst du mithilfe der copilot-setup-steps.yml-Datei Copilot dazu veranlassen, die größeren Runner zu verwenden.

Wenn du größere Runner verwenden möchtest, lege den Schritt runs-on des Auftrags copilot-setup-steps auf die Bezeichnung und/oder die Gruppe für die größeren Runner fest, die Copilot verwenden soll. Weitere Informationen zur Angabe von größeren Runnern mit runs-on findest du unter Ausführen von Aufträgen auf größeren Runnern.

# ...

jobs:
  copilot-setup-steps:
    runs-on: ubuntu-4-core
    # ...

Hinweis

  • Copilot-Programmier-Agent ist nur mit Ubuntu-x64-Runnern von Linux kompatibel. Runner von Windows, macOS oder anderen Betriebssystemen werden nicht unterstützt.
  • Selbstgehostete GitHub Actions-Runner werden nicht unterstützt.

Aktivieren von Git-LFS (Large File Storage)

Wenn du Git Large File Storage (LFS) zum Speichern großer Dateien in deinem Repository verwendest, musst du die Copilot-Umgebung anpassen, um Git LFS zu installieren und LFS-Objekte abzurufen.

Um Git LFS zu aktivieren, füge deinem copilot-setup-steps-Auftrag einen actions/checkout Schritt hinzu, wobei die Option lfs auf true festgelegt ist.

YAML
# ...

jobs:
  copilot-setup-steps:
    runs-on: ubuntu-latest
    permissions:
      contents: read # for actions/checkout
    steps:
      - uses: actions/checkout@v4
        with:
          lfs: true

Weiterführende Themen