इस प्रोजेक्ट के बारे में

AI Commits एक कमांड-लाइन उपकरण है जो आपके स्टेज किए गए परिवर्तनों से चुने गए AI प्रदाता का उपयोग करके Git कमिट संदेश उत्पन्न करता है। यह npm पर वितरित किया जाता है और इसके लिए Node.js v22 या नया संस्करण आवश्यक है। सेटअप वैश्विक स्थापना (`npm install -g aicommits`) के साथ शुरू होता है, उसके बाद `aicommits setup` चलाया जाता है, जो प्रदाता चयन, API कुंजी कॉन्फ़िगरेशन, मॉडल चयन, और पसंदीदा कमिट संदेश प्रारूप के माध्यम से मार्गदर्शन करता है। समर्थित प्रदाताओं में TogetherAI, OpenAI, Groq, xAI, OpenRouter, Ollama (स्थानीय), LM Studio (स्थानीय), और कोई भी कस्टम OpenAI-संगत एंडपॉइंट शामिल हैं। CI/CD उपयोग के लिए कॉन्फ़िगरेशन को `aicommits config set` के माध्यम से सीधे भी लिखा जा सकता है। सामान्य उपयोग `git add` के साथ फ़ाइलों को स्टेज करना और `aicommits` चलाना है। अज्ञात फ़्लैग `git commit` को अग्रेषित किए जाते हैं। उल्लेखनीय CLI विकल्पों में ट्रैक किए गए परिवर्तनों को स्टेज करने के लिए `--all`, कमिट करने के बजाय संदेश को कॉपी करने के लिए `--clipboard`, कई उम्मीदवार संदेश उत्पन्न करने के लिए `--generate`, विश्लेषण से फ़ाइलों को छोड़ने के लिए `--exclude`, बॉडी जोड़ने के लिए `--description`, प्रारूप चुनने के लिए `--type`, कस्टम निर्देशों के लिए `--prompt`, हुक को बायपास करने के लिए `--no-verify`, और पुष्टिकरण छोड़ने के लिए `--yes` शामिल हैं। एक `aic` उपनाम प्रदान किया गया है। पाँच कमिट संदेश प्रारूप उपलब्ध हैं: सादा, पारंपरिक, पारंपरिक+बॉडी, gitmoji, और विषय+बॉडी। कस्टम प्रॉम्प्ट भाषा, स्वर, या ध्यान को निर्देशित कर सकते हैं। एक `prepare-commit-msg` Git हुक को `aicommits hook install` के साथ स्थापित किया जा सकता है ताकि सामान्य `git commit` कॉल एक संदेश उत्पन्न करें जो समीक्षा के लिए आपके संपादक में खुलता है। कॉन्फ़िगरेशन क्रम में हल किया जाता है: कमांड-लाइन तर्क, पर्यावरण चर, कॉन्फ़िग फ़ाइल, फिर डिफ़ॉल्ट। सेटिंग्स में OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MODEL, प्रदाता, लोकेल, जनरेशन गिनती, टाइमआउट, अधिकतम-लंबाई, और प्रकार शामिल हैं। `aicommits config`, `aicommits config get`, `aicommits config set`, `aicommits model`, और `aicommits update` जैसे कमांड कॉन्फ़िगरेशन और अपग्रेड का प्रबंधन करते हैं। उपकरण केवल Git का स्टेज किया गया स्नैपशॉट पढ़ता है, इसलिए अनस्टेज संपादन मॉडल को नहीं भेजे जाते हैं। README नोट करता है कि कई संदेश उत्पन्न करने से अधिक टोकन खर्च होते हैं और इसलिए अधिक लागत आती है।