Skip to main content

Лучшие практики использования GitHub Copilot для выполнения задач

Узнайте, как добиваться наилучших результатов из Агент кодирования Copilot.

Кто может использовать эту функцию?

Агент кодирования Copilot доступен с планами GitHub Copilot Pro, GitHub Copilot Pro+, GitHub Copilot Бизнес и GitHub Copilot Энтерпрайз. Агент доступен во всех репозиториях, хранящихся на GitHub, за исключением репозиториев, принадлежащих управляемые учетные записи пользователей и где он был явно отключен.
Sign up for Copilot

Примечание.

Для вступления в Агент кодирования Copilot, см. О программном агенте GitHub Copilot.

Убедитесь, что ваши проблемы хорошо ограничены

          GitHub Copilot обеспечивает лучшие результаты при назначении чётких, чётко продуманных задач. Идеальная задача включает:
  • Четкое описание проблемы, необходимой для решения или необходимой работы.
  • Полные критерии принятия решений о том, как выглядит хорошее решение (например, должны быть модульные тесты?).
  • Инструкции по изменению файлов.

Совет

          Агент кодирования Copilot Имеет возможность искать в вашей кодовой базе, включая поиск семантического кода, что помогает находить релевантный код по смыслу, а не только по точным совпадениям текста. Даже если вы не указываете точные пути файлов в задаче, агент часто может самостоятельно найти нужный код.

Если вы передаёте задачу Copilot , назначив задачу, полезно воспринимать Copilot задачу как подсказку. Подумайте, будет ли описание проблемы работать как AI-подсказка и Copilot позволит ли внести необходимые изменения в код.

Выбор правильного типа задач для выполнения Copilot

Работая с Copilot, вы поймёте, какие задачи лучше всего выполнять. Сначала стоит начать с более Copilot простых задач, чтобы понять, как это работает как программный агент. Например, вы можете начать с просьбы Copilot исправить ошибки, изменить функции пользовательского интерфейса, улучшить тестирование, обновить документацию, улучшить доступность или решить технические задолженности.

Вопросы, над которыми вы можете решить работать самостоятельно, вместо того чтобы назначать Copilot, включают:

  •         **Сложные и широкие задачи**
    
    • Широкие области, проблемы рефакторинга с широкими контекстами, требующие знаний и тестирования между репозиторием
    • Сложные проблемы, требующие понимания зависимостей и устаревшего кода
    • Задачи, требующие глубоких знаний о домене
    • Задачи, связанные с существенной бизнес-логикой
    • Большие изменения в базе кода, требующей согласованности конструктора
  •         **Конфиденциальные и критически важные задачи**
    
    • Критически важные проблемы с рабочей средой
    • Задачи, связанные с безопасностью, персональными данными, последствиями проверки подлинности
    • Реагирование на инциденты
  •         **Неоднозначные задачи**
    
    • Задачи, не имеющие четкого определения: задачи с неоднозначными требованиями, открытыми задачами, задачами, требующими выполнения неопределенности для поиска решения
  •         **Задачи обучения**
    
    • Задачи, в которых разработчик хочет узнать, чтобы получить более глубокое понимание

Использование комментариев для итерации запроса на вытягивание

Работа Copilot с pull-запросом похожа на работу с человеком-разработчиком: часто пулл-запрос требует дополнительной доработки, прежде чем его можно объединить. Процесс перевода pull-запроса в mergeable состояние абсолютно одинаков, когда он создан Pull-request Copilot , и когда его создаёт человек.

Кроме того, вы можете:

  • Упомяните @copilot в комментариях к pull request, объясняя, что, по вашему мнению, неправильно или что можно улучшить, и Copilot коммиты будут отправлять напрямую в ветку pull request.
  • Попросите Copilot разрешить конфликты слияния на pull request. См . раздел AUTOTITLE.
  • Работайте над веткой функции самостоятельно и вносите изменения в pull request.

После того как пользователь с доступом к записи @copilot упомянет в комментарии, Copilot он начнёт вносить необходимые изменения и обновляет pull request, когда всё будет готово. Поскольку Copilot комментарии начинают смотреть сразу после их отправки, если вы готовы сделать несколько комментариев к пулл-запросу, лучше разделить их на пакеты, нажав «Начать отзыв», а не «Добавить один комментарий». Вы сможете отправлять все свои комментарии сразу, что приведёт Copilot к работе над полным отзывом, а не над отдельными комментариями отдельно.

Примечание.

Copilot отвечает только на комментарии пользователей с доступом на запись в репозиторий.

При Copilot внесении изменений в pull request будет сохранять заголовок и тело актуальными, чтобы они отражали текущие изменения.

Добавление пользовательских инструкций в репозиторий

Добавляя пользовательские инструкции в репозиторий, вы сможете подсказать Copilot , как понять свой проект и как строить, тестировать и проверять его изменения.

Если Copilot он сможет создавать, тестировать и проверять изменения в собственной среде разработки, он с большей вероятностью получит хорошие pull requests, которые можно быстро объединить.

          Агент кодирования Copilot поддерживает ряд различных типов пользовательских файлов инструкций:
  • /.github/copilot-instructions.md
  • /.github/instructions/**/*.instructions.md
  • **/AGENTS.md
  • /CLAUDE.md
  • /GEMINI.md

Для получения дополнительной информации см. Добавление пользовательских инструкций репозитория для GitHub Copilot.

Инструкции по всему репозиторию

Чтобы добавить инструкции, применимые ко всем задачам, назначенным Copilot в вашем репозитории, создайте .github/copilot-instructions.md файл в корне вашего репозитория. Этот файл должен содержать информацию о вашем проекте, например, как его построить и протестировать, а также любые стандарты или конвенции кодирования, которым вы хотите Copilot следовать. Обратите внимание, что инструкции также будут применяться к Копилот Чат и Обзор кода Copilot.

В первый раз, когда вы попросите Copilot создать pull request в конкретном репозитории, Copilot вы оставите комментарий со ссылкой для автоматической генерации пользовательских инструкций. Вы также можете попросить Copilot создать для себя индивидуальные инструкции в любое время, используя наш рекомендованный запрос. См . раздел AUTOTITLE.

Вы также можете в любое время написать собственные пользовательские инструкции. Ниже приведен пример эффективного copilot-instructions.md файла:

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

Инструкции для конкретного пути

Чтобы добавить инструкции, применимые к определённым типам файлов Copilot , которые будут работать, например, модульные тесты или компоненты React, создайте один или несколько .github/instructions/**/*.instructions.md файлов в вашем репозитории. В этих файлах включайте информацию о типах файлов, например, как их собирать и тестировать, а также любые стандарты или конвенции кодирования, которым вы хотите Copilot следовать.

Используя шаблон glob в передней части файла инструкций, можно указать типы файлов, к которым они должны применяться. Например, чтобы создать инструкции для тестов Playwright, можно создать файл инструкций под названием .github/instructions/playwright-tests.instructions.md с следующим содержанием:

---
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

Пользовательские инструкции для всей организации

          Агент кодирования Copilot Используйте индивидуальные инструкции вашей организации в рамках своей работы. 
          Агент кодирования Copilot First приоритизирует пользовательские инструкции по всему репозиторию. Дополнительные сведения о настройке пользовательских инструкций организации см. [в разделе AUTOTITLE.](/copilot/how-tos/configure-custom-instructions/add-organization-instructions)

Использование протокола контекста модели (MCP)

Вы можете расширить возможности Агент кодирования Copilot , используя MCP. Это позволяет Агент кодирования Copilot использовать инструменты, предоставляемые локальными и удалёными MCP-серверами. По умолчанию MCP-серверы GitHub и Playwright MCP-серверы включены. Для получения дополнительной информации см. Расширение GitHub Copilot кодирующего агента с помощью протокола контекста модели (MCP).

Создание Пользовательские агенты

Хотя индивидуальные инструкции помогают Copilotуправлять общим поведением вашего репозитория, создавайте Пользовательские агенты полностью специализированных агентов с целенаправленной экспертизой и индивидуальными конфигурациями инструментов. Эти агенты предназначены для конкретных, повторяющихся рабочих процессов, в которых решающее значение имеют опыт в предметной области и последовательное поведение. Пользовательские агенты определяются как файлы Markdown, называемые Профили агентов.

Вот несколько примеров, которые Пользовательские агенты вы могли бы создать:

  •         **Специалист по тестированию**: агент, настроенный с определенными фреймворками тестирования и ориентированный на покрытие тестами, качество тестов и лучшие практики тестирования. Он может быть ограничен инструментами чтения, поиска и редактирования, чтобы предотвратить непреднамеренные изменения в рабочем коде и обеспечить всесторонний охват тестами.
    
  •         **Эксперт по документации**: агент, специализирующийся на создании и обслуживании проектной документации, обладающий глубокими знаниями стандартов документации, руководств по стилю и способностью анализировать код для создания точной документации API и руководств пользователя.
    
  •         **Специалист по Python**: агент для конкретного языка, который понимает соглашения Python, популярные фреймворки, такие как Django или Flask, и следует стандартам PEP. Он должен обладать специализированными знаниями инструментов Python, виртуальных сред и тестовых фреймворков, таких как pytest.
    

По умолчанию Пользовательские агенты наследуйте все инструменты сервера MCP, которые были настроены в репозитории, но также можно настроить Пользовательские агенты доступ только к определённым инструментам.

Вы можете использовать Пользовательские агенты где Агент кодирования Copilotугодно, включая назначение задачи или подсказку задачи.

Для получения дополнительной информации о создании и настройке Пользовательские агентысм. Создание пользовательских агентов для Агент кодирования Copilot.

Предустановка зависимостей в GitHub Copilotокружении .

Работая над задачей, Copilot имеет доступ к собственной эфемерной среде разработки, основанной GitHub Actionsна , где может исследовать ваш код, вносить изменения, выполнять автоматизированные тесты, линтеры и многое другое.

Если Copilot он сможет создавать, тестировать и проверять изменения в собственной среде разработки, он с большей вероятностью получит хорошие pull requests, которые можно быстро объединить.

To do этого нужны зависимости вашего project. Copilot может самостоятельно обнаруживать и устанавливать эти зависимости методом проб и ошибок — но это может быть медленно и ненадёжно, учитывая недетерминированный характер больших языковых моделей (LLM).

Вы можете настроить copilot-setup-steps.yml файл для предварительной установки этих зависимостей перед началом работы агента, чтобы он смог попасть на землю. Для получения дополнительной информации см. Настройка среды разработки для программистского агента GitHub Copilot.