बुनियादी
रिलीज़ नोट्स जनरेटर
git टैग से PR विवरण, लिंक किए गए इश्यू और योगदानकर्ता क्रेडिट के साथ स्वरूपित रिलीज़ नोट्स जनरेट करें।
रिलीज़ नोट्स जनरेटर वर्कफ़्लो बनाने के लिए Dagu स्किल का उपयोग करें। सही सिंटैक्स के लिए स्कीमा, कोडिंग एजेंट और pitfalls संदर्भ देखें। उपयोगकर्ता से पूछें: - कौन सा रिपॉजिटरी? (डिफ़ॉल्ट: वर्तमान रेपो, gh repo view --json nameWithOwner के माध्यम से पहचाना गया) - तुलना के लिए कौन से टैग? (डिफ़ॉल्ट: नवीनतम टैग बनाम पिछला टैग, स्वचालित रूप से पहचाने गए) पूर्वापेक्षाएं: gh CLI प्रमाणित (gh auth login), कम से कम एक AI कोडिंग एजेंट CLI इंस्टॉल। वर्कफ़्लो को: 1. तुलना के लिए दो git टैग रिज़ॉल्व करें। यदि निर्दिष्ट नहीं हैं, तो GitHub API का उपयोग करके नवीनतम और पिछले टैग स्वचालित रूप से पहचानें। उन्हें JSON के रूप में आउटपुट करें ताकि डाउनस्ट्रीम स्टेप्स JSON path के माध्यम से अलग-अलग फ़ील्ड संदर्भित कर सकें (जैसे ${TAGS.to})। 2. GitHub compare API के साथ --jq का उपयोग करके दो टैग के बीच कमिट्स से सभी PR नंबर निकालें (jq CLI का उपयोग न करें)। प्रति लाइन एक PR नंबर आउटपुट करें। 3. प्रत्येक PR के लिए, gh api graphql के माध्यम से विवरण प्राप्त करें: नंबर, शीर्षक, लेखक login, बॉडी सारांश (पहले ~300 अक्षर), लेबल और closingIssuesReferences (नंबर, शीर्षक, लेखक login)। परिणामों से एक JSON array बनाएं। - महत्वपूर्ण: पिछले स्टेप के आउटपुट पर इटरेट करते समय "for X in $VAR" का उपयोग न करें — Dagu मल्टीलाइन आउटपुट को एक स्ट्रिंग वेरिएबल में कैप्चर करता है, इसलिए word splitting काम नहीं करती। इसके बजाय, पिछले स्टेप की stdout फ़ाइल को लाइन दर लाइन पढ़ें: `while IFS= read -r line; do ... done < "${prev_step.stdout}"`. GraphQL क्वेरी में पास करने से पहले प्रत्येक लाइन से `tr -dc '0-9'` के साथ गैर-संख्यात्मक अक्षर हटाएं। - gh GraphQL क्वेरी स्ट्रिंग $-प्रीफ़िक्स्ड वेरिएबल नाम ($owner, $name, $num) का उपयोग करती है। ये Dagu स्क्रिप्ट में सुरक्षित हैं क्योंकि Dagu केवल ${braced} वेरिएबल और bare $varname पैटर्न जो परिभाषित Dagu वेरिएबल से मेल खाते हैं उन्हें विस्तारित करता है — अपरिभाषित bare $names शेल के लिए यथावत संरक्षित रहते हैं। हालांकि, इंटीजर वेरिएबल को -F में बिना कोट्स के पास करें (जैसे -F num=$NUM न कि -F num="$NUM") ताकि gh उन्हें स्ट्रिंग नहीं बल्कि इंटीजर के रूप में भेजे। 4. प्रत्येक PR को वर्गीकृत करने और अंतिम रिलीज़ नोट्स फ़ॉर्मेट करने दोनों के लिए एक ही AI एजेंट स्टेप का उपयोग करें (स्वचालित रूप से पहचानें कि कौन सा CLI उपलब्ध है, सबसे सस्ते मॉडल का उपयोग करें)। इसे PR विवरण JSON, changelog टेम्पलेट और संदर्भ (रेपो, टैग, तिथि, योगदानकर्ताओं से बाहर रखने के लिए रेपो स्वामी) प्रदान करें। 5. आउटपुट को DAG_DOCS_DIR में सहेजें। 6. AI एजेंट स्टेप पर defaults.retry_policy और timeout_sec: 300 का उपयोग करें। changelog फ़ॉर्मेट टेम्पलेट को अनिवार्य रूप से टॉप-लेवल env वेरिएबल के रूप में YAML मल्टीलाइन (|) का उपयोग करके परिभाषित किया जाना चाहिए ताकि उपयोगकर्ता स्टेप लॉजिक में बदलाव किए बिना आउटपुट कस्टमाइज़ कर सकें।
शुरुआत करें
1. Dagu इंस्टॉल करें
curl -L https://raw.githubusercontent.com/dagu-org/dagu/main/scripts/installer.sh | bash2. Dagu स्किल इंस्टॉल करें
claude mcp add dagu -- dagu mcp3. Dagu शुरू करें
dagu start-allअधिक जानकारी के लिए देखें त्वरित शुरुआत गाइड