Skip to content

Repository files navigation

Git-CMSG - ابزار پیام‌های کامیت گیت

معرفی

Git-CMSG یک ابزار خط فرمان هوشمند برای ایجاد پیام‌های کامیت ساختاریافته و استاندارد در گیت است. این ابزار به شما کمک می‌کند تا پیام‌های کامیت خود را بر اساس الگوی Conventional Commits ایجاد کنید.

با استفاده از Git-CMSG، می‌توانید پیام‌های کامیت خود را به شکلی ساده، یکپارچه و قابل پیگیری بنویسید. این ابزار با پشتیبانی از زبان فارسی و انگلیسی، فرآیند نوشتن کامیت‌های استاندارد را برای توسعه‌دهندگان فارسی‌زبان نیز تسهیل می‌کند.

ویژگی‌ها

  • ساختار استاندارد: پیام‌های کامیت بر اساس قالب Conventional Commits ایجاد می‌شوند
  • پشتیبانی چند زبانه: پشتیبانی کامل از زبان‌های فارسی و انگلیسی
  • رابط کاربری تعاملی: راهنمایی گام به گام کاربر برای ایجاد پیام کامیت
  • پیشنهادهای هوشمند: تحلیل فایل‌های تغییر یافته و ارائه پیشنهاد برای نوع و محدوده کامیت
  • قابلیت ویرایش: امکان ویرایش پیام نهایی در ویرایشگر خارجی
  • لیست فایل‌ها: افزودن خودکار لیست فایل‌های تغییر یافته در متن کامیت
  • پشتیبانی از شماره ایشوها: استخراج خودکار شماره ایشوها از نام شاخه

نصب

استفاده از پکیج‌های نصبی

برای راحتی بیشتر، می‌توانید از پکیج‌های نصبی آماده استفاده کنید:

لینوکس (دبیان/اوبونتو)

# دانلود فایل .deb از بخش Releases
sudo dpkg -i git-cmsg_0.1.0_amd64.deb

لینوکس (فدورا/RHEL)

# دانلود فایل .rpm از بخش Releases
sudo rpm -i git-cmsg-0.1.0-1.x86_64.rpm

macOS

دانلود فایل .pkg از بخش Releases و نصب با دابل کلیک

نصب از کد منبع

ابتدا مخزن را کلون کنید:

git clone https://github.com/ArashZich/git-cmsg
cd git-cmsg

نصب وابستگی‌ها:

pip install -r requirements.txt

برای استفاده راحت‌تر می‌توانید یک ایلیاس در شل خود تعریف کنید:

# اضافه کردن به .bashrc یا .zshrc
alias git-cmsg="python3 /path/to/git-cmsg/git_cmsg.py"

نحوه استفاده

  1. ابتدا تغییرات خود را با git add به Staging Area اضافه کنید:

    git add .
  2. سپس ابزار را اجرا کنید:

    git-cmsg
  3. مراحل زیر را دنبال کنید:

    • انتخاب زبان (فارسی یا انگلیسی)
    • انتخاب نوع تغییر (feat، fix، docs و...)
    • نوشتن خلاصه کامیت
    • تعیین محدوده (scope) تغییرات (اختیاری)
    • افزودن توضیحات کامل (اختیاری)
    • اضافه کردن شماره ایشوهای مرتبط (اختیاری)
    • تایید پیام نهایی
  4. پس از تایید، پیام کامیت به گیت ارسال می‌شود.

نمونه استفاده در ترمینال

$ cd my-project
$ git add .
$ git-cmsg

Choose language (en/fa): fa
زبان مورد نظر را انتخاب کنید (fa/en): fa
ادامه فرایند کامیت با زبان fa.

تغییرات آماده کامیت:
- src/components/Button.js
- src/components/Input.js
- src/styles/theme.css
------------------------------

نوع تغییر چیست؟ (Type)
پیشنهاد: style (استایل کد)
1. feat (قابلیت جدید)
2. fix (رفع اشکال)
3. chore (عمومی/نگهداری)
4. refactor (بازآرایی کد)
5. docs (مستندات)
6. style (استایل کد)
7. test (تست ها)
> 6

Type: style
خلاصه کامیت؟ (Subject)
پیشنهاد: update style formatting
راهنما: با فعل امری شروع شود، حداکثر ۵۰-۷۲ حرف.
> بروزرسانی استایل دکمه ها و ورودی ها

Type: style
Subject: بروزرسانی استایل دکمه ها و ورودی ها
محدوده تغییر چیست؟ (Scope - اختیاری)
پیشنهاد: components
محدوده: بخشی از کد که تغییر کرده (مثال: 'ورود'، 'رابط کاربری')
پیشنهادات: components, src, src/components
(برای رد شدن، خالی بگذارید و Enter بزنید)
> components

Type: style
Subject: بروزرسانی استایل دکمه ها و ورودی ها
Scope: components
توضیحات کامل؟ (Body - اختیاری)
راهنما: چرایی تغییر، جزئیات مهم فنی، تفاوت با رفتار قبلی.
(برای پایان، Alt+Enter یا Esc سپس Enter بزنید)
> تغییر استایل دکمه‌ها و ورودی‌ها برای مطابقت بهتر با طراحی جدید.
> اضافه کردن border-radius به همه المان‌ها و تغییر پالت رنگی.

Type: style
Subject: بروزرسانی استایل دکمه ها و ورودی ها
Scope: components
Body: (skipped)
Issues مرتبط؟ (اختیاری)
برای لینک به تیکت‌ها از فرمت‌هایی مانند 'Closes #123' استفاده کنید
پیشنهادات: #42
(برای رد شدن، خالی بگذارید و Enter بزنید)
راهنما: مثال: Closes #123, Fixes #456
> Closes #42

پیش‌نمایش کامیت مسیج:
------------------------------
style(components): بروزرسانی استایل دکمه ها و ورودی ها

تغییر استایل دکمه‌ها و ورودی‌ها برای مطابقت بهتر با طراحی جدید.
اضافه کردن border-radius به همه المان‌ها و تغییر پالت رنگی.

فایل‌های تغییر یافته:
- src/components/Button.js
- src/components/Input.js
- src/styles/theme.css

Closes #42
------------------------------

تایید می‌کنید؟ (y=بله, n=خیر, e=ویرایش دستی): y
کامیت با موفقیت انجام شد!

ساختار کامیت‌ها

ساختار کامیت‌های تولید شده به شکل زیر است:

type(scope): subject

body

Footer / Issues
  • Type: نوع تغییر (مانند feat، fix، docs و...)
  • Scope: محدوده تغییر (بخشی از کد که تغییر کرده است)
  • Subject: خلاصه کوتاه از تغییرات
  • Body: توضیحات کامل و دلیل تغییرات
  • Footer: اطلاعات تکمیلی (مانند شماره ایشوها، Breaking Changes و...)

مثال‌ها

نمونه‌ای از خروجی این ابزار:

feat(auth): implement user login functionality

This commit adds the user authentication system with JWT tokens.
It includes form validation and secure password hashing.

Files changed:
- src/auth/login.js
- src/auth/validate.js
- src/components/LoginForm.js

Closes #123, Ref #456

ساختار پروژه

  • git_cmsg.py: فایل اصلی برنامه
  • git_utils.py: توابع کار با گیت
  • ui.py: رابط کاربری و تعامل با کاربر
  • messages.py: پیام‌های قابل ترجمه برنامه
  • message_formatter.py: قالب‌بندی پیام کامیت نهایی
  • change_analyzer.py: تحلیل تغییرات و ارائه پیشنهادات هوشمند

مشارکت در توسعه

مشارکت‌ها را با کمال میل می‌پذیریم! برای مشارکت:

  1. یک فورک از پروژه ایجاد کنید
  2. یک برنچ برای ویژگی جدید ایجاد کنید (git checkout -b feature/amazing-feature)
  3. تغییرات خود را کامیت کنید (با استفاده از همین ابزار!)
  4. برنچ خود را به مخزن اصلی پوش کنید (git push origin feature/amazing-feature)
  5. یک درخواست Pull Request ایجاد کنید

برنامه‌های آینده

  • پشتیبانی از زبان‌های بیشتر
  • پیشنهادات هوشمندتر بر اساس یادگیری از الگوهای کامیت قبلی
  • افزودن پلاگین برای ادغام با ویرایشگرهای کد
  • پشتیبانی از قلاب‌های (hooks) گیت
  • افزودن تست‌های خودکار

مجوز

این پروژه تحت مجوز GNU General Public License v3.0 منتشر شده است. برای اطلاعات بیشتر فایل LICENSE را مطالعه کنید.

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages