Copilot-Cloud-Agent kann eine Verbindung mit MCP-Servern herstellen, private Pakete verwenden und auf externe Dienste zugreifen, aber nur, wenn die Repositorys Ihrer Organisation so konfiguriert sind, dass sie zugelassen werden.
Obwohl ein Großteil der unten aufgeführten Konfiguration auf Repositoryebene erfolgt, haben Organisationsbesitzer die Kontrolle darüber, welche Ressourcen im Bereich liegen und wer den Zugriff auf sie konfigurieren kann.
Beispielszenario
Ihre Organisation verwendet Sentry, um Fehler in Ihrer Node-App nachzuverfolgen. Neue Ausnahmen werden als Probleme gemeldet auf GitHub, und Ihre Entwickler möchten diese Probleme Copilot zuweisen.
Sie möchten Copilot :
- Stellen Sie eine Verbindung mit dem Sentry MCP-Server her, damit sie auf Details zu Ihrer Sentry-Instanz zugreifen kann.
- Installieren Sie Abhängigkeiten, einschließlich privater Pakete, die auf GitHub gehostet werden, zum Erstellen Ihrer App und zum Ausführen von Tests.
- Befolgen der Konventionen Ihrer Organisation für die Fehlerbehandlung
Sicheres Speichern von Geheimschlüsseln
Standardmäßig ist der Gültigkeitsbereich des CopilotAuthentifizierungstokens auf das Repository beschränkt, in dem es ausgeführt wird. Dies bedeutet, dass Copilot sich nicht bei externen Systemen authentifizieren oder auf private, organisationseigene Pakete zugreifen kann.
Repositoryadministratoren sollten Variablen und geheime Schlüssel hinzufügen, die Copilot für eine dedizierte copilotGitHub Actions Umgebung erforderlich sind.
Copilot kann auf diese Daten in der Einrichtungs- und Aufgabenausführung zugreifen. Es kann nicht auf Variablen oder geheime Schlüssel außerhalb dieser Umgebung zugreifen, z. B. organisationsweite geheime GitHub Actions Schlüssel.
Beispiel: Speichern eines Geheimnisses
Ein Repositoryadministrator speichert ein Authentifizierungstoken für die Sentry-Instanz der Organisation.
- Wechseln Sie zum Abschnitt "Umgebungen" der Repositoryeinstellungen.
- Erstellen Sie eine neue Umgebung namens
copilot. - Speichern Sie ein Zugriffstoken für Ihre Sentry-Instanz in einem geheimen Umgebungsschlüssel namens
COPILOT_MCP_SENTRY_ACCESS_TOKEN.
Tipp
Wir müssen kein Token für unsere private GitHub Packages Registrierung speichern, auf das wir über den Standard GitHub ActionsGITHUB_TOKENzugreifen. Sie möchten jedoch ein Authentifizierungstoken speichern, wenn Sie eine registrierung für externe Pakete verwenden.
Konfigurieren des Zugriffs auf MCP-Server
Organisations- und Unternehmensbesitzer können eine Richtlinie festlegen, damit Benutzer den Zugriff auf MCP-Server konfigurieren können. Wenn diese Richtlinie aktiviert ist, können Benutzer MCP-Server für Copilot-Cloud-Agent in den Repository-Einstellungen oder in den benutzerdefinierten Agentprofilen konfigurieren. Für organisationsweite Konsistenz empfehlen wir das Erstellen von benutzerdefinierten Agentprofilen auf Organisation oder Unternehmensebene.
Eine Sitzung mit einem benutzerdefinierten Agent hat Zugriff auf MCP-Server, die sowohl in den Repositoryeinstellungen als auch im Agentprofil konfiguriert sind. Je mehr Anwendungsfälle Sie jedoch mit organisationsweiten benutzerdefinierten Agents abdecken, desto weniger Benutzer müssen ad-hoc-Zugriff auf MCP-Server in Repositoryeinstellungen konfigurieren.
Wir empfehlen, die GitHub MCP-Registrierung zu durchsuchen, um vertrauenswürdige, hochgradig bewertete Optionen zu finden.
Beispiel: Erstellen eines benutzerdefinierten Agents
Ein Organisationseigentümer erstellt ein benutzerdefiniertes Profil für den Sentry-Agenten. Er hat Zugriff auf den Sentry MCP-Server und benutzerdefinierte Anweisungen für die Fehlerbehandlungskonventionen der Organisation.
-
Erstellen Sie ein Repository, das in Ihrer Organisation
.github-privatebenannt wird. Optional kann ein Unternehmensbesitzer dieses Repository als Quelle für alle benutzerdefinierten Agents im Unternehmen festlegen. -
Fügen Sie im Repository eine
agent.mdDatei mit einem Profil wie dem folgenden hinzu. Dies umfasst die Konfiguration für den MCP-Server, der auf den geheimen Schlüssel verweist, den wir gespeichert haben.--- name: sentry-error-fixer description: Proposed fixes for exception issues raised from Sentry mcp-servers: sentry: type: 'local' command: 'npx' args: ['@sentry/mcp-server@latest'] env: SENTRY_ACCESS_TOKEN: ${{ secrets.COPILOT_MCP_SENTRY_ACCESS_TOKEN }} --- You are an error resolution specialist. When you're assigned an issue created by our Sentry integration, check for error details and stack traces using the MCP server, then propose a fix. Make sure you check that your proposed fix works by building the site with `npm run build` and running the test suite in `npm test`. -
Wenn Entwickler ein Problem an Copilot zuweisen, können sie den benutzerdefinierten Agent aus einem Dropdown-Menü auswählen.
Installieren privater Pakete
Die beste Möglichkeit, den Zugriff auf die Abhängigkeiten eines Projekts Copilot zu gewähren, besteht darin, sie in einer copilot-setup-steps.yml Workflowdatei zu installieren. Diese Datei definiert, wie die Umgebung eingerichtet wird, bevor Copilot sie mit dem Arbeiten beginnt.
Damit der Workflow Ihre privaten, organisationsbezogenen Pakete abrufen kann, aktualisieren Sie die Paketeinstellungen, um sicherzustellen, dass das Repository GITHUB_TOKEN Zugriff auf das Paket hat. Dies ist sicherer als die Verwendung eines lang anhaltenden personal access token mit Organisationsberechtigungen.
Beispiel: Installation von Node.js-Abhängigkeiten
Ein Entwickler erstellt einen Workflow zum Installieren von Node-Abhängigkeiten, die in der Datei eines Repositorys package-lock.json definiert sind. Dazu gehören private Pakete, die für Organisationen spezifisch und auf GitHub gehostet werden.
-
Der Entwickler erstellt eine
copilot-setup-steps.ymlDatei im Repository. -
Sie fügen Schritte zum Installieren der Abhängigkeiten des Projekts hinzu. Beispiel:
# ... 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@v5 - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: "20" cache: "npm" - name: Install JavaScript dependencies run: npm ci -
Ein Organisationsadministrator stellt sicher, dass das Repository Zugriff auf die privaten Pakete der Organisation hat, indem er zugriff auf das Repository in den Einstellungen der einzelnen Pakete gewährt. Siehe Konfigurieren der Zugriffssteuerung und Sichtbarkeit von Paketen.
Tipp
Wenn Sie auf Pakete zugreifen müssen, die intern in Ihrem Unternehmensnetzwerk gehostet werden, müssen Sie möglicherweise Copilot-Cloud-Agent auf selbstgehosteten GitHub Actions Runners ausführen.
Steuern, wer diese Einstellungen konfigurieren kann
Jetzt haben Sie gesehen, wie der Zugriff auf Ressourcen auf Repository- und Organisationsebene gesteuert wird, überlegen Sie, wie viel Umfang Sie Benutzern zum Verwalten dieser Einstellungen gewähren möchten.
-
**Wählen Sie aus, auf welche Repositorys Zugriff haben**Copilot-Cloud-Agent. Wenn Sie sich gedanken über ein bestimmtes Repository machen, können Sie es für alle Benutzer blockieren. -
**Überlegen Sie, wer Administratorzugriff auf diese Repositorys erhält** . Sie können dies auf Organisationsebene steuern, indem Sie ein Team mit der benutzerdefinierten Rolle " **Alle Repository-Administratoren** " erstellen. Diese Benutzer können _Konfigurationseinstellungen_ wie MCP-Konfiguration und `copilot` -Umgebungen in jedem Repository verwalten. -
**Verwenden Sie Regelsätze und CODEOWNERS-Dateien**, um die Bearbeitungen von _Konfigurationsdateien_, wie z. B. `copilot-setup-steps.yml`, zu steuern, die von jedem mit Schreibzugriff standardmäßig bearbeitet werden können. -
**Überprüfen Sie die Standardfirewall**. Die Firewall wirkt sich nicht auf Verbindungen mit MCP-Servern oder Einrichtungsschritten aus `copilot-setup-steps.yml`, beschränkt Copilot jedoch den Zugriff auf das Internet während der Aufgabenausführung. Siehe [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/customize-the-agent-firewall).