Разбиение больших pull requests
Инструменты разработки с поддержкой ИИ генерируют больше строк кода, чем раньше, и это усложняет работу ревьюеров, которым приходится проверять все более крупные pull request. После идеи закрыть дверь для AI-assisted code submissions GitHub теперь пытается помочь компаниям управлять крупными изменениями в коде более инкрементально. Компания считает, что новая функция Stacked PRs может повысить скорость и качество code review, разбивая большие изменения на более мелкие единицы.
«Большие pull request трудно проверять, они медленно сливаются и чаще приводят к конфликтам. Ревьюеры теряют контекст, качество обратной связи падает, и вся команда замедляется», — заявили в компании, представляя GitHub Stacked PRs на своем сайте.
С новым stacked-подходом GitHub стремится сократить накладные расходы на управление зависимыми pull request за счет уменьшения объема rebasing, улучшения видимости continuous integration (CI) и policy для всей цепочки stacked changes, а также сохранения контекста ревью для повышения качества кода.
Stacked PRs отслеживает, как запросы внутри stack связаны друг с другом, и автоматически распространяет изменения, чтобы разработчикам не приходилось постоянно делать rebasing своего кода, а ревьюеры могли оценивать каждый шаг в контексте, пояснила компания в документации.
GitHub пишет, что функция поставляется через gh-stack — новое расширение для GitHub CLI, которое управляет локальным workflow, включая создание веток, rebasing, отправку изменений и открытие pull request с правильными base branches.
На фронтенде все изменения, созданные через gh-stack, отображаются в интерфейсе GitHub, где ревьюеры могут перемещаться по ним через stack map; каждый слой представлен как сфокусированный diff и подчиняется стандартным правилам и проверкам, добавила компания.
Разработчики могут объединять отдельные pull request или целые stacks, в том числе через merge queue; после этого любые оставшиеся изменения автоматически rebased, чтобы следующий неслитый PR был направлен в base branch.
Monorepos и platform engineering меняют модель разработки
По мнению Pareekh Jain, главного аналитика Pareekh Consulting, Stacked PR — это ответ GitHub на структурный сдвиг, который подталкивают крупные monorepos и platform engineering и который ведет команды к более модульным и параллельным workflow.
«Традиционная PR-модель GitHub создавала узкое место: разработчики либо ждали долгие циклы ревью, либо объединяли работу в большие PR, которые трудно проверять, что повышало риски и замедляло merges. Stacking решает это, позволяя разбивать фичу на более мелкие зависимые PR — например, на слои database, API и UI, — так что ревью идут инкрементально, пока разработка продолжается параллельно», — сказал Jain.
«Stacked PRs, вероятно, быстро получит распространение в компаниях среднего и крупного размера, особенно у тех, кто работает с monorepos. Его главный эффект — устранение rebase hell, то есть ручной работы по обновлению нескольких зависимых веток при изменении базы», — отметил Jain, добавив, что интеграция функции и в GitHub CLI, и в интерфейс также ускорит внедрение, поскольку убирает необходимость в сторонних инструментах.
Change management
Главным препятствием для внедрения Stacked PRs будут не изменения в коде, а изменение привычек разработчиков, сказал Phil Fersht, CEO HFS Research. «Ограничением будет не сама функция, а готовность команд скорректировать дисциплину workflow, чтобы правильно использовать stacking».
Это потребует от них научиться раскладывать большие pull request в аккуратные stacks для ревьюера, а это может оказаться не менее сложной задачей, чем проверка большого PR.
С этим согласился Paul Chada, сооснователь agentic AI-стартапа Doozer AI: «Изменения в workflow происходят только тогда, когда боль от бездействия перевешивает трение от обучения», — сказал он.
AI-driven code velocity создает новую точку давления
Релиз Stacked PRs происходит на фоне более глубокого структурного сдвига в разработке ПО: роста AI-assisted coding. Это ускоряет генерацию кода, увеличивает объем изменений и делает традиционные линейные workflow ревью все менее устойчивыми.
«AI-assisted coding изменил математику. Когда код писали люди, большие PR были раздражающими, но терпимыми», — сказал Chada. «Теперь агенты за секунды создают diff на 2000 строк по 40 файлам, а GitHub смотрит на прогнозируемые 14 миллиардов commits в этом году против 1 миллиарда в прошлом. Это уже не проблема workflow, это вопрос выживания».
По словам Chada, GitHub, похоже, делает ставку на то, что Stacked PRs меняет сам способ, которым команды разработки воспринимают единицу работы в software development, делая ее маленькой, атрибутируемой и reversible, независимо от того, пишет код senior engineer или агент.
Но, предупредил он, интеграция Stacked PRs с coding agents может усилить toolchain sprawl в компаниях.
«Текущий dev toolchain — IDE plus Copilot plus Claude Code plus Codex plus stacking tools plus review bots plus CI/CD plus security scanners plus MCP servers — находится в фазе кембрийского взрыва», — отметил Chada.
Competitive pressures
GitHub Stacked PRs — не полностью новая идея: похожую функциональность уже предлагают сторонние инструменты, работающие с GitHub.
Jain сказал, что добавление этой функции, вероятно, затронет Graphite CLI — ориентированный на GitHub инструмент, который позволял stacking PR, когда нативной поддержки еще не было.
«Graphite был лидером рынка в этой нише. Выход GitHub подтверждает категорию Stacking, но создает экзистенциальную угрозу для ключевого ценностного предложения Graphite», — сказал Jain. «Чтобы выжить, Graphite, вероятно, придется делать ставку на более сильные UI/UX, более высокую производительность и функции, к которым GitHub не будет прикасаться, например cross-platform stacking для GitLab и Bitbucket».
Это конкурентное давление также отражает более широкую платформенную стратегию.
Как добавил Jain, Stacked PRs — это «стратегический ход», чтобы встроить в GitHub workflow, давно используемый высокоскоростными командами в компаниях вроде Google, Meta и Uber, имея в виду stacked differential code review model, популяризированную инструментами вроде Phabricator.
Stacked differentials, как и Stacked PRs, — это серия небольших зависимых изменений кода, которые рецензируются по отдельности, но рассчитаны на то, чтобы нарастать друг на друга и в итоге сливаться в единое целое.
По сути, это означает, что GitHub пытается оттянуть компании от таких инструментов, упрощая внедрение продвинутых workflow нативно внутри собственной платформы и уменьшая потребность во внешних инструментах.
Chada также указал на менее заметный экономический аспект платформы.
«GitHub фактически строит инфраструктуру, чтобы переварить всплеск machine-generated activity, который пока не превращается в пропорциональную выручку, — от сторонних coding agents, конкурирующих с его собственным GitHub Copilot, до самих workflow, которые эти агенты ускоряют», — сказал Chada.
В этом свете Stacked PRs выглядит не только как ответ на масштабирование, но и как upgrade developer experience — и, возможно, как сигнал о том, что способ монетизации AI-слоя GitHub со временем сместится в сторону более usage-based моделей для Copilot, добавил Chada.
Материал — перевод статьи с английского.
Оригинал: GitHub adds Stacked PRs to speed complex code reviews
