Skip to main content

Bewährte Methoden für die Verwendung von GitHub Copilot für die Arbeit an Vorgängen

Erfahren Sie, wie Sie mit Copilot Codierungsassistent die besten Ergebnisse erzielen können.

Wer kann dieses Feature verwenden?

Der Copilot Codierungsassistent ist mit den Plänen für GitHub Copilot Pro, GitHub Copilot Pro+, GitHub Copilot Business und GitHub Copilot Enterprise verfügbar. Der Agent ist in allen Repositorys verfügbar, die auf GitHub gespeichert sind, mit Ausnahme von Repositorys, die sich im Besitz von verwaltete Benutzerkonten befinden und für die er explizit deaktiviert wurde.
Sign up for Copilot

Hinweis

Eine Einführung in Copilot Codierungsassistent finden Sie unter „AUTOTITLE“.

Sicherstellen, dass deine Probleme gut abgegrenzt sind.

          GitHub Copilot bietet bessere Ergebnisse, wenn klare, gut abgegrenzte Aufgaben vergeben sind. Eine ideale Aufgabe umfasst:
  • Eine klare Beschreibung des zu lösenden Problems oder der erforderlichen Arbeit.
  • Vollständige Akzeptanzkriterien für eine gute Lösung (sollte es z. B. Komponententests geben?).
  • Anweisungen zu den Dateien, die geändert werden müssen.

Tipp

          Copilot Codierungsassistent bietet die Möglichkeit, Ihre Codebasis zu durchsuchen, einschließlich der semantischen Codesuche, die es hilft, relevanten Code basierend auf der Bedeutung zu finden, anstatt nur exakte Text-Übereinstimmungen. Auch wenn Sie keine genauen Dateipfade in einer Aufgabe angeben, kann der Agent häufig den richtigen Code selbst ermitteln.

Wenn Sie eine Aufgabe an Copilot übergeben, indem Sie eine Angelegenheit zuweisen, sollten Sie die Angelegenheit, die Sie Copilot zuweisen, als Aufforderung betrachten. Überlegen Sie, ob die Problembeschreibung wahrscheinlich als KI-Aufforderung funktioniert und Copilot die erforderlichen Codeänderungen ermöglichen kann.

Auswählen des richtigen Aufgabentyps, der zugewiesen werden soll Copilot

Während Sie mit Copilot arbeiten, erhalten Sie einen Eindruck davon, für welche Arten von Aufgaben es am besten geeignet ist. Zunächst sollten Sie damit beginnen, Copilot einfachere Aufgaben zu geben, um zu sehen, wie es als Coding-Agent funktioniert. Sie können z. B. zunächst Copilot auffordern, Fehler zu beheben, Benutzeroberflächenfeatures zu ändern, die Testabdeckung zu verbessern, die Dokumentation zu aktualisieren, die Barrierefreiheit zu verbessern oder technische Schulden zu beseitigen.

Probleme, die Sie möglicherweise selbst bearbeiten können, statt sie zuzuweisen Copilot, umfassen:

  •         **Komplexe und breit angelegte Aufgaben**
    
    • Breit angelegte, kontextreiche Umgestaltungsprobleme, die repositoryübergreifende Kenntnisse und Tests erfordern
    • Komplexe Issues, die das Verständnis von Abhängigkeiten und Legacycode erfordern
    • Aufgaben, die umfassende Domänenkenntnisse erfordern
    • Aufgaben, die wesentliche Geschäftslogik umfassen
    • Große Änderungen an einer Codebasis, die Entwurfskonsistenz erfordern
  •         **Sensible und kritische Aufgaben**
    
    • Produktionskritische Probleme
    • Aufgaben im Zusammenhang mit Sicherheit, personenbezogenen Informationen, Konsequenzen für die Authentifizierung
    • Reaktion auf Incidents
  •         **Nicht eindeutige Aufgaben**
    
    • Aufgaben ohne klare Definition: Aufgaben mit nicht eindeutigen Anforderungen, offene Aufgaben, Aufgaben, bei deren Bearbeitung Unklarheiten überwunden werden müssen, um eine Lösung zu finden
  •         **Lernaufgaben**
    
    • Aufgaben, bei denen Entwickler etwas lernen möchten, um ein tieferes Verständnis zu erzielen

Verwenden von Kommentaren zur Überarbeitung eines Pull Requests

Die Arbeit mit Copilot einer Pull-Anforderung ähnelt der Arbeit mit einem menschlichen Entwickler: Es ist üblich, dass die Pullanforderung weitere Arbeit benötigt, bevor sie zusammengeführt werden kann. Der Prozess, um die Pull-Anfrage in einen merge-fähigen Zustand zu bringen, ist genau derselbe, wenn die Pull-Anfrage von Copilot erstellt wird wie wenn sie von einem Menschen erstellt wird.

Zusätzlich haben Sie folgende Möglichkeiten:

  • Erwähnen Sie @copilot in Kommentaren zu dem Pull-Request, erklären Sie, was Ihrer Meinung nach falsch ist oder verbessert werden könnte, und Copilot wird Commits direkt in den Branch des Pull-Requests pushen.
  • Bitten Sie Copilot, die Zusammenführungskonflikte im Pull-Request zu beheben. Weitere Informationen findest du unter Bitten GitHub Copilot, Änderungen an einer vorhandenen Pullanforderung vorzunehmen.
  • Arbeiten Sie selbst am Feature-Branch und übertragen Sie Änderungen in den Pull Request.

Sobald ein Benutzer mit Schreibzugriff @copilot in einem Kommentar erwähnt, beginnt Copilot alle erforderlichen Änderungen vorzunehmen und aktualisiert den Pull-Request, wenn diese abgeschlossen sind. Da Copilot mit der Betrachtung der Kommentare beginnt, sobald sie übermittelt werden, sollten Sie, wenn Sie voraussichtlich mehrere Kommentare zu einem Pull Request hinzufügen, diese besser zusammenfassen, indem Sie auf „Überprüfung starten“ klicken, anstatt auf „Einzelnen Kommentar hinzufügen“ zu klicken. Sie können dann alle Ihre Kommentare gleichzeitig übermitteln, was dazu führt, dass Copilot an Ihrer gesamten Überprüfung arbeitet, anstatt separat an einzelnen Kommentaren zu arbeiten.

Hinweis

Copilot reagiert ausschließlich auf Kommentare von Personen, die über Schreibzugriff auf das Repository verfügen.

Wenn Copilot Änderungen am Pull-Request vorgenommen werden, bleiben der Titel und der Inhalt auf dem neuesten Stand, sodass sie die aktuellen Änderungen widerspiegeln.

Hinzufügen von benutzerdefinierten Anweisungen zu deinem Repository

Indem Sie Ihrem Repository benutzerdefinierte Anweisungen hinzufügen, können Sie Copilot anweisen, wie es Ihr Projekt verstehen soll und wie die Änderungen erstellt, getestet und validiert werden können.

Wenn Copilot sie in der Lage ist, ihre Änderungen in ihrer eigenen Entwicklungsumgebung zu erstellen, zu testen und zu validieren, ist es wahrscheinlicher, gute Pull-Anforderungen zu erstellen, die schnell zusammengeführt werden können.

          Copilot Codierungsassistent unterstützt eine Reihe verschiedener Arten von benutzerdefinierten Anweisungendateien:
  • /.github/copilot-instructions.md
  • /.github/instructions/**/*.instructions.md
  • **/AGENTS.md
  • /CLAUDE.md
  • /GEMINI.md

Weitere Informationen finden Sie unter Hinzufügen von benutzerdefinierten Repositoryanweisungen für GitHub Copilot.

Repository-weite Anweisungen

Um Anweisungen hinzuzufügen, die für alle Aufgaben gelten, die in Ihrem Repository zugewiesen sind Copilot , erstellen Sie eine .github/copilot-instructions.md Datei im Stammverzeichnis Ihres Repositorys. Diese Datei sollte Informationen zu Ihrem Projekt enthalten, z. B. wie Sie es erstellen und testen, sowie alle Codierungsstandards oder Konventionen, die Sie befolgen möchten Copilot . Beachten Sie, dass die Anweisungen auch für Copilot-Chat und Copilot Codeüberprüfung.

Wenn Sie zum ersten Mal Copilot bitten, eine Pull-Anfrage in einem bestimmten Repository zu erstellen, hinterlässt Copilot einen Kommentar mit einem Link, um automatisch benutzerdefinierte Anweisungen zu generieren. Sie können Copilot auch jederzeit mithilfe unserer empfohlenen Eingabeaufforderung individuelle Anweisungen für Sie erstellen. Weitere Informationen findest du unter Hinzufügen von benutzerdefinierten Repositoryanweisungen für GitHub Copilot.

Du kannst zudem jederzeit eigene benutzerdefinierte Anweisungen schreiben. Dies ist ein Beispiel für eine effektive copilot-instructions.md-Datei:

This is a Go based repository with a Ruby client for certain API endpoints. It is primarily responsible for ingesting metered usage for GitHub and recording that usage. Please follow these guidelines when contributing:

## Code Standards

### Required Before Each Commit
- Run `make fmt` before committing any changes to ensure proper code formatting
- This will run gofmt on all Go files to maintain consistent style

### Development Flow
- Build: `make build`
- Test: `make test`
- Full CI check: `make ci` (includes build, fmt, lint, test)

## Repository Structure
- `cmd/`: Main service entry points and executables
- `internal/`: Logic related to interactions with other GitHub services
- `lib/`: Core Go packages for billing logic
- `admin/`: Admin interface components
- `config/`: Configuration files and templates
- `docs/`: Documentation
- `proto/`: Protocol buffer definitions. Run `make proto` after making updates here.
- `ruby/`: Ruby implementation components. Updates to this folder should include incrementing this version file using semantic versioning: `ruby/lib/billing-platform/version.rb`
- `testing/`: Test helpers and fixtures

## Key Guidelines
1. Follow Go best practices and idiomatic patterns
2. Maintain existing code structure and organization
3. Use dependency injection patterns where appropriate
4. Write unit tests for new functionality. Use table-driven unit tests when possible.
5. Document public APIs and complex logic. Suggest changes to the `docs/` folder when appropriate

Pfadspezifische Anweisungen

Um Anweisungen hinzuzufügen, die für bestimmte Dateitypen gelten, an denen Copilot arbeiten wird, wie etwa Komponententests oder React-Komponenten, erstellen Sie eine oder mehrere .github/instructions/**/*.instructions.md Dateien in Ihrem Repository. Fügen Sie in diesen Dateien Informationen zu den Dateitypen ein, z. B. wie Sie diese erstellen und testen, sowie alle Codierungsstandards oder Konventionen, die Sie befolgen möchten Copilot .

Mithilfe des Globmusters im Vordergrund der Anweisungensdatei kannst du die Dateitypen angeben, auf die sie angewendet werden sollen. Um beispielsweise Anweisungen für Playwright-Tests zu erstellen, können Sie eine Anleitungsdatei namens .github/instructions/playwright-tests.instructions.md mit dem folgenden Inhalt erstellen:

---
applyTo: "**/tests/*.spec.ts"
---

## Playwright test requirements

When writing Playwright tests, please follow these guidelines to ensure consistency and maintainability:

1. **Use stable locators** - Prefer `getByRole()`, `getByText()`, and `getByTestId()` over CSS selectors or XPath
1. **Write isolated tests** - Each test should be independent and not rely on other tests' state
1. **Follow naming conventions** - Use descriptive test names and `*.spec.ts` file naming
1. **Implement proper assertions** - Use Playwright's `expect()` with specific matchers like `toHaveText()`, `toBeVisible()`
1. **Leverage auto-wait** - Avoid manual `setTimeout()` and rely on Playwright's built-in waiting mechanisms
1. **Configure cross-browser testing** - Test across Chromium, Firefox, and WebKit browsers
1. **Use Page Object Model** - Organize selectors and actions into reusable page classes for maintainability
1. **Handle dynamic content** - Properly wait for elements to load and handle loading states
1. **Set up proper test data** - Use beforeEach/afterEach hooks for test setup and cleanup
1. **Configure CI/CD integration** - Set up headless mode, screenshots on failure, and parallel execution

Organisationsweite benutzerdefinierte Anweisungen

          Copilot Codierungsassistent nutzt die benutzerdefinierten Anweisungen Ihrer Organisation als Teil ihrer Arbeit. 
          Copilot Codierungsassistent priorisiert zuerst repositoryweite benutzerdefinierte Anweisungen. Weitere Informationen zum Konfigurieren von benutzerdefinierten Anweisungen für die Organisation finden Sie unter [AUTOTITLE](/copilot/how-tos/configure-custom-instructions/add-organization-instructions).

Verwenden des Model Context Protocol (MCP)

Mithilfe von MCP können Sie die Funktionen von Copilot Codierungsassistent erweitern. Dies ermöglicht Copilot Codierungsassistent die Verwendung von Tools, die von lokalen und Remote-MCP-Servern bereitgestellt werden. Der GitHub MCP-Server und der Playwright MCP-Server sind standardmäßig aktiviert. Weitere Informationen finden Sie unter Erweiterung des GitHub Copilot Codierungsagenten mit dem Model Context Protocol (MCP).

Erstellen Benutzerdefinierte Agenten

Während benutzerdefinierte Anweisungen das allgemeine Verhalten ihres Repositorys unterstützen Copilot, Benutzerdefinierte Agenten erstellen Sie vollständig spezialisierte Agents mit fokussierter Expertise und maßgeschneiderten Toolkonfigurationen. Diese Agents sind für spezifische, wiederkehrende Workflows konzipiert, bei denen Domänenkompetenz und konsistentes Verhalten von entscheidender Bedeutung sind. Benutzerdefinierte Agents werden als Markdown-Dateien mit dem Namen Agentenprofile definiert.

Hier sind einige Beispiele für Benutzerdefinierte Agenten, die Sie erstellen könnten:

  •         **Testspezialist**: Ein Agent, der mit bestimmten Testframeworks konfiguriert und sich auf Testabdeckung, Testqualität und bewährte Methoden konzentriert. Es kann auf Lese-, Such- und Bearbeitungstools beschränkt sein, um unbeabsichtigte Änderungen am Produktionscode zu verhindern und gleichzeitig eine umfassende Testabdeckung sicherzustellen.
    
  •         **Dokumentationsexperte**: Ein Agent, der sich auf das Erstellen und Verwalten der Projektdokumentation spezialisiert hat, mit umfassendem Wissen über Dokumentationsstandards, Stilführungslinien und die Möglichkeit, Code zu analysieren, um genaue API-Dokumentationen und Benutzerhandbücher zu generieren.
    
  •         **Python-Spezialist**: Ein sprachspezifischer Agent, der Python-Konventionen, beliebte Frameworks wie Django oder Flask versteht und PEP-Standards folgt. Es hätte spezielle Kenntnisse von Python-Tools, virtuellen Umgebungen und Testframeworks wie Pytest.
    

Standardmäßig erbt Benutzerdefinierte Agenten alle im Repository konfigurierten MCP-Servertools, aber Sie können Benutzerdefinierte Agenten auch so konfigurieren, dass nur auf bestimmte Tools zugegriffen werden kann.

Sie können das Benutzerdefinierte Agenten überall da verwenden, wo Sie das Copilot Codierungsassistent verwenden, einschließlich bei der Zuweisung eines Problems oder bei der Aufforderung zu einer Aufgabe.

Weitere Informationen zum Erstellen und Konfigurieren Benutzerdefinierte Agentenfinden Sie unter Erstellen benutzerdefinierter Agents für Copilot Codierungsassistent.

Vorabinstallation von Abhängigkeiten in GitHub Copilotder Umgebung

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.

Wenn Copilot sie in der Lage ist, ihre Änderungen in ihrer eigenen Entwicklungsumgebung zu erstellen, zu testen und zu validieren, ist es wahrscheinlicher, gute Pull-Anforderungen zu erstellen, die schnell zusammengeführt werden können.

Um das zu tun, benötigt es die Abhängigkeiten Ihres Projekts. Copilot kann diese Abhängigkeiten selbst über einen Prozess des Versuchs und Irrtums ermitteln und installieren - allerdings kann dies langsam und unzuverlässig sein, angesichts der nicht deterministischen Natur großer Sprachmodelle (LLMs).

Du kannst eine copilot-setup-steps.yml-Datei so konfigurieren, dass diese Abhängigkeiten vorab installiert werden, bevor der Agent mit der Arbeit beginnt, damit er sofort voll einsatzfähig ist. Weitere Informationen finden Sie unter Anpassen der Entwicklungsumgebung für GitHub Copilot-Codierungs-Agent.