اكتب رسالة commit واضحة من تغييرات الكود مباشرة
أداة توليد رسالة commit تقرأ فرق التغييرات الذي تلصقه من Git وتنتج عنوانًا مختصرًا ووصفًا يشرح ماذا تغيّر ولماذا، بصياغة واضحة ومتسقة بين كل أعضاء الفريق. تناسب من يريد سجل تغييرات مرتب دون التوقف طويلًا عند صياغة كل رسالة، وتعمل عبر الويب أو مربوطة بخط عمل آلي عبر API.
شغّلها أونلاين
شغّل هذه المهمة على خوادمنا باستخدام حسابك. الأدوات المجانية تعمل داخل متصفحك، أما هذه فتُخصم من رصيدك في KIT حسب السعر الموضّح أعلاه.
من فرق التغييرات إلى رسالة جاهزة
تلصق فرق التغييرات (diff) الناتج عن أمر git diff، فتقرأ الأداة الأسطر المضافة والمحذوفة وتقترح عنوانًا مختصرًا يصف جوهر التغيير، مع وصف أطول يشرح التفاصيل عند الحاجة. الصياغة تتبع أسلوبًا متسقًا — فعل الأمر أولًا ثم موضوعه، كما يفعل مطوّرو المشاريع المنظمة — بدل رسائل غامضة من كلمة واحدة مثل «تعديلات» لا تفيد أحدًا يراجع السجل لاحقًا. يمكن أيضًا تحديد نوع التغيير — إصلاح خطأ، ميزة جديدة، إعادة هيكلة — فتضيفه الأداة إلى العنوان إن رغبت، وهو ما يسهّل لاحقًا فرز السجل آليًا حسب نوع كل تغيير.
توحيد الأسلوب بين أعضاء الفريق
حين يكتب كل عضو في الفريق رسائل commit بأسلوبه الخاص، يصبح سجل المشروع مزيجًا صعب القراءة بعد أشهر قليلة. تنتج الأداة رسائل بصيغة متسقة بصرف النظر عمن يستخدمها، فيسهل على أي عضو لاحقًا فهم تاريخ المشروع بمجرد قراءة السجل، دون العودة لسؤال زميل غادر الفريق منذ مدة عن سبب تعديل قديم غامض الصياغة. هذا التوحيد يفيد أيضًا الأدوات الآلية التي تولّد ملاحظات إصدار (changelog) من سجل commits تلقائيًا، فتحتاج صياغة متسقة لتعمل تلقائيًا دون أخطاء أو تدخل يدوي إضافي.
السعر لكل commit
$0.003 لكل طلب زائد $0.0135 لكل فرق تغييرات (diff) تُحلَّل، أي نحو $0.0165 لرسالة commit واحدة، دون اشتراك شهري ولا حد أدنى للاستخدام. توليد رسائل لعشرة commits متتالية قبل دفعها يكلف نحو $0.17 إجمالًا. الدفع عبر PayPal، والتواصل المباشر عبر واتساب أو البريد متاح دائمًا. مقارنة بالوقت الذي يستغرقه مطوّر للتوقف والتفكير في صياغة كل رسالة يوميًا، الفارق التراكمي عبر أسابيع العمل يستحق هذا السعر الرمزي.
أين تدخل ضمن مسارك
تفيد الأداة من الويب مباشرة قبل كل commit فردي، أو مربوطة عبر الـAPI ضمن خطاف (hook) محلي يقترح صياغة الرسالة تلقائيًا لحظة الحفظ. تفيد خصوصًا نهاية يوم عمل طويل حين يتراكم تعديل واسع وتصعب صياغة عنوان دقيق يلخصه بإنصاف، أو عند مراجعة سجل مشروع قديم يحتاج توحيدًا لأسلوب رسائله المبعثرة قبل إصدار نسخة جديدة. يفيد أيضًا فريقًا يستقبل مطوّرًا جديدًا لم يتعلم بعد عرف الفريق في صياغة الرسائل، فتوحّد الأداة أسلوبه مع البقية منذ أول commit له بدل تصحيحات متكررة من زملائه.
حالات الاستخدام
توحيد أسلوب فريق صغير
فريق تطوير من ثلاثة أشخاص في شركة الخليج الرقمية يوحّد أسلوب رسائل commit بينهم بعد شهور من رسائل متضاربة الصياغة.
سجل واضح لمشروع طويل
مطوّر مستقل في الرياض يوثّق تاريخ مشروعه الممتد لعامين برسائل واضحة تسهّل عليه الرجوع لأي قرار قديم دون فتح الملفات نفسها.
مراجعة سجل قبل إصدار نسخة
قبل إصدار نسخة جديدة، تراجع مؤسسة النخيل للمقاولات سجل التغييرات وتولّد صياغة موحدة لملخص التغييرات المرسل للعملاء.
الأسئلة الشائعة
هل تحتاج الأداة الوصول إلى مستودع Git الكامل؟
لا، تكتفي بفرق التغييرات (diff) الذي تلصقه أو ترسله؛ لا اتصال بمستودعك الكامل في أي خطوة.
هل تُحفظ الشيفرة المرسلة ضمن الفرق؟
لا، تُستخدم لتوليد الرسالة فقط ولا تُحفظ بعد اكتمال الطلب.
بأي لغة تُكتب الرسالة الناتجة؟
تحدّد اللغة عند الطلب؛ الافتراض الشائع بين المطورين الإنجليزية، لكن يمكن طلب الرسالة بالعربية أيضًا.
كم سعر توليد رسالة واحدة؟
نحو $0.0165 للرسالة الواحدة: $0.003 للطلب زائد $0.0135 للفرق (diff).
هل تتبع الرسائل صيغة Conventional Commits؟
يمكن طلب هذه الصيغة تحديدًا (مثل feat: أو fix:) عند الحاجة، أو ترك الأداة تختار الصياغة الأنسب للتغيير.
هل أحتاج حسابًا لاستخدام الأداة؟
لا يوجد تسجيل دخول ولا حساب اليوم؛ الشراء مباشر عبر PayPal أو بالتواصل معنا.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev/commit-message \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/dev/commit-message", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/commit-message",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/commit-message", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/commit-message", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"input": "…"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.commit_message",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
422 | task_failed | لم تنجح معالجة المهمة، ولن تُحتسب عليك؛ أعد المحاولة أو راسلنا مباشرة. |