Informationen zum Anpassen der Entwicklungsumgebung von Copilot-Cloud-Agent
Während man an einer Aufgabe arbeitet, hat Copilot Zugriff auf seine eigene kurzlebige Entwicklungsumgebung, unterstützt von GitHub Actions, wo es Ihren Code erkunden, Änderungen vornehmen, automatisierte Tests und Linter ausführen kann und vieles mehr.
Sie können die Entwicklungsumgebung von Copilot mit einer Copilot anpassen. Sie können eine Datei mit Copilot Einrichtungsschritten verwenden, um:
- Tools oder Abhängigkeiten in Copilot's Umgebung vorinstallieren
- Upgrade von gehosteten Standard-GitHubGitHub Actions-Runnern auf größere Runner
- Verwenden Sie GitHub Actions selbstgehostete Runner
- Stellen Sie Copilot eine Windows-Entwicklungsumgebung bereit anstelle der standardmäßigen Ubuntu-Linux-Umgebung
- Git Large File Storage (LFS) aktivieren
Darüber hinaus haben Sie folgenden Möglichkeiten:
- Festlegen von Umgebungsvariablen in der Umgebung von Copilot
- Deaktivieren oder Anpassen der Firewall des Agents.
Hinweis
Organisationsbesitzer können den Standard-Runner-Typ für Copilot-Cloud-Agent, alle Repositorys in ihrer Organisation konfigurieren und auswählen, ob Repositorys diese Standardeinstellung außer Kraft setzen dürfen. Weitere Informationen findest du unter Konfigurieren von Runnern für den GitHub Copilot Cloud-Agent in Ihrer Organisation.
Anpassung der Entwicklungsumgebung von Copilot mit Copilot Einrichtungsschritten
Sie können die Umgebung von Copilot anpassen, indem Sie eine spezielle GitHub Actions-Workflowdatei erstellen, die sich in Ihrem .github/workflows/copilot-setup-steps.yml-Verzeichnis befindet.
Eine copilot-setup-steps.yml Datei sieht wie eine normale GitHub Actions Workflowdatei aus, muss jedoch einen einzelnen copilot-setup-steps Auftrag enthalten. Die Schritte in diesem Auftrag werden in GitHub Actions ausgeführt, bevor Copilot mit der Arbeit beginnt. Weitere Informationen zu GitHub Actions Workflowdateien finden Sie unter Workflowsyntax für GitHub Actions.
Hinweis
Der copilot-setup-steps.yml-Workflow wird nur ausgelöst, wenn er in deinem Standardbranch vorhanden ist.
Hier ist ein einfaches Beispiel für eine copilot-setup-steps.yml-Datei für ein TypeScript-Projekt, das das Projekt klont, Node.js installiert und die Abhängigkeiten des Projekts herunterlädt und zwischenspeichert. Sie sollten dies anpassen, um die Sprache(n) und Abhängigkeiten Ihres eigenen Projekts zu berücksichtigen.
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: "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:
# ...
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)servicessnapshottimeout-minutes(Maximalwert:59)
Weitere Informationen zu diesen Optionen finden Sie unter Workflowsyntax für GitHub Actions.
Jeder Wert, der für die Option fetch-depth der actions/checkout-Aktion festgelegt ist, wird überschrieben, damit der Agent Commits auf Anforderung zurücksetzen und gleichzeitig Sicherheitsrisiken verringern kann. Weitere Informationen findest du unter actions/checkout/README.md.
Ihre copilot-setup-steps.yml Datei wird automatisch als normaler GitHub Actions Workflow ausgeführt, wenn Änderungen vorgenommen werden, sodass Sie sehen können, 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 Sie die YML-Datei mit deinem Standardbranch zusammengeführt haben, können Sie den Workflow jederzeit über die Registerkarte Actions des Repositorys ausführen, um zu überprüfen, ob alles wie erwartet funktioniert. Weitere Informationen findest du unter Manuelles Ausführen eines Workflows.
Wenn Copilot die Arbeit beginnt, werden Ihre Setup-Schritte ausgeführt, und Updates werden im Sitzungsprotokoll angezeigt. Siehe Nachverfolgung der GitHub-Copilot-Sitzungen.
Wenn ein Setupschritt fehlschlägt und dabei einen Nicht-Null-Beendigungscode zurückgibt, wird Copilot die verbleibenden Setupschritte überspringen und mit dem derzeitigen Stand der Entwicklungsumgebung arbeiten.
Vorinstallation von Tools oder Abhängigkeiten in Copilots Umgebung
In seiner kurzlebigen Entwicklungsumgebung Copilot können Sie Ihr Projekt erstellen oder kompilieren und automatisierte Tests, Linters und andere Tools ausführen. Um dies zu tun, müssen Sie die Abhängigkeiten Ihres Projekts installieren.
Copilot kann diese Abhängigkeiten über einen Versuch-und-Irrtum-Prozess selbst ermitteln und installieren, dies kann jedoch aufgrund der nicht deterministischen Natur großer Sprachmodelle (LLMs) langsam und unzuverlässig sein, und in einigen Fällen kann es vollständig unfähig sein, diese Abhängigkeiten herunterzuladen, zum Beispiel wenn sie privat sind.
Sie können eine Copilot-Einrichtungsdatei verwenden, um Tools oder Abhängigkeiten deterministisch zu installieren, bevor Copilot startet. Fügen Sie steps dem copilot-setup-steps Auftrag hinzu, um dies zu tun:
# ...
jobs:
copilot-setup-steps:
# ...
# 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@v6
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"
- name: Install JavaScript dependencies
run: npm ci
Upgrade auf größere GitHub-gehostete GitHub Actions Runner
Standardmäßig funktioniert Copilot in einer standardmäßigen GitHub Actions-Umgebung. Sie können auf größere Runner upgraden, um eine bessere Leistung (CPU und Arbeitsspeicher), mehr Speicherplatz und erweiterte Features wie das Azure-Privatnetzwerk zu nutzen. Weitere Informationen findest du unter Größere Läufer.
-
Richten Sie größere Läufer für Ihre Organisation ein. Weitere Informationen findest du unter Verwalten größerer Runner.
-
Wenn Sie größere Ausführungsumgebungen mit privaten Azure-Netzwerken verwenden, konfigurieren Sie Ihr privates Azure-Netzwerk so, dass ausgehender Zugriff auf die Hosts zulässig ist, die für Copilot-Cloud-Agent erforderlich sind.
uploads.github.comuser-images.githubusercontent.comapi.individual.githubcopilot.com(wenn Sie erwarten, dass Copilot Pro oder Copilot Pro+ Benutzer Copilot-Cloud-Agent in Ihrem Repository verwenden)api.business.githubcopilot.com(wenn Sie erwarten, dass Copilot Business Benutzer Copilot-Cloud-Agent in Ihrem Repository verwenden)-
`api.enterprise.githubcopilot.com` (wenn Sie erwarten, dass Copilot Enterprise-Benutzer Copilot-Cloud-Agent in Ihrem Repository verwenden) - Wenn Sie den OpenAI Codex Drittanbieter-Agent verwenden (weitere Informationen finden Sie unter Informationen zu Agents von Drittanbietern):
npmjs.orgnpmjs.comregistry.npmjs.comregistry.npmjs.orgskimdb.npmjs.com
-
Verwenden Sie eine
copilot-setup-steps.ymlDatei in Ihrem Repository, um Copilot-Cloud-Agent so zu konfigurieren, dass es auf Ihren ausgewählten Läufern ausgeführt wird. Legen Sie denruns-onSchritt descopilot-setup-stepsAuftrags auf das Etikett und/oder die Gruppe für die größeren Läufer fest, die Sie verwenden möchten Copilot . Weitere Informationen zum Angeben größerer Läufer mitruns-onfinden Sie unter Ausführen von Aufträgen auf größeren Runnern.# ... jobs: copilot-setup-steps: runs-on: ubuntu-4-core # ...
Hinweis
* Copilot-Cloud-Agent ist nur mit Ubuntu x64 Linux und Windows 64-Bit-Läufern kompatibel. Runners mit macOS oder anderen Betriebssystemen werden nicht unterstützt.
Verwenden von selbst gehosteten GitHub Actions Runnern
Sie können Copilot-Cloud-Agent auf selbst gehosteten Laufumgebungen ausführen. Möglicherweise möchten Sie dies tun, um die Ausführung von CI/CD-Workflows auf GitHub Actions abzustimmen oder Copilot Zugriff auf interne Ressourcen in Ihrem Netzwerk zu gewähren.
Es wird empfohlen, Copilot-Cloud-Agent nur mit kurzlebigen, einmaligen Läufern zu verwenden, die nicht für mehrere Aufträge wiederverwendet werden. Die meisten Kunden richten dies mit ARC (Actions Runner Controller) oder dem GitHub Actions Runner Scale Set Client ein. Weitere Informationen findest du unter Referenzen zu selbstgehosteten Runnern.
Hinweis
Copilot-Cloud-Agent ist nur kompatibel mit Ubuntu x64- und Windows 64-Bit-Läufern. Runners mit macOS oder anderen Betriebssystemen werden nicht unterstützt.
-
Konfigurieren Sie Netzwerksicherheitskontrollen für Ihre GitHub Actions Runner, um zu verhindern, dass Copilot-Cloud-Agent offenen Zugriff auf Ihr Netzwerk oder das öffentliche Internet hat.
Sie müssen Ihre Firewall so konfigurieren, dass Verbindungen mit den Standardhosts zugelassen werden, die für GitHub Actions selbst gehostete Läufer erforderlich sind, sowie die folgenden Hosts:
uploads.github.comuser-images.githubusercontent.comapi.individual.githubcopilot.com(wenn Sie erwarten, dass Copilot Pro oder Copilot Pro+ Benutzer Copilot-Cloud-Agent in Ihrem Repository verwenden)api.business.githubcopilot.com(wenn Sie erwarten, dass Copilot Business Benutzer Copilot-Cloud-Agent in Ihrem Repository verwenden)-
`api.enterprise.githubcopilot.com` (wenn Sie erwarten, dass Copilot Enterprise-Benutzer Copilot-Cloud-Agent in Ihrem Repository verwenden) - Wenn Sie den OpenAI Codex Drittanbieter-Agent verwenden (weitere Informationen finden Sie unter Informationen zu Agents von Drittanbietern):
npmjs.orgnpmjs.comregistry.npmjs.comregistry.npmjs.orgskimdb.npmjs.com
-
Deaktivieren Sie die integrierte Firewall von Copilot-Cloud-Agent in Ihren Repository-Einstellungen. Die Firewall ist nicht mit selbstgehosteten Runnern kompatibel. Sofern dies nicht deaktiviert ist, wird die Copilot-Cloud-Agent Verwendung blockiert. Weitere Informationen findest du unter Anpassen oder Deaktivieren der Firewall für GitHub Copilot Cloud-Agent.
-
Legen Sie in Ihrer
copilot-setup-steps.ymlDatei dasruns-onAttribut auf den Namen Ihres ARC-verwalteten Skalensatzes fest:# ... jobs: copilot-setup-steps: runs-on: arc-scale-set-name # ... -
Wenn Sie einen Proxyserver für Copilot-Cloud-Agentdie Verbindungen mit dem Internet konfigurieren möchten, konfigurieren Sie die folgenden Umgebungsvariablen entsprechend:
Variable Description Example https_proxyProxy-URL für HTTPS-Datenverkehr. Sie können bei Bedarf die Standardauthentifizierung einschließen. http://proxy.localhttp://192.168.1.1:8080http://username:password@proxy.localhttp_proxyProxy-URL für HTTP-Datenverkehr. Sie können bei Bedarf die Standardauthentifizierung einschließen. http://proxy.localhttp://192.168.1.1:8080http://username:password@proxy.localno_proxyEine durch Trennzeichen getrennte Liste von Hosts oder IP-Adressen, die den Proxy umgehen sollten. Einige Clients berücksichtigen nur IP-Adressen, wenn Verbindungen direkt mit der IP und nicht mit einem Hostnamen hergestellt werden. example.comexample.com,myserver.local:443,example.org| `ssl_cert_file` | Der Pfad zum SSL-Zertifikat, das von Ihrem Proxyserver angezeigt wird. Sie müssen dies konfigurieren, wenn Ihr Proxy SSL-Verbindungen abfangen. | `/path/to/key.pem` |
| node_extra_ca_certs | Der Pfad zum SSL-Zertifikat, das von Ihrem Proxyserver angezeigt wird. Sie müssen dies konfigurieren, wenn Ihr Proxy SSL-Verbindungen abfangen. | /path/to/key.pem |
Sie können diese Umgebungsvariablen festlegen, indem Sie die [nachstehenden Anweisungen](#setting-environment-variables-in-copilots-environment) befolgen oder sie direkt auf dem Läufer festlegen, z. B. mit einem benutzerdefinierten Läuferbild. Weitere Informationen zum Erstellen eines benutzerdefinierten Bilds finden Sie unter [AUTOTITLE](/actions/concepts/runners/actions-runner-controller#creating-your-own-runner-image).
Wechseln von Copilot zu einer Windows-Entwicklungsumgebung
Standardmäßig verwendet Copilot eine Ubuntu Linux-basierte Entwicklungsumgebung.
Sie können eine Windows-Entwicklungsumgebung verwenden, wenn Sie Software für Windows erstellen oder Ihr Repository eine Windows-basierte Toolkette verwendet, sodass Copilot Sie Ihr Projekt erstellen, Tests ausführen und ihre Arbeit überprüfen können.
Copilot-Cloud-Agent integrierte Firewall ist nicht mit Windows kompatibel. Daher empfehlen wir, dass Sie nur selbst gehostete Runner oder größere von GitHub gehostete Runner mit privaten Azure-Netzwerken verwenden, in denen Sie eigene Netzwerksteuerelemente implementieren können. Weitere Informationen zu Läufern mit privaten Azure-Netzwerken finden Sie unter [AUTOTITLE](/admin/configuring-settings/configuring-private-networking-for-hosted-compute-products/about-azure-private-networking-for-github-hosted-runners-in-your-enterprise).
Wenn Sie Windows mit selbstgehosteten Runnern verwenden möchten, befolgen Sie die Anweisungen im Abschnitt Using self-hosted GitHub Actions runners oben, und verwenden Sie das Label für Ihre Windows-Runner. Wenn Sie Windows mit größeren GitHub-Host-Runnern verwenden möchten, verfolgen Sie die Schritte im Abschnitt "Upgrade auf größere Runner" oben, unter Verwendung der Bezeichnung für Ihre Windows-Runner.
Aktivieren von Git Large File Storage (LFS)
Wenn Sie Git Large File Storage (LFS) zum Speichern großer Dateien in Ihrem Repository verwenden, müssen Sie die Umgebung anpassen Copilot, um Git LFS zu installieren und LFS-Objekte abzurufen.
Um Git LFS zu aktivieren, fügen Sie Ihrem actions/checkout Job einen Schritt hinzu copilot-setup-steps, bei dem die Option lfs auf true gesetzt ist.
# ...
jobs:
copilot-setup-steps:
runs-on: ubuntu-latest
permissions:
contents: read # for actions/checkout
steps:
- uses: actions/checkout@v6
with:
lfs: true
# ...
jobs:
copilot-setup-steps:
runs-on: ubuntu-latest
permissions:
contents: read # for actions/checkout
steps:
- uses: actions/checkout@v6
with:
lfs: true
Festlegen von Umgebungsvariablen für Copilot
Sie können Umgebungsvariablen in der CopilotUmgebung festlegen, um Tools oder Abhängigkeiten zu konfigurieren oder zu authentifizieren, auf die sie Zugriff hat.
Möglicherweise möchten Sie eine Umgebungsvariable für Copilot setzen. Erstellen Sie eine GitHub Actions-Variable oder ein Geheimnis in der copilot-Umgebung. Wenn der Wert vertrauliche Informationen enthält, z. B. ein Kennwort oder einen API-Schlüssel, ist es am besten, einen GitHub Actions geheimen Schlüssel zu verwenden.
-
Navigieren Sie auf GitHub zur Hauptseite des Repositorys.
-
Klicke unter dem Repositorynamen auf Settings. Wenn die Registerkarte „Einstellungen“ nicht angezeigt wird, wähle im Dropdownmenü die Option Einstellungen aus.

-
Klicke auf der linken Randleiste auf Umgebungen.
-
Klicke auf die
copilot-Umgebung. -
Klicke zum Hinzufügen eines Geheimnisses unter „Environment secrets“ auf Add environment secret. Klicke zum Hinzufügen einer Variablen unter „Environment variables“ auf Add environment variable.
-
Fülle die Felder „Name“ und „Value“ aus, und klicke dann auf Add secret oder Add variable.