Skip to main content

Hinzufügen von benutzerdefinierten Repositoryanweisungen für GitHub Copilot

Erstellen Sie benutzerdefinierte Repositoryanweisungendateien, die zusätzlichen Kontext zum Verständnis Ihres Projekts und zum Erstellen, Testen und Überprüfen ihrer Änderungen geben Copilot .

Introduction

Mit benutzerdefinierten Repositoryanweisungen können Sie Copilot repositoryspezifische Anleitungen und Vorlieben auf GitHub bereitstellen. Informationen zum Einrichten von benutzerdefinierten Anweisungen in einer IDE finden Sie unter Hinzufügen von benutzerdefinierten Repositoryanweisungen für GitHub Copilot in Ihrer IDE. Weitere Informationen zu benutzerdefinierten Anweisungen finden Sie unter Informationen zum Anpassen der GitHub Copilot-Antworten.

Voraussetzungen für benutzerdefinierte Repositoryanweisungen

  • Du musst über eine Datei mit benutzerdefinierten Anweisungen verfügen – siehe Anweisungen unten.

  • Um Copilot Codeüberprüfung verwenden zu können, muss die persönliche Auswahl, ob benutzerdefinierte Anweisungen eingesetzt werden sollen, auf "Aktiviert" gesetzt sein. Diese Einstellung ist standardmäßig aktiviert. Details findest du unter Aktivieren oder Deaktivieren benutzerdefinierter Repositoryanweisungen weiter unten in diesem Artikel.

Erstellen von benutzerdefinierten Anweisungen

          Copilot unter GitHub unterstützt drei Typen von benutzerdefinierten Repositoryanweisungen. Ausführliche Informationen dazu, welche GitHub Copilot Features diese Arten von Anweisungen unterstützen, finden Sie unter [AUTOTITLE](/copilot/concepts/prompting/response-customization?tool=webui#support-for-repository-custom-instructions).
  • Repository-weite angepasste Anweisungen gelten für alle Anfragen, die im Kontext eines Repositorys gestellt werden.

    Diese werden in einer copilot-instructions.md-Datei im Verzeichnis .github des Repositorys angegeben. Weitere Informationen findest du unter Erstellen repositoryweiter benutzerdefinierter Anweisungen.

  • Pfadspezifische angepasste Anweisungen gelten für Anfragen, die im Kontext von Dateien gestellt werden, die einem bestimmten Pfad entsprechen.

    Diese sind in einer oder mehreren NAME.instructions.md-Dateien innerhalb oder unterhalb des .github/instructions-Verzeichnisses im Repository angegeben. Weitere Informationen findest du unter Erstellen pfadspezifischer benutzerdefinierter Anweisungen.

    Wenn der von Ihnen angegebene Pfad mit einer Datei Copilot übereinstimmt, an der gearbeitet wird, und auch eine repositoryweite benutzerdefinierte Anweisungendatei vorhanden ist, werden die Anweisungen aus beiden Dateien verwendet.

  • -Agent-Anweisungen werden von KI-Agenten verwendet.

    Du kannst mindestens eine AGENTS.md-Datei erstellen, die an einer beliebigen Stelle im Repository gespeichert ist. Wenn Copilot arbeitet, hat die nächstgelegene AGENTS.md Datei in der Verzeichnisstruktur Vorrang. Weitere Informationen finden Sie im Agentsmd/agents.md-Repository.

    Alternativ kannst du eine einzelne CLAUDE.md- oder GEMINI.md-Datei verwenden, die im Stammverzeichnis des Repositorys gespeichert ist.

Erstellen repositoryweiter benutzerdefinierter Anweisungen

Du kannst deine eigene benutzerdefinierte Anleitungsdatei von Grund auf neu erstellen. Weitere Informationen findest du unter Schreiben deiner eigenen „instructions.md“-Datei für Copilot. Alternativ können Sie Copilot-Cloud-Agent bitten, eine für Sie zu generieren.

Bitten Sie Copilot-Cloud-Agent, eine copilot-instructions.md Datei zu generieren

  1. Wechseln Sie zur Registerkarte "Agents" unter github.com/copilot/agents.

    Sie können diese Seite auch erreichen, indem Sie auf die Schaltfläche neben der Suchleiste auf einer beliebigen Seite auf GitHub klicken und dann Agents auf der Randleiste auswählen.

  2. Wählen Sie im Dropdownmenü des Eingabeaufforderungsfelds das Repository aus, für das Sie benutzerdefinierte Anweisungen generieren möchten Copilot .

  3. Kopieren Sie die folgende Aufforderung und fügen Sie sie in das Eingabeaufforderungsfeld ein, indem Sie sie bei Bedarf anpassen:

    Markdown
    Your task is to "onboard" this repository to Copilot cloud agent by adding a .github/copilot-instructions.md file in the repository that contains information describing how a cloud agent seeing it for the first time can work most efficiently.
    
    You will do this task only one time per repository and doing a good job can SIGNIFICANTLY improve the quality of the agent's work, so take your time, think carefully, and search thoroughly before writing the instructions.
    
    <Goals>
    - Reduce the likelihood of a cloud agent pull request getting rejected by the user due to
    generating code that fails the continuous integration build, fails a validation pipeline, or
    having misbehavior.
    - Minimize bash command and build failures.
    - Allow the agent to complete its task more quickly by minimizing the need for exploration using grep, find, str_replace_editor, and code search tools.
    </Goals>
    
    <Limitations>
    - Instructions must be no longer than 2 pages.
    - Instructions must not be task specific.
    </Limitations>
    
    <WhatToAdd>
    
    Add the following high level details about the codebase to reduce the amount of searching the agent has to do to understand the codebase each time:
    <HighLevelDetails>
    
    - A summary of what the repository does.
    - High level repository information, such as the size of the repo, the type of the project, the languages, frameworks, or target runtimes in use.
    </HighLevelDetails>
    
    Add information about how to build and validate changes so the agent does not need to search and find it each time.
    <BuildInstructions>
    
    - For each of bootstrap, build, test, run, lint, and any other scripted step, document the sequence of steps to take to run it successfully as well as the versions of any runtime or build tools used.
    - Each command should be validated by running it to ensure that it works correctly as well as any preconditions and postconditions.
    - Try cleaning the repo and environment and running commands in different orders and document errors and misbehavior observed as well as any steps used to mitigate the problem.
    - Run the tests and document the order of steps required to run the tests.
    - Make a change to the codebase. Document any unexpected build issues as well as the workarounds.
    - Document environment setup steps that seem optional but that you have validated are actually required.
    - Document the time required for commands that failed due to timing out.
    - When you find a sequence of commands that work for a particular purpose, document them in detail.
    - Use language to indicate when something should always be done. For example: "always run npm install before building".
    - Record any validation steps from documentation.
    </BuildInstructions>
    
    List key facts about the layout and architecture of the codebase to help the agent find where to make changes with minimal searching.
    <ProjectLayout>
    
    - A description of the major architectural elements of the project, including the relative paths to the main project files, the location
    of configuration files for linting, compilation, testing, and preferences.
    - A description of the checks run prior to check in, including any GitHub workflows, continuous integration builds, or other validation pipelines.
    - Document the steps so that the agent can replicate these itself.
    - Any explicit validation steps that the agent can consider to have further confidence in its changes.
    - Dependencies that aren't obvious from the layout or file structure.
    - Finally, fill in any remaining space with detailed lists of the following, in order of priority: the list of files in the repo root, the
    contents of the README, the contents of any key source files, the list of files in the next level down of directories, giving priority to the more structurally important and snippets of code from key source files, such as the one containing the main method.
    </ProjectLayout>
    </WhatToAdd>
    
    <StepsToFollow>
    - Perform a comprehensive inventory of the codebase. Search for and view:
    - README.md, CONTRIBUTING.md, and all other documentation files.
    - Search the codebase for build steps and indications of workarounds like 'HACK', 'TODO', etc.
    - All scripts, particularly those pertaining to build and repo or environment setup.
    - All build and actions pipelines.
    - All project files.
    - All configuration and linting files.
    - For each file:
    - think: are the contents or the existence of the file information that the cloud agent will need to implement, build, test, validate, or demo a code change?
    - If yes:
       - Document the command or information in detail.
       - Explicitly indicate which commands work and which do not and the order in which commands should be run.
       - Document any errors encountered as well as the steps taken to workaround them.
    - Document any other steps or information that the agent can use to reduce time spent exploring or trying and failing to run bash commands.
    - Finally, explicitly instruct the agent to trust the instructions and only perform a search if the information in the instructions is incomplete or found to be in error.
    </StepsToFollow>
       - Document any errors encountered as well as the steps taken to work-around them.
    
    
  4. Click or press Enter.

Copilot will start a new session, which will appear in the list below the prompt box. Copilot will create a draft pull request, write your custom instructions, push them to the branch, then add you as a reviewer when finished, triggering a notification.

Writing your own copilot-instructions.md file

  1. In the root of your repository, create a file named .github/copilot-instructions.md.

    Create the .github directory if it does not already exist.

  2. Add natural language instructions to the file, in Markdown format.

    Whitespace between instructions is ignored, so the instructions can be written as a single paragraph, each on a new line, or separated by blank lines for legibility.

Tipp

The first time you create a pull request in a given repository with Copilot-Cloud-Agent, Copilot will leave a comment with a link to automatically generate custom instructions for the repository.

Creating path-specific custom instructions

Hinweis

Currently, on GitHub.com, path-specific custom instructions are only supported for Copilot-Cloud-Agent and Copilot Codeüberprüfung.

  1. Erstelle das .github/instructions-Verzeichnis, wenn es noch nicht vorhanden ist.

  2. Erstellen Sie optional Unterverzeichnisse von .github/instructions zur Organisation Ihrer Anleitungsdateien.

  3. Erstelle mindestens eine NAME.instructions.md-Datei, in der NAME den Zweck der Anweisungen angibt. Der Dateiname muss auf .instructions.md enden.

  4. Erstelle am Anfang der Datei einen Frontmatterblock, der das Schlüsselwort applyTo enthält. Verwende die Globsyntax, um anzugeben, für welche Dateien oder Verzeichnisse die Anweisungen gelten.

    Zum Beispiel:

    ---
    applyTo: "app/models/**/*.rb"
    ---
    

    Du kannst mehrere Muster angeben, indem du sie durch Kommas trennst. Wenn du beispielsweise die Anweisungen auf alle TypeScript-Dateien im Repository anwenden möchtest, kannst du den folgenden Frontmatterblock verwenden:

    ---
    applyTo: "**/*.ts,**/*.tsx"
    ---
    

    Glob-Beispiele:

    • * - entspricht allen Dateien im aktuellen Verzeichnis.
    • ** oder **/* - entspricht allen Dateien in allen Verzeichnissen.
    • *.py - entspricht allen .py Dateien im aktuellen Verzeichnis.
    • **/*.py - stimmt rekursiv mit allen .py Dateien in allen Verzeichnissen überein.
    • src/*.py – entspricht allen .py Dateien im src Verzeichnis. Beispiel: src/foo.py und src/bar.py, aber nichtsrc/foo/bar.py.
    • src/**/*.py – stimmt rekursiv mit allen .py Dateien im src Verzeichnis überein. Beispiel: src/foo.py, src/foo/bar.pyund src/foo/bar/baz.py.
    •           `**/subdir/**/*.py` - wird rekursiv eine Übereinstimmung für alle `.py`-Dateien in jedem beliebigen `subdir`-Verzeichnis unabhängig von dessen Tiefe finden. Beispiel: `subdir/foo.py`, `subdir/nested/bar.py`, `parent/subdir/baz.py` und `deep/parent/subdir/nested/qux.py`, aber _nicht_`foo.py` in einem Pfad, der kein `subdir` Verzeichnis enthält.
      
  5. Fügen Sie optional das Schlüsselwort Copilot-Cloud-Agent dem Frontmatterblock hinzu, um zu verhindern, dass die Datei von Copilot Codeüberprüfung oder excludeAgent verwendet wird. Verwenden Sie entweder "code-review" oder "cloud-agent".

    Beispielsweise wird die folgende Datei nur von Copilot-Cloud-Agent gelesen.

    ---
    applyTo: "**"
    excludeAgent: "code-review"
    ---
    

    Wenn das excludeAgent-Schlüsselwort nicht im Front-Matterblock enthalten ist, verwenden sowohl Copilot Codeüberprüfung als auch Copilot-Cloud-Agent die Anweisungen.

  6. Füge deine benutzerdefinierten Anweisungen in natürlicher Sprache im Markdownformat hinzu. Leerzeichen zwischen Anweisungen werden ignoriert, d. h. die Anweisungen können in einem Absatz und jeweils in einer neuen Zeile oder für bessere Lesbarkeit durch leere Zeilen getrennt geschrieben werden.

Hast du deinem Repository erfolgreich eine benutzerdefinierte Anweisungendatei hinzugefügt?

          <a href="https://docs.github.io/success-test/yes.html" target="_blank" class="btn btn-outline mt-3 mr-3 no-underline">
          <span>Ja</span></a><a href="https://docs.github.io/success-test/no.html" target="_blank" class="btn btn-outline mt-3 mr-3 no-underline"><span>Nein</span></a>

Benutzerdefinierte Anweisungen im Einsatz

Die Anweisungen in den Dateien stehen zur Verwendung zur Verfügung, sobald Copilot Sie die Datei(en) speichern. Anweisungen werden automatisch zu Anfragen hinzugefügt, die Sie an Copilot übermitteln.

In Copilot-Chat (github.com/copilot), you can start a conversation that uses repository custom instructions by adding, as an attachment, the repository that contains the instructions file.

Whenever repository custom instructions are used by Copilot-Chat, the instructions file is added as a reference for the response that's generated. To find out whether repository custom instructions were used, expand the list of references at the top of a chat response in the Chat panel and check whether the .github/copilot-instructions.md file is listed.

Screenshot of an expanded References list, showing the 'copilot-instructions.md' file highlighted with a dark orange outline.

You can click the reference to open the file.

Hinweis

  • Mehrere Arten von benutzerdefinierten Anweisungen können auf Anforderungen angewendet werden, die an Copilot gesendet werden. Persönliche Anweisungen haben höchste Priorität. Anweisungen für das Repository kommen als Nächstes, und dann werden Organisations-Anweisungen zuletzt priorisiert. Alle Sets mit relevanten Anweisungen werden jedoch Copilot zur Verfügung gestellt.
  • Versuchen Sie, wann immer möglich, konfliktende Sätze von Anweisungen zu vermeiden. Wenn Sie sich Sorgen um die Antwortqualität machen, können Sie die Anweisungen im Repository vorübergehend deaktivieren. Weitere Informationen findest du unter Hinzufügen von benutzerdefinierten Repositoryanweisungen für GitHub Copilot.

Enabling or disabling custom instructions for Copilot Codeüberprüfung

Custom instructions are enabled for Copilot Codeüberprüfung by default but you can disable, or re-enable, them in the repository settings on GitHub.com. This applies to Copilot's use of custom instructions for all code reviews it performs in this repository.

  1. Navigieren Sie auf GitHub zur Hauptseite des Repositorys.

  2. Klicke unter dem Repositorynamen auf Settings. Wenn die Registerkarte „Einstellungen“ nicht angezeigt wird, wähle im Dropdownmenü die Option Einstellungen aus.

    Screenshot eines Repositoryheaders mit den Registerkarten. Die Registerkarte „Einstellungen“ ist dunkelorange umrandet.

  3. In the "Code & automation" section of the sidebar, click Copilot, then Code review.

  4. Toggle the “Use custom instructions when reviewing pull requests” option on or off.

Hinweis

Beim Überprüfen eines Pull Requests verwendet Copilot die benutzerdefinierten Anweisungen im Basisbranch des Pull Requests. Wenn Ihr Pull Request beispielsweise darauf abzielt, my-feature-branch in main zusammenzuführen, verwendet Copilot die benutzerdefinierten Anweisungen in main.

Further reading