نسّق مدخلاً وفق Keep a Changelog حسب نوع التغيير
حوّل بيانات الإصدار المنظمة إلى مدخل متسق وفق Keep a Changelog من دون ترتيب العناوين والنقاط يدوياً.
شغّل الأداة مجانًا
أدخل الإصدار والتاريخ وقوائم العناصر المضافة أو المعدلة أو المصححة أو المحذوفة. تحافظ الأداة على ترتيب الأوصاف، وتحذف الأقسام الفارغة، وتعيد Markdown جاهزاً للإدراج. تناسب النتيجة الحتمية نصوص الإصدار البرمجية والتسليم المستمر وأدوات المستودعات والمراجعة التحريرية.
جهّز معلومات الإصدار قبل التنسيق
ابدأ برقم الإصدار وتاريخه، ثم صنّف كل تغيير مهم ضمن المضاف أو المعدل أو المصحح أو المحذوف. اكتب وصفاً موجزاً ومتكاملاً يمكن فهمه من دون الرجوع إلى تذاكر داخلية. لا تخترع الأداة الملاحظات ولا تلخصها، بل تحافظ على صياغتك وترتيب العناصر. يمكن إغفال المجموعات الفارغة. يجب ألا يكون الإصدار أو التاريخ فارغاً، ويستحسن استخدام YYYY-MM-DD للتاريخ حتى يسهل قراءته وفرزه في مختلف المناطق.
تعرّف إلى بنية Markdown الناتجة
تبدأ النتيجة بعنوان من المستوى الثاني يحتوي الإصدار بين قوسين مربعين ثم التاريخ. لا تظهر بعده إلا المجموعات غير الفارغة، وبترتيب المضاف ثم المعدل ثم المصحح ثم المحذوف. يحصل كل قسم على عنوان من المستوى الثالث وقائمة نقطية. تُزال المسافات الطرفية وعلامة التعداد الموجودة في البداية لتجنب التكرار. ينتهي حقل changelog بسطر جديد، وتنتج المدخلات الصالحة المتطابقة النص نفسه دائماً في المتصفح وعبر API.
أدرج المنسّق في مسار الإصدار
استخدم الأداة بعد اعتماد محتوى الملاحظات وقبل إدراجه في ملف المستودع. يستطيع نص برمجي جمع الأوصاف المنظمة وطلب تنسيقها، ثم عرض النتيجة للمراجعة أو تمريرها إلى خطوة مستقلة لتحديث الملف. لا تقرأ هذه القدرة الالتزامات أو التذاكر، ولا تعدل الملفات، ولا تختار الإصدار الدلالي. راجع المدخل ضمن سجل التغييرات الكامل إذا كان مشروعك يستخدم عناوين أو روابط مخصصة. تبلغ كلفة كل طلب عبر API مقدار $0.002.
حالات الاستخدام
توحيد أتمتة الإصدارات
حوّل البيانات المنظمة إلى Markdown ثابت قبل تحديث سجل التغييرات.
إعداد الملاحظات للمراجعة
قدّم مدخلاً مرتباً كي تركز المراجعة على الدقة والوضوح.
توحيد عدة مستودعات
طبّق العناوين والنقاط نفسها على الخدمات ذات البنية المشتركة.
الأسئلة الشائعة
ما الكلفة؟
تبلغ كلفة كل طلب API مقدار $0.002.
ما أنواع التغييرات المدعومة؟
تُدعم مجموعات المضاف والمعدل والمصحح والمحذوف بهذا الترتيب.
ماذا يحدث للمجموعة الفارغة؟
يُحذف عنوانها، فلا تظهر إلا الأقسام التي تحتوي تغييرات.
هل تنشئ ملاحظات من الالتزامات؟
لا. تنسّق الأوصاف المقدمة ولا تفحص الالتزامات أو التذاكر أو المستودعات.
هل يجب اتباع الإصدار الدلالي؟
لا. يجب ألا يكون الإصدار فارغاً، مع الحفاظ على النظام الذي تستخدمه.
هل تعدّل ملف سجل التغييرات؟
لا. تعيد مدخل Markdown، أما إدراجه في الملف فهو خطوة مستقلة.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev2/changelog-entry-format \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"version":"2.4.0","date":"2026-07-25"}'const res = await fetch("https://api.kit.forhosting.com/dev2/changelog-entry-format", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"version": "2.4.0",
"date": "2026-07-25"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/changelog-entry-format",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"version": "2.4.0",
"date": "2026-07-25"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/changelog-entry-format", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"version":"2.4.0","date":"2026-07-25"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"version":"2.4.0","date":"2026-07-25"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/changelog-entry-format", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"version": "2.4.0",
"date": "2026-07-25"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.changelog_entry_format",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |