هوک های پیش کامیت چیست و چگونه در پروژه های فلاتر استفاده کنیم؟
سیستمهای کنترل نسخه (VCS) مانند Git ابزارهای ضروری برای توسعه نرمافزار هستند که به توسعهدهندگان اجازه میدهند تغییرات کد خود را ردیابی کنند و با دیگران همکاری کنند. یکی از ویژگی های مهم Git امکان استفاده از Hook های Pre-Commit است که اسکریپت ها یا برنامه هایی هستند که قبل از انجام یک commit به طور خودکار اجرا می شوند. قلابهای Pre-commit را میتوان برای انجام بررسیها و اعتبارسنجیهای مختلف در مورد تغییرات کد انجام شده، اطمینان از مطابقت با استانداردها یا الزامات خاص استفاده کرد.
در این مقاله، ما در مورد اینکه هوکهای pre-commit چیست، چرا مفید هستند و نحوه پیکربندی آنها در پروژه Flutter بحث خواهیم کرد. ما همچنین چند نمونه از قلابهای پیش تعهد را که میتوانید در پروژههای خود استفاده کنید، مورد بحث قرار خواهیم داد.
قلاب Pre-Commit چیست؟
Hook Pre-Commit یک اسکریپت یا برنامه است که قبل از انجام یک commit به VCS به طور خودکار اجرا می شود. هدف قلاب پیشتعهد بررسی تغییرات انجام شده برای اطمینان از مطابقت با استانداردها یا الزامات خاص است. به عنوان مثال، یک قلاب پیشفرض ممکن است برای اجرای دستورالعملهای سبک کد، جلوگیری از تعهد برخی فایلها، یا بررسی خطاهای نحوی و سایر مسائل استفاده شود.
چرا از Pre-Commit Hooks استفاده کنیم؟
قلاب های Pre-commit چندین مزیت را برای تیم های توسعه نرم افزار ارائه می دهند:
- سازگاری: قلابهای Pre-commit میتوانند استانداردها و شیوههای کدگذاری یکسانی را در کل تیم اعمال کنند و اطمینان حاصل کنند که همه کدها از دستورالعملهای یکسانی پیروی میکنند.
- پیشگیری از خطا: با اجرای بررسیهای خودکار قبل از انجام تعهدات، هوکهای پیشمتعهد میتوانند خطاها و سایر مسائل را در مراحل اولیه توسعه شناسایی کنند و از وارد شدن آنها به پایگاه کد جلوگیری کنند.
- صرفه جویی در زمان: قلاب های Pre-commit می توانند کارهای وقت گیر مانند قالب بندی و قالب بندی کد را خودکار کنند و توسعه دهندگان را آزاد بگذارند تا روی کارهای مهم تر تمرکز کنند.
- همکاری: قلابهای Pre-Commit میتوانند به اطمینان حاصل شوند که همه اعضای تیم از تغییرات کد آگاه هستند و میتوانند آنها را قبل از تعهد بررسی کنند.
پیکربندی قلابهای Pre-Commit در پروژه Flutter:
پیکربندی یک هوک پیش از کامیت در پروژه فلاتر شامل ایجاد یک اسکریپت است که قبل از انجام یک commit اجرا می شود و سپس پیکربندی Git برای اجرای خودکار آن اسکریپت. در اینجا مراحل پیکربندی یک قلاب پیش ارتکاب در پروژه فلاتر آمده است:
مرحله 1: یک اسکریپت Hook Pre-Commit ایجاد کنید
اولین گام این است که یک اسکریپت hook pre-commit ایجاد کنید که قبل از هر commit به طور خودکار اجرا شود. این اسکریپت را می توان به هر زبان اسکریپتی نوشت، اما در این مقاله از Bash استفاده می کنیم.
فایلی به نام pre-commit (بدون هیچ پسوند فایلی چون از bash استفاده می کنیم) در دایرکتوری git/hooks/ پروژه خود ایجاد کنید. اگر دایرکتوری git/hooks/ وجود ندارد، آن را ایجاد کنید.
در اینجا یک نمونه از اسکریپت هوک پیش از ارتکاب است که اجرا می شود flutter analyze
و dart analyze
برای بررسی خطاهای کد:
#!/bin/bash
# Run Flutter analyze and check for errors
if ! output=$(flutter analyze); then
echo "COMMIT REJECTED: Flutter analyze found the following errors:"
echo "$output"
exit 1
fi
# Run Dart analyze and check for errors
if ! output=$(dart analyze); then
echo "COMMIT REJECTED: Dart analyze found the following errors:"
echo "$output"
exit 1
fi
# If we made it this far, the commit is allowed
exit 0
این اسکریپت اجرا می شود flutter analyze
و dart analyz
e برای بررسی خطا در کد. اگر هر یک از دستورات خطایی را تشخیص دهد، commit رد می شود.
مرحله 2: اسکریپت را اجرایی کنید
در مرحله بعد، باید اسکریپت را قابل اجرا کنید. برای انجام این کار، یک ترمینال را باز کنید و به دایرکتوری پروژه Flutter خود بروید. سپس دستور زیر را اجرا کنید:
chmod +x pre-commit
این دستور می دهد pre-commit
مجوزهای اجرایی اسکریپت
مرحله 3: Git را برای اجرای اسکریپت پیکربندی کنید
مرحله آخر پیکربندی Git برای اجرای خودکار اسکریپت hook pre-commit قبل از هر commit است. برای انجام این کار، به دایرکتوری پروژه Flutter خود در ترمینال بروید و دستور زیر را اجرا کنید:
cd .git/hooks
ln -s ../../pre-commit pre-commit
این دستور یک پیوند نمادین به اسکریپت pre-commit در دایرکتوری .git/hooks ایجاد می کند که Git از آن برای اجرای خودکار اسکریپت قبل از هر commit استفاده می کند.
اگر با موفقیت یک هوک pre-commit را در پروژه Flutter خود پیکربندی کرده باشید و اگر پایگاه کد شما دارای مشکلات تحلیلگر باشد، پیام خطایی دریافت خواهید کرد که نشان می دهد commit رد شده است.
خودشه! شما اکنون یک قلاب پیش ارتکاب را در پروژه Flutter خود پیکربندی کرده اید.
قلابهای Pre-commit ابزاری قدرتمند برای اطمینان از کیفیت و ثبات کد در پروژههای Flutter شما هستند. آنها را می توان برای اجرای استانداردهای کدگذاری، کشف خطاها و آسیب پذیری های امنیتی و خودکارسازی کارهای وقت گیر مورد استفاده قرار داد. با دنبال کردن مراحل ذکر شده در این مقاله، میتوانید به راحتی قلابهای pre-commit را در پروژههای خود پیکربندی کنید و گردش کار توسعه خود را بهبود بخشید.