{"meta":{"title":"Repositorykonfiguration für die GitHub-App Copilot","intro":"Definieren Sie repositoryspezifische Anweisungen, Skripts und Automatisierungsverhalten für das GitHub Copilot app.","product":"GitHub Copilot","breadcrumbs":[{"href":"/de/copilot","title":"GitHub Copilot"},{"href":"/de/copilot/reference","title":"Verweis"},{"href":"/de/copilot/reference/github-copilot-app-reference","title":"GitHub Copilot app Verweis"},{"href":"/de/copilot/reference/github-copilot-app-reference/repository-configuration","title":"Repository-Konfiguration"}],"documentType":"article"},"body":"# Repositorykonfiguration für die GitHub-App Copilot\n\nDefinieren Sie repositoryspezifische Anweisungen, Skripts und Automatisierungsverhalten für das GitHub Copilot app.\n\nVerwenden Sie `.github/github-app.yml` in Ihrem Repository, um zu definieren, wie sich das Verhalten für dieses GitHub Copilot app Projekt verhalten soll.\n\nSie können diese Projekteinstellungen auch in der App-UI bearbeiten. Falls `.github/github-app.yml` bereits vorhanden, werden UI-Änderungen in diese Datei zurückgeschrieben. Wenn sie noch nicht vorhanden ist, können Sie sie aus den aktuellen Projekteinstellungen in der App erstellen.\n\n## Informationen zum Speicherort der Konfigurationsdatei\n\nErstellen Sie die Datei unter:\n\n```text copy\n.github/github-app.yml\n```\n\nDie App unterstützt auch den Legacydateinamen `.github/copilot-desktop.yml` aus Gründen der Abwärtskompatibilität.\n\nInformationen zu UI-basierten Anpassungsschritten finden Sie unter [Anpassen der GitHub-App Copilot](/de/copilot/how-tos/github-copilot-app/customize-github-copilot-app).\n\n## Überprüfen und Vertrauen der Konfiguration\n\nWenn die App eine Konfiguration aus dem Repository erkennt, wendet sie keine Repositoryanweisungen, Skripts oder andere Einstellungen aus der Datei an, bis Sie die Konfiguration überprüfen und akzeptieren. Dadurch können Sie keine Befehle ausführen oder Einstellungen anwenden, die von einem anderen Mitwirkenden hinzugefügt wurden. Konfigurationen, die Sie über die App-UI erstellen oder aktualisieren, werden automatisch als vertrauenswürdig eingestuft.\n\n> \\[!WARNING]\n> Bevor Sie eine Repositorykonfiguration akzeptieren, überprüfen Sie alle konfigurierten Befehle und die ausgeführten Abhängigkeiten. Skripts und ihre untergeordneten Prozesse erhalten die GitHub weiter unten in diesem Artikel beschriebenen Anmeldeinformationen, sodass sie niemals so konfiguriert werden, dass diese Umgebungsvariablen protokolliert oder beibehalten werden.\n\nWenn sich die Datei außerhalb der App ändert, einschließlich Änderungen an Leerzeichen oder Kommentaren, müssen Sie die aktualisierte Konfiguration überprüfen und akzeptieren, bevor die App sie anwendet. Bis Sie die aktuelle Version akzeptieren, verwendet die App weiterhin die Projekteinstellungen, die zuvor in der App konfiguriert wurden.\n\n## Beispielkonfiguration\n\n```yaml copy\ninstructions: |\n  Use bun instead of npm.\n\nscripts:\n  - name: Setup\n    command: bun install\n    triggers:\n      - session.create\n  - name: Run\n    command: bun run dev\n  - name: Archive cleanup\n    command: rm -rf node_modules\n    triggers:\n      - session.archive\n\nserver_ready_pattern: '(?i)Local:\\s+(https?://\\S+)'\nauto_open_in_browser: true\n\nautomation:\n  auto_issue_session: true\n  remote_control: false\n```\n\n## Konfigurieren von Anweisungen und Skripts\n\n### `instructions`\n\nHier können `instructions` Sie repositoryspezifische Anleitungen zur Systemaufforderung für Sitzungen im Projekt hinzufügen. Wenn Sie auch globale Anweisungen in der App konfigurieren, werden zuerst die globalen Anweisungen angewendet, gefolgt von den Projektanweisungen.\n\n### `scripts`\n\nHiermit definieren Sie `scripts` Befehle, die in der App angezeigt werden, und können manuell oder auf bestimmten Triggern ausgeführt werden.\n\nJedes Skriptelement unterstützt Folgendes:\n\n* `name` (`string`): Anzeigename in der Benutzeroberfläche.\n* `command` (`string`): Auszuführender Befehl.\n* `triggers` (`string[]`, optional): Ereignisse, die das Skript automatisch ausführen.\n\nSkripts ohne `triggers` manuell.\n\n### Triggerwerte\n\nVerwenden Sie kanonische Triggerwerte in Ihrer Datei:\n\n* `session.create`\n* `session.archive`\n\nDie App akzeptiert auch diese Legacyalias beim Analysieren vorhandener Dateien:\n\n* `workspace.create` (Alias für `session.create`)\n* `workspace.archive` (Alias für `session.archive`)\n\nWenn ein ausgelöstes Skript ausgeführt wird, `COPILOT_SCRIPT_TRIGGER` wird auf den kanonischen Wert festgelegt:\n\n* `session.create`\n* `session.archive`\n\n## Konfigurieren der Servererkennung und des Browserverhaltens\n\n### `server_ready_pattern`\n\n`server_ready_pattern` ist ein regulärer Ausdruck, der verwendet wird, um zu erkennen, wann ein Ausführungsskript einen Server gestartet hat.\n\nMuster verwenden die syntax, die von Rusts `regex` Kasten unterstützt wird. Ausführliche Informationen zur Syntax finden Sie in der [Dokumentation](https://docs.rs/regex/1/regex/#syntax) zur Kastenrate. Wenn das Muster ungültig ist, verwendet die App ihr Standardservererkennungsmuster.\n\nVerwenden Sie eine erste Aufnahmegruppe für die erkannte URL oder den erkannten Port. Die App liest die Erfassungsgruppe `1`:\n\n* Wenn es sich bei der Aufnahme um eine URL (`http://...` oder `https://...`) handelt, wird die URL verwendet.\n* Wenn die Aufnahme nur eine Portnummer ist (z. B `3000`. ), konvertiert die App sie in `http://localhost:3000`.\n\n### `auto_open_in_browser`\n\nWenn `auto_open_in_browser` ja `true`, öffnet die App die erkannte Ausführungs-URL im integrierten Browser. Wenn dieses Feld nicht angegeben wird, lautet `true`der effektive Standardwert .\n\n## Konfigurieren des Automatisierungsverhaltens\n\nFestlegen von Automatisierungsoptionen unter `automation`:\n\n* `automation.auto_issue_session` (`boolean`) steuert, ob die App automatisch eine Sitzung mit Problemkontext startet. Wenn nicht angegeben, lautet `true`der effektive Standardwert .\n* `automation.remote_control` (`boolean`) steuert, ob über die GitHub Weboberfläche oder GitHub Mobileüber die Weboberfläche auf Sitzungen zugegriffen werden kann. Wenn nicht angegeben, lautet `false`der effektive Standardwert .\n\nWenn Ihr Copilot Arbeitsplatz von einer Organisation stammt, muss die entsprechende Richtlinie \"Lokale Store-Sitzungen in der Cloud\" auf \"Anzeigen und Steuern\" festgelegt werden, damit die Remotesteuerung verfügbar ist. Unternehmensverwaltete `remoteControl` Einstellungen können auch dann `automation.remote_control``true`die Remotesteuerung weiter einschränken. Weitere Informationen findest du unter [Informationen zur Remotesteuerung von GitHub Copilot CLI Sitzungen](/de/copilot/concepts/agents/copilot-cli/about-remote-control) und [Unternehmensverwaltete Einstellungen](/de/copilot/reference/enterprise-administrators/enterprise-managed-settings).\n\n## Laufzeitumgebungsvariablen für Skripts\n\nSkripts werden mit diesen von der App bereitgestellten Umgebungsvariablen ausgeführt:\n\n| Variable                 | Description                                                                                           |\n| ------------------------ | ----------------------------------------------------------------------------------------------------- |\n| `COPILOT_WORKSPACE_NAME` | Name des aktuellen Arbeitsbereichs.                                                                   |\n| `COPILOT_WORKSPACE_PATH` | Absoluter Pfad zum Arbeitsbereich.                                                                    |\n| `COPILOT_ROOT_PATH`      | Absoluter Pfad zum Auschecken des Projektstamms.                                                      |\n| `COPILOT_DEFAULT_BRANCH` | Project Standardverzweigung.                                                                          |\n| `COPILOT_PORT`           | App WebSocket-Port für den aktuellen Arbeitsbereichskontext.                                          |\n| `COPILOT_SCRIPT_TRIGGER` | Trigger, der das Skript gestartet hat (nur für ausgelöste Skripts festgelegt).                        |\n| `GH_TOKEN`               | Token für das ausgewählte GitHub Konto.                                                               |\n| `GH_HOST`                | Host für das ausgewählte GitHub Konto.                                                                |\n| `COPILOT_GH_ACCOUNT_*`   | Host- und kontospezifische Token für jedes angemeldete Konto, einschließlich des ausgewählten Kontos. |\n\nFür jede `COPILOT_GH_ACCOUNT_*` Variable schreibt die App den Host und die Anmeldung in Kleinbuchstaben, lässt ASCII-Buchstaben und Ziffern unverändert und ersetzt jedes andere UTF-8-Byte durch seinen Hexadezimalwert in Großbuchstaben, umgeben von Unterstrichen. Der Variablename verwendet das Format `COPILOT_GH_ACCOUNT_<HOST>_<LOGIN>`. Das Token für `alice` \"On `github.com` \" lautet `COPILOT_GH_ACCOUNT_github_2E_com_alice`beispielsweise , und das Token für `user` \"Ein\" `ghe-example.com` lautet `COPILOT_GH_ACCOUNT_ghe_2D_example_2E_com_user`.\n\n## Legacykompatibilität\n\nAus Gründen der Abwärtskompatibilität kann die App weiterhin die ältere objektbasierte `scripts` Form analysieren:\n\n```yaml copy\nscripts:\n  setup: bun install\n  run: bun run dev\n  archive: rm -rf node_modules\n```\n\nIn diesem Legacy-Shape:\n\n* `setup` ordnet einem Skript mit dem Create-Trigger zu.\n* `archive` ordnet einem Skript mit dem Archivtrigger zu.\n* `run` ordnet manuellen Skripteinträgen zu und kann entweder eine einzelne Befehlszeichenfolge oder eine Liste von `{ name, command }` Objekten sein."}