عنوان:

‫استفاده از Husky با CSharpier برای فرمت خودکار کد و اعمال الگوی پیام کامیت


نویسنده: وحید نصیری
تاریخ: ۱۴۰۳/۱۲/۱۸ ۰۸:۱۵
آدرس: www.dntips.ir
هدف:
  • خودکارسازی فرمت کد قبل از کامیت (commit).
  • اعمال یک الگوی خاص برای پیام کامیت (commit).

ابزارها:
Husky.NET:
  • وظایف را با هوک‌های گیت (Git hooks) (pre-commit، commit-msg) یکپارچه می‌کند.
  • CSharpier را برای فرمت‌بندی (pre-commit) اجرا می‌کند.
  • فرمت پیام کامیت (commit) را اعمال می‌کند (commit-msg).
CSharpier:
  • یک فرمت‌کننده کد C# با تنظیمات از پیش تعیین شده برای یک سبک کد ثابت است.
  • به عنوان یک ابزار دات نت (dotnet) نصب می‌شود.
  • از طریق فایل های .csharpierrc، .csharpierrc.json، .csharpierrc.yaml یا .editorconfig پیکربندی می‌شود.

پیکربندی:
  • Husky.NET با استفاده از task-runner.json برای تعریف وظایف و هوک‌های گیت (Git hooks) مرتبط پیکربندی می‌شود.
  • هوک pre-commit، CSharpier را اجرا می‌کند.
  • هوک commit-msg یک اسکریپت بش (bash) را برای اعتبارسنجی پیام‌های کامیت (commit) در برابر استانداردهای کامیت قراردادی اجرا می‌کند.

اعمال پیام کامیت:
  • از یک اسکریپت بش (bash) برای بررسی پیام‌های کامیت (commit) در برابر یک عبارت منظم تعریف شده استفاده می‌کند.
  • استانداردهای کامیت قراردادی (به عنوان مثال، feat(auth): add login functionality) را اعمال می‌کند.

راه اندازی:
  • پس از کلون کردن (clone) مخزن، dotnet tool restore و dotnet husky install را برای تنظیم ابزارها و هوک‌های گیت (Git hooks) اجرا کنید.

نکات اضافی:
  • کد C# نیز می‌تواند در هوک‌های گیت (Git hooks) استفاده شود.

دستورات:
ایجاد فایل مانیفست ابزار (tool manifest): dotnet new tool-manifest
نصب CSharpier به عنوان یک ابزار: dotnet tool install csharpier
اجرای CSharpier برای فرمت‌بندی همه فایل‌های C#: به صورت dotnet csharpier .
نصب Husky.NET به عنوان یک ابزار: dotnet tool install husky
یکپارچه سازی هوک‌های گیت (Git hooks) با Husky.NET: به صورت dotnet husky install
افزودن هوک pre-commit: به صورت "'dotnet husky add pre-commit -c "echo 'Hi Husky
افزودن هوک commit-msg: به کمک "'dotnet husky add commit-msg -c "echo 'Hi Husky
اجرای وظایف در گروه pre-commit: به صورت dotnet husky run --group pre-commit
اجرای وظایف در گروه commit-msg: توسط dotnet husky run --group commit-msg -a $1
بازیابی ابزارهای دات نت (dotnet): dotnet tool restore



مشاهده مطلب اصلی