Skip to main content

Рекомендации по использованию GitHub Copilot для работы над задачами

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

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

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

Примечание.

Общие сведения о Агент кодирования Copilotсм. в разделе Сведения об агенте программирования GitHub Copilot.

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

GitHub Copilot обеспечивает лучшие результаты при назначении четких и хорошо ограниченных задач. Идеальная задача включает:

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

Если вы передаете задачу Copilot путем назначения проблемы, полезно думать о проблеме, которую вы назначаете Copilot в качестве запроса. Рассмотрите, будет ли описание проблемы работать в качестве запроса ИИ и позволит Copilot внести необходимые изменения в код.

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

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

Проблемы, с которыми вы можете работать самостоятельно, а не назначать Copilot, включают:

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

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

Работа с Copilot в запросе на вытягивание похожа на работу с человеком разработчика: обычно запрос на вытягивание нуждается в дальнейшей работе, прежде чем его можно объединить. Процесс получения запроса на вытягивание в состояние слияния точно такой же, как при создании запроса на вытягивание Copilot как при создании человеком.

Вы также можете упомянуть @copilot в комментариях о запросе на вытягивание ( объясняя, что вы считаете неправильным, или можно улучшить) и оставить Copilot для внесения необходимых изменений. Кроме того, вы можете самостоятельно работать над ветвь компонента и отправлять изменения в запрос на вытягивание.

После того как пользователь с упоминаниями @copilot доступа на запись в комментариев Copilot начнет вносить все необходимые изменения и обновит запрос на вытягивание после его завершения. Так как Copilot начинает просматривать комментарии сразу после отправки, если вы, скорее всего, сделаете несколько комментариев по запросу на вытягивание, лучше всего пакетировать их, нажав кнопку "Начать проверку", а не щелкнув "Добавить один комментарий". Затем вы можете отправить все комментарии одновременно, активировав Copilot для работы со всей проверкой, а не работать над отдельными комментариями отдельно.

Примечание.

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

Так как Copilot вносит изменения в запрос на вытягивание, он будет обновлять название и текст, чтобы они соответствовали текущим изменениям.

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

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

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

Агент кодирования 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 для создания запроса на вытягивание в данном репозитории 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 сначала отдает приоритет пользовательским инструкциям для всего репозитория. Дополнительные сведения о настройке пользовательских инструкций организации см. в разделе AUTOTITLE.

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

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

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

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

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

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

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

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

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

Предварительная установка зависимостей в среде GitHub Copilot

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

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

Для этого потребуется зависимости проекта. Copilot может обнаруживать и устанавливать эти зависимости через процесс пробной и ошибок - но это может быть медленно и ненадежно, учитывая недетерминированный характер больших языковых моделей (LLMs).

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