GitHub опубликовал материал о том, как использовать GitHub Copilot для модернизации старых проектов и работы с крупными изменениями в кодовой базе с помощью «стеков» сессий и pull request’ов.
Автор, директор по работе с разработчиками Cassidy, рассказывает, как обновляла свой личный проект, созданный ещё в конце 2014 года. Приложение работало как личная панель с календарями, умными устройствами и задачами, но его фронтенд-зависимости были устаревшими: React 15, Less и старая версия react-bootstrap. Попытки обновить проект до появления ИИ уже предпринимались, но останавливались из‑за объёма и запутанности изменений.
Для новой попытки модернизации Cassidy подключила репозиторий к приложению GitHub Copilot и начала работу в режиме Plan. Она составила подробный промпт, уточнила план с помощью ИИ‑моделей и, получив удовлетворяющий её план изменений, запустила автоматические правки проекта через Copilot.
В процессе выяснилось, что актуальная рабочая версия приложения находилась не в основной ветке, а в старой ветке dev, где ранее уже частично проводилось обновление. Новые изменения сначала были построены от main, поэтому требовалось перенести нужный функционал и стили в dev, чтобы не потерять ранее сделанную работу.
По запросу автора GitHub Copilot создал новую сессию, закрыл прежний pull request и перенёс принятые стилистические решения в ветку dev. Это позволило продолжать работу с более подходящей базой кода, не теряя результатов прошлых итераций.
Во время тестирования Cassidy заметила в консоли старые предупреждения, связанные с методами findDOMNode и componentWillReceiveProps. Эти вызовы уже почти не использовались в её коде, но оставались в библиотеке react-bootstrap. В режиме Plan она снова обратилась к Copilot, чтобы оценить варианты: обновление библиотеки или полный отказ от неё.
ИИ предложил план с объяснением плюсов и минусов и рекомендовал полностью заменить react-bootstrap. Однако такое изменение выходило за рамки текущего набора задач. Чтобы избежать чрезмерного расширения объёма работ, Cassidy разбила его на отдельные этапы и создала для этого новую сессию в Copilot.
Ключевым моментом материала стало использование «стеков» сессий и «стеков» pull request’ов. В GitHub стеком называется серия pull request’ов в одном репозитории, где каждый запрос на слияние направлен в ветку предыдущего, образуя упорядоченную цепочку, которая в итоге попадает в основную ветку. В описанном кейсе последовательность сессий Copilot соответствовала такой же последовательности связанных pull request’ов.
По словам Cassidy, сочетание GitHub Copilot, планирования через ИИ и стеков pull request’ов значительно упростило обновление старой кодовой базы и сделало процесс поставки изменений заметно комфортнее.
GitHub рекомендует разработчикам, которые также хотят модернизировать свои проекты, попробовать подобный подход: использовать стеки pull request’ов в репозиториях на GitHub и стеки сессий в приложении GitHub Copilot для поэтапного внесения крупных изменений.
Источник: блог GitHub.






















