Примечание.
Агент кодирования Copilot находится в public preview и подлежит изменению. Во время предварительной версии использование функции подлежит Условия лицензии GitHub Pre-release.
Убедитесь, что ваши проблемы хорошо ограничены
GitHub Copilot обеспечивает лучшие результаты при назначении четких и хорошо ограниченных задач. Идеальная задача включает:
- Четкое описание проблемы, необходимой для решения или необходимой работы.
- Полные критерии принятия решений о том, как выглядит хорошее решение (например, должны быть модульные тесты?).
- Инструкции по изменению файлов.
Если вы передаете задачу Copilot путем назначения проблемы, полезно думать о проблеме, которую вы назначаете Copilot в качестве запроса. Рассмотрите, будет ли описание проблемы работать в качестве запроса ИИ и позволит Copilot внести необходимые изменения в код.
Выбор подходящего типа задач для предоставления Copilot
При работе с Copilotвы получите представление о типах задач, над которыми лучше всего работать. Изначально можно начать с предоставления Copilot более простых задач, чтобы узнать, как он работает в качестве агента программирования. Например, можно начать с запроса Copilot для устранения ошибок, изменения функций пользовательского интерфейса, улучшения покрытия тестов, обновления документации, улучшения специальных возможностей или технического долга.
Проблемы, с которыми вы можете работать самостоятельно, а не назначать Copilot, включают:
-
Сложные и широкие задачи
- Широкие области, проблемы рефакторинга с широкими контекстами, требующие знаний и тестирования между репозиторием
- Сложные проблемы, требующие понимания зависимостей и устаревшего кода
- Задачи, требующие глубоких знаний о домене
- Задачи, связанные с существенной бизнес-логикой
- Большие изменения в базе кода, требующей согласованности конструктора
-
Конфиденциальные и критически важные задачи
- Критически важные проблемы с рабочей средой
- Задачи, связанные с безопасностью, персональными данными, последствиями проверки подлинности
- Реагирование на инциденты
-
Неоднозначные задачи
- Задачи, не имеющие четкого определения: задачи с неоднозначными требованиями, открытыми задачами, задачами, требующими выполнения неопределенности для поиска решения
-
Задачи обучения
- Задачи, в которых разработчик хочет узнать, чтобы получить более глубокое понимание
Использование комментариев для итерации запроса на вытягивание
Работа с Copilot в запросе на вытягивание похожа на работу с человеком разработчика: обычно запрос на вытягивание нуждается в дальнейшей работе, прежде чем его можно объединить. Процесс получения запроса на вытягивание в состояние слияния точно такой же, как при создании запроса на вытягивание Copilot как при создании человеком. Если вы хотите, вы можете работать над ветвь компонента самостоятельно и отправлять изменения в запрос на вытягивание. Однако вы также можете просто добавить комментарии к запросу на вытягивание , объясняя, что вы считаете неправильным или можно улучшить, и оставить Copilot для внесения необходимых изменений.
Copilot считывает все комментарии сразу после отправки пользователями с доступом на запись и решит, требуется ли действие. Затем он начнет вносить все необходимые изменения и обновит запрос на вытягивание по завершении. Так как Copilot начинает просматривать комментарии сразу после отправки, если вы, скорее всего, сделаете несколько комментариев по запросу на вытягивание, лучше всего пакетировать их, нажав кнопку "Начать проверку", а не щелкнув "Добавить один комментарий". Затем вы можете отправить все комментарии одновременно, активировав Copilot для работы со всей проверкой, а не работать над отдельными комментариями отдельно.
Примечание.
Copilot only responds to comments from people who have write access to the repository.
Добавление пользовательских инструкций в репозиторий
Добавив пользовательские инструкции в репозиторий, вы можете руководствоваться Copilot о том, как понять проект и как создавать, тестировать и проверять его изменения.
Если Copilot может создавать, тестировать и проверять изменения в собственной среде разработки, скорее всего, будут создаваться хорошие запросы на вытягивание, которые можно быстро объединить.
Добавьте инструкции в .github/copilot-instructions.md
файл в репозитории. Дополнительные сведения см. в разделе Добавление пользовательских инструкций репозитория для GitHub Copilot.
Ниже приведен пример эффективного 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
Использование протокола контекста модели (MCP)
Вы можете расширить возможности Агент кодирования Copilot с помощью MCP. Это позволяет Агент кодирования Copilot использовать средства, предоставляемые локальными серверами MCP. Дополнительные сведения см. в разделе Расширение агента кода Copilot с помощью протокола контекста модели (MCP).
Предварительная установка зависимостей в среде GitHub Copilot
При работе с задачей Copilot имеет доступ к собственной эфемерной среде разработки, на основе GitHub Actions, где он может изучить код, внести изменения, выполнить автоматические тесты и перетерты и многое другое.
Если Copilot может создавать, тестировать и проверять изменения в собственной среде разработки, скорее всего, будут создаваться хорошие запросы на вытягивание, которые можно быстро объединить.
Для этого потребуется зависимости проекта. Copilot может обнаруживать и устанавливать эти зависимости через процесс пробной и ошибок - но это может быть медленно и ненадежно, учитывая недетерминированный характер больших языковых моделей (LLMs).
Вы можете настроить copilot-setup-steps.yml
файл для предварительной установки этих зависимостей перед началом работы агента, чтобы он смог попасть на землю. Дополнительные сведения см. в разделе Настройка среды разработки для агента программирования Copilot.