GitHub албан ёсоор Stacked Pull Requests танилцууллаа: AI кодын "Review Bottleneck"-ийг шийдэх шинэ үе
Сүүлийн үед Cursor, Claude Code, GitHub Copilot зэрэг хэрэгслүүдийн ачаар инженерүүд кодоо асар хурдтай бичиж, цоо шинэ боломжуудыг хэдхэн минутад үүсгэдэг болсон. Гэвч программ хангамжийн багуудын өмнө шинэ төрлийн гацаа буюу "Code Review Bottleneck" үүсээд байна. AI-аар үүсгэгдсэн 2,000+ мөрийн өөрчлөлт бүхий нүсэр Pull Request (PR)-ийг хэн ч нарийвчлан шалгаж чадахгүй "LGTM" дарах, эсвэл олон хоногоор хүлээгдэж хуучирсаар merge conflict үүсгэх нь нийтлэг үзэгдэл болжээ.
Үүнийг сууриар нь шийдэхээр GitHub өөрийн платформдоо Stacked Pull Requests (Stacked PRs) дэмжлэгийг Public Preview хэлбэрээр албан ёсоор нэвтрүүлж, багуудад зориулсан шинэ CLI өргөтгөл болон AI агентын интеграцыг зарлалаа.
Stacked Pull Requests гэж юу вэ?
Уламжлалт хөгжүүлэлтийн явцад хөгжүүлэгч бүхэл бүтэн шинэ модулийг нэг том branch дээр хийж, нэг л PR үүсгэдэг байв. Харин Stacked PRs нь том ажлыг хоорондоо хамааралтай, бие даан шалгаж болохуйц жижиг давхаргууд (layers) болгон хуваах аргачлал юм.
Өмнө нь Facebook, Google зэрэг томоохон технологийн компаниуд дотооддоо (Phabricator, Graphite гэх мэт хэрэгслүүдээр) stacked diffs хэлбэрээр ашигладаг байсан уг концепцыг одоо GitHub платформ шууд өөртөө нэгтгэж байна.
Жишээ нь, хэрэглэгчийн баталгаажуулалт (Authentication) хөгжүүлэхэд дараах байдлаар шаталсан гинжин хэлхээ үүснэ:
main
└── feature/db-schema (PR #1: Өгөгдлийн сангийн хүснэгт)
└── feature/auth-api (PR #2: API endpoints & логик)
└── feature/auth-ui (PR #3: Frontend интерфэйс)
Багийн гишүүд PR #1-ийг нягталж байх хооронд та PR #2 болон PR #3 дээр ажлаа зогсолтгүй үргэлжлүүлж болно. Хянагч (reviewer) нь 2,000 мөрийг нэг дор уншиж тархиа гашилгахгүй, давхарга бүрийг 200–300 мөрийн цэвэрхэн diff-тэйгээр тус тусад нь батлах боломжтой.
Гол боломжууд ба gh-stack хэрэгсэл
GitHub уг шинэчлэлтээрээ зөвхөн вэб интерфэйс өөрчлөөд зогсохгүй хөгжүүлэгчийн терминал дээрх ажлыг бүрэн автоматжуулжээ.
1. gh-stack CLI Өргөтгөл
GitHub CLI дээр дараах тушаалаар суулган ашиглана:
gh extension install github/gh-stack
gh stack init: Тухайн репозиторт стекийн бүтцийг эхлүүлж, эхний branch-ийг үүсгэнэ.gh stack add <branch-name>: Өмнөх ажлын үр дүн дээр суурилсан дараагийн давхарга branch-ийг автоматаар нэмнэ.gh stack submit: Бүх хамааралтай branch-уудаар нь холбоост PR-уудыг автоматаар үүсгэнэ.
2. Ухаалаг Rebase & Синхрончлол
Хэрэв таны доод талын PR-д (жишээ нь feature/db-schema) шүүмжийн дагуу засвар орвол дээр нь суурилсан бүх branch-ууд (feature/auth-api, feature/auth-ui) автоматаар rebase хийгдэж, зөрчилгүй синхрончлогдоно.
3. Нэгдсэн Stack Map ба One-Click Merge
GitHub вэб дээр тухайн PR-ийн дээр болон доор ямар салбарууд байгааг харуулсан интерактив "Stack Map" харагдана. Бүх шалгалтууд амжилттай дууссан үед нийт стекийг нэг л товчлуур даран main руу squashed/rebased merge хийх боломжтой.
AI Агентуудад зориулсан хувьсгал: gh-stack skill
Энэхүү шинэчлэлийн хамгийн анхаарал татсан хэсэг нь AI агентуудтай ажиллах загвар юм. Кодер агентууд ихэнхдээ өгөгдсөн том даалгаврыг нэг аварга commit болгон гаргадаг сул талтай байдаг.
GitHub-ээс гаргасан агент чадвар (skill)-ийг суулгаснаар:
gh skill install github/gh-stack
Copilot CLI болон агент системүүд аливаа даалгаврыг өөрөө логик бүтцээр нь жижиглэн хувааж, олон шатлалт PR-ууд болгон үүсгэдэг болжээ. Ингэснээр инженерт AI-ийн бичсэн архитектур, тест, хэрэгжүүлэлт тус бүрийг алхам алхмаар нь хянах таатай орчин бүрдэж байна.
Хөгжүүлэгчдэд юу өөрчлөгдөх вэ?
- Review хийх хугацаа эрс багасна: Жижиг, тодорхой цар хүрээтэй diff-ийг багийнхан маш түргэн шалгаж дуусгана.
- Context Switching багасна: PR-аа шалгуулах гэж хүлээн сул зогсох, эсвэл хамааралгүй өөр branch руу үсчих шаардлагагүй.
- AI кодтой ажиллах аюулгүй байдал сайжирна: Аварга том хар хайрцаг мэт кодоос татгалзаж, баталгаажсан давхаргуудаар кодын сангаа өргөтгөх боломжтой.
Stacked PRs функц одоогоор нийт GitHub хэрэглэгчдэд нээлттэй туршигдаж байгаа тул өөрийн репозитор дээр gh stack ашиглан одооноос туршиж үзэх боломжтой.
Эх сурвалж: GitHub Changelog & GitHub Engineering Blog
Сэтгэгдэл
Ачаалж байна...