सभी उपयोग के उदाहरण

रिलीज़ PRs को एक शेड्यूल पर ऑटो-मर्ज करें

Zero को बताएं कि रिलीज़ PRs कब भेजने हैं और कौन-सी छोड़नी हैं। यह आपकी लय पर जांच चलाता है, जोखिम भरे बदलाव छोड़ देता है, और बाकी को अपने आप मर्ज कर देता है।

Zero जुड़ता है:GitHubSlack

Zero क्या डिलीवर करता है

समस्या क्या है

जब भी आपकी main ब्रांच पर पर्याप्त कमिट जमा हो जाते हैं तो एक नया रिलीज़ PR खुलता है - ज़्यादातर टीमों में यह दिन में एक या दो बार होता है। किसी को diff पर नज़र डालनी होती है, पुष्टि करनी होती है कि CI ग्रीन है, तय करना होता है कि changelog में कुछ डरावना तो नहीं, Merge पर क्लिक करना होता है, और फिर डिप्लॉय की निगरानी करनी होती है। अगर वे मीटिंग में हैं, सो रहे हैं, या किसी दूसरे महाद्वीप पर हैं, तो रिलीज़ पड़ी रहती है। कमिट ऊपर जमा होते रहते हैं, changelog बढ़ता है, और मर्ज जोखिम भरा होता जाता है। आप Zero को एक बार बताते हैं - रिलीज़ जांच एक कार्यदिवस में एक बार चलाओ, जोखिम भरी छोड़ दो, काम के घंटों में मर्ज करो, रिलीज़ चैनल में पोस्ट करो - और उसके बाद से, भेजना अपने आप होता है, आपकी टीम की घड़ी पर।

Zero इसे कैसे ठीक करता है

चरण 1: अपने tools कनेक्ट करें

GitHub
GitHub
ज़रूरी
GitHub - Zero रिलीज़ PRs की सूची बनाता है, फ़ाइल बदलावों का निरीक्षण करता है, CI स्टेटस की पुष्टि करता है, और ऑटो-मर्ज चालू करता है। मर्ज ट्रिगर करने के लिए रिपॉज़िटरी राइट एक्सेस ज़रूरी है।
जोड़ें
Slack
Slack
ज़रूरी
Slack - Zero मर्ज की घोषणा करने, छोड़ी गई PRs को फ़्लैग करने, और जोखिम भरी को एस्केलेट करने के लिए आपके Slack कनेक्शन का इस्तेमाल करता है। Slack के बिना, Zero फिर भी मर्ज कर सकता है लेकिन रिपोर्ट करने की कोई जगह नहीं रहती।
जोड़ें

चरण 2: Zero से पूछें

@Zero every weekday at 3pm, check our repo for an open release PR. If it has no DB migration files, enable auto-merge with squash so it ships the moment CI passes - then post an update in #release-notify.
Zero आपकी लय पर रिलीज़ PRs की जांच करता है
Zero जिस भी शेड्यूल पर आप सेट करते हैं उस पर चलता है - ज़्यादातर टीमों के लिए एक कार्यदिवस में एक बार, उच्च-गति वालों के लिए हर घंटे - और आपकी डिफ़ॉल्ट ब्रांच पर खुले रिलीज़ PRs के लिए GitHub को क्वेरी करता है। उस विंडो के बाहर, यह कुछ नहीं करता। न काम के बाद के मर्ज, न वीकेंड के सरप्राइज़।
Zero हर PR को आपके सुरक्षा नियमों के मुताबिक जांचता है
Zero PR पर फ़ाइल सूची पढ़ता है। अगर कोई फ़ाइल आपके द्वारा फ़्लैग किए गए किसी संवेदनशील पाथ (migrations, infra, billing) से मेल खाती है, तो यह मर्ज छोड़ देता है और चैनल को पिंग करता है ताकि कोई इंसान फ़ैसला करे। नहीं तो यह पुष्टि करता है कि ज़रूरी CI जांच पास हो रही हैं।
Zero ऑटो-मर्ज चालू करता है और नतीजा रिपोर्ट करता है
जो PRs पॉलिसी पास करते हैं, उनके लिए Zero `gh pr merge --auto --squash` चलाता है ताकि CI के ग्रीन होते ही PR लैंड हो जाए। जब मर्ज लैंड होता है, तो Zero आपके रिलीज़ चैनल में एक संक्षिप्त स्टेटस लाइन पोस्ट करता है।

चरण 3: इसे और आगे ले जाएँ

पॉलिसी को तुरंत सख़्त करें
कोड को छुए बिना नए नियम जोड़ें।
@Zero from now on, skip any release PR whose changelog mentions `infra` or `billing`.
जोखिम भरी को एस्केलेट करें
Zero से ऐसी PRs को फ़्लैग करवाएं - मर्ज नहीं - जिन्हें वह वरना छोड़ देता।
@Zero when you find a release PR with a migration file, open a thread in #dev tagging @oncall with the diff link.
तैयार होने पर लय बढ़ाएं
पॉलिसी के खुद को साबित कर देने के बाद रोज़ाना से दिन में कई बार पर जाएं।
@Zero starting next week, run the release auto-merge check twice a day - once in the morning, once after lunch - instead of just at 3pm.

बेहतर परिणामों के लिए सुझाव

दिन में एक जांच से शुरू करें और लय तभी बढ़ाएं जब पॉलिसी भरोसा कमा ले। रोज़ाना टीम को निगरानी का एहसास दिए बिना भेजने की एक अनुमानित लय देता है।
अपने अनलिखे रिलीज़ नियमों को prompt में एनकोड करें। 'Skip migrations' तो स्पष्ट है; 'डेमो विंडो के दौरान मर्ज रोको' या 'शुक्रवार दोपहर कभी मत भेजो' वे शांत नियम हैं जिनके बारे में Zero को पता होना चाहिए।
इसे एक रोज़ाना इंजीनियरिंग ब्रीफ़ के साथ चेन करें ताकि आपकी सुबह की रिपोर्ट इससे शुरू हो 'कल की रिलीज़ भेज दी गई, उसमें N कमिट थे, M PRs अब भी कतार में हैं'। स्वायत्त भेजने को दिखाई देने वाली रिपोर्टिंग के साथ जोड़ें।