gitpack: تغییرات شلوغ رو به کامیتهای مرتب و آماده بازبینی تبدیل کن
خلاصهٔ کاملتر
gitpack یه ابزار CLI برای Node.js هست که سازندهش، Arindam Majumder، میگه برای یه مشکل سختتر از نوشتن پیام کامیت ساخته شده. به گفته README، دردسر اصلی گیت اینه که کار رو طوری بستهبندی کنی که تاریخچه برنچ معنیدار باشه و PR راحت بازبینی بشه. gitpack تغییرات دستکاریشده یه برنچ رو میخونه، فایلهای مرتبط رو کنار هم میذاره و پیشنهاد میده که چندتا کامیت جدا بزنی.
دستور اصلیش gitpack plan ـه. فایلها رو به کامیتهای منطقی گروهبندی میکنه و جفتهای مرتبط مثل foo.ts و foo.test.ts رو کنار هم نگه میداره. برای هر گروه عنوان و دلیل مینویسه و مسیرهای پرریسک مثل auth، schema، env یا CI رو علامت میزنه. خروجیش هم میتونه متن معمولی باشه هم JSON.
بعدش gitpack apply کامیتها رو یکییکی نشونت میده و میتونی پیام رو قبول کنی، ویرایشش کنی، از AI بخوای دوباره بنویسه یا اون گروه رو رد کنی تا تغییراتش توی working tree بمونه. قبل از اعمال، وضعیت برنچ ذخیره میشه تا با gitpack undo بتونی برگردی. gitpack pr هم پیشنویس PR با عنوان، خلاصه، برنامه تست و نکات ریسک آماده میکنه و اگه قالب PR توی ریپو باشه، همون رو پر میکنه.
نکته مهم طراحیش اینه که برنامهریزی کامیتها قطعی هست، یعنی با قانونهای ثابت انجام میشه و به مدل وابسته نیست. AI فقط اسمگذاری و توضیحها رو بهتر میکنه و اگه خاموش یا در دسترس نباشه، ابزار با پیشنهادهای سادهتر ادامه میده. ارائهدهنده پیشفرض Nebius Token Factory با مدل moonshotai/Kimi-K2.5 هست، ولی با متغیر GITPACK_BASE_URL میتونی هر API سازگار با OpenAI رو جاش بذاری.
توی README یه لایه دیگه هم معرفی شده که وضعیت CI، کامنتهای بازبینها و چکهای شکستخورده رو بدون باز کردن GitHub توی ترمینال نشون میده، مثل gitpack status و gitpack view checks. ولی طبق بخش Status خود پروژه، فعلاً فقط plan، apply و pr پیاده شدن و بقیه دستورها توی برنامه بعدیان.
نکات کلیدی:
- با npm install -g @arindam1729/gitpack نصب میشه یا با npx بدون نصب اجرا میشه
- فعلاً فقط دستورهای plan، apply و pr پیادهسازی شدن
- AI بهصورت پیشفرض روشنه و با --no-ai یا GITPACK_AI=false خاموش میشه
- مدل پیشفرض Kimi K2.5 روی Nebius Token Factory هست و با GITPACK_MODEL عوض میشه
- بخشهای PR، بازبینی و CI به ابزار gh نیاز دارن ولی کار محلی بدون اون هم انجام میشه




