В блоге GitHub опубликована статья Кэссиди Уильямс, старшего директора по developer advocacy, о новых возможностях GitHub Copilot App — stacked sessions и stacked pull requests. На примере модернизации своего старого личного проекта она демонстрирует, как эти функции помогают разбивать крупные изменения на управляемые последовательные шаги.
Что такое stacked sessions и stacked pull requests
Stacked sessions — это серия задач в одном репозитории, где каждая сессия строится на предыдущей. Stacked pull requests — серия пул-реквестов, каждый из которых направлен на ветку предыдущего PR, образуя упорядоченную цепочку, которая в итоге сливается в основную ветку.
История модернизации
Уильямс рассказала, что её личное приложение — дашборд для календарей, умных устройств и задач — было написано около 2014 года. К моменту модернизации в нём использовались React 15 (выпущен в 2016), Less для CSS-препроцессинга и старая версия react-bootstrap. Попытки обновить код вручную ранее заканчивались неудачей из-за объёма работы.
Она запустила GitHub Copilot App, добавила репозиторий и попробовала «одним выстрелом» модернизировать фронтенд, используя Plan mode с подробным промптом. Однако первая попытка не удалась: выяснилось, что у неё уже была старая dev-ветка с частичными обновлениями, что вызвало конфликты.
Тогда Уильямс попросила Copilot создать новую сессию, закрыть неудачный PR и перенести стилевые решения на dev-ветку. Copilot выполнил это, создав stacked session.
Обнаружение старых зависимостей
При тестировании в консоли появились предупреждения от react-bootstrap: findDOMNode и componentWillReceiveProps. Уильямс снова открыла Plan mode и спросила, стоит ли обновить библиотеку или заменить её. Copilot рекомендовал полную замену.
Создание стопки сессий
Чтобы избежать scope creep (разрастания объёма изменений), Уильямс не стала делать один гигантский PR. Вместо этого она попросила Copilot создать PR для текущих изменений, а затем начать новую сессию для замены react-bootstrap, которая ответвляется от предыдущей работы и формирует отдельный PR. Copilot автоматически создал stacked session и stacked pull request.
В итоге получилась цепочка: первый PR (с красной иконкой — не отправлен), второй PR для dev-ветки, и третий (draft) для замены react-bootstrap.
Что это значит
Функции stacked sessions и stacked pull requests в GitHub Copilot App позволяют разработчикам разбивать крупные задачи на последовательные шаги, сохраняя контекст и избегая конфликтов. Это особенно полезно при модернизации старых проектов, где изменения затрагивают множество компонентов. Инструмент автоматизирует создание цепочек PR, что упрощает ревью и снижает риск ошибок.
Информация опубликована в блоге GitHub.

Комментарии · 0
Войдите, чтобы участвовать в обсуждении.