میں نے ایک AI Git Commit Message Generator بنایا

میں پہلے "fixed bug" یا "updated stuff" جیسے برے commit messages لکھتا تھا۔ اس سے میرے pull requests الجھ جاتے تھے۔ میں نے AI کا استعمال کرتے ہوئے اسے خودکار (automate) کرنے کا فیصلہ کیا۔ میں اپنے code diffs سے صاف ستھرے اور conventional commit messages تیار کرنا چاہتا تھا۔

یہ میری سوچ سے زیادہ مشکل تھا۔ ایک سادہ prompt کام نہیں کر رہا تھا۔

ابتدائی کوششیں کئی وجوہات کی بنا پر ناکام ہوئیں:

  • AI مختصر لائنوں کے بجائے طویل پیراگراف لکھ رہا تھا۔
  • یہ مطلوبہ "feat:" یا "fix:" prefixes کو نظر انداز کر رہا تھا۔
  • یہ ایسی خصوصیات (features) کے بارے میں فرضی باتیں کرتا تھا جو code میں موجود ہی نہیں تھیں۔
  • Local models بہت سست تھے اور شاعرانہ، غیر ضروری انداز میں لکھتے تھے۔

آخر کار میں نے ایک ہائبرڈ سسٹم بنایا جو کام کرتا ہے۔ یہ وہ ڈھانچہ ہے جو میں استعمال کرتا ہوں:

  • Type Classification: میں میسج لکھنے سے پہلے ماڈل سے کہتا ہوں کہ وہ feat، fix، یا chore جیسا کوئی type منتخب کرے۔
  • Context Truncation: میں diff کی صرف پہلی 250 لائنیں بھیجتا ہوں۔ اس سے پیسے بچتے ہیں اور توجہ مرکوز رہتی ہے۔
  • Validation: میں output چیک کرنے کے لیے regex کا استعمال کرتا ہوں۔ اگر میسج غلط ہو تو اسکرپٹ دوبارہ کوشش کرتا ہے۔
  • Low Temperature: میں temperature کو 0.2 پر سیٹ کرتا ہوں۔ اس سے output مستقل مزاج اور بورنگ ہو جاتا ہے۔ logs کے لیے بورنگ ہونا اچھا ہے۔

میں automatic commit hooks استعمال نہیں کرتا۔ AI غلطیاں کرتا ہے۔ میں اسکرپٹ کو git alias کے طور پر چلاتا ہوں۔ یہ ایک میسج تجویز کرتا ہے، اور میں commit کرنے سے پہلے اس کا جائزہ لیتا ہوں۔ ایک خراب git history سے بچنے کے لیے دستی جائزہ (manual review) بہترین ضمانت ہے۔

تین اسباق جو میں نے سیکھے:

  • Token limits آپ کی دشمن ہیں۔ بڑے diffs آپ کا بجٹ یا آپ کا prompt خراب کر دیں گے۔
  • Validation لازمی ہے۔ اس کے بغیر آپ کو بے معنی نتائج ملیں گے۔
  • Speed اہمیت رکھتی ہے۔ میں GPT-4o-mini استعمال کرتا ہوں کیونکہ یہ تیز اور سستا ہے۔

اگر آپ حساس (sensitive) code پر کام کرتے ہیں، تو اپنے diffs کسی بیرونی API کو نہ بھیجیں۔ اس کے بجائے ایک local model استعمال کریں۔

آپ اپنے commit messages کو کیسے ہینڈل کرتے ہیں؟ کیا آپ AI استعمال کرتے ہیں یا انہیں خود لکھتے ہیں؟

Source: https://dev.to/__c1b9e06dc90a7e0a676b/i-built-a-git-commit-message-generator-with-ai-heres-what-i-learned-2534