ब्रांच सुरक्षा
main पर Apothem ब्रांच सुरक्षा — समीक्षा गेट, स्टेटस-चेक गेटिंग, और पुश प्रतिबंध।
एकल नई रिलीज़ कमिट प्रकाशित होने के बाद Apothem की main ब्रांच GitHub ब्रांच सुरक्षा द्वारा सुरक्षित रहती है। यह सुरक्षा rules/production-ready-prs.md में घोषित चेंज-सेट अनुशासन को लागू करती है और भविष्य के कार्य के लिए OpenSSF Scorecard की Branch-Protection तथा Code-Review जाँचों को आहार देती है।
रूलसेट घोषणा
| सेटिंग | मान | औचित्य |
|---|---|---|
| लक्ष्य | main | सार्वजनिक डिफ़ॉल्ट ब्रांच की रक्षा करता है। |
| प्रवर्तन स्थिति | active | ड्राई-रन मोड में नहीं। |
| मर्ज से पहले पुल रिक्वेस्ट आवश्यक करें | ✅ | main पर सीधे पुश अवरुद्ध। |
| आवश्यक स्वीकृत समीक्षाएँ | 1 | नए एकल-अनुरक्षक प्रोजेक्ट के लिए न्यूनतम मानवीय-समीक्षा गेट। |
| नई कमिट पर पुरानी स्वीकृतियाँ रद्द करें | ✅ | स्वीकृति के बाद force-push समीक्षा को पुनः ट्रिगर करता है। |
| Code Owners से समीक्षा आवश्यक करें | स्थगित | दूसरे अनुरक्षक के जुड़ने से पहले इसे सक्षम करने से एकल-अनुरक्षक PR गतिरोध में पड़ सकते हैं। |
| सबसे हालिया समीक्षा-योग्य पुश की स्वीकृति आवश्यक करें | ✅ | नवीनतम पुश की गई कमिट को स्वीकृति लानी होगी। |
| वार्तालाप समाधान आवश्यक | ✅ | खुले समीक्षा थ्रेड मर्ज को अवरुद्ध करते हैं। |
| स्टेटस चेक पास होना आवश्यक करें | ✅ | CI वर्कफ़्लो + Scorecard + CodeQL + pip-audit। |
| आवश्यक स्टेटस चेक | वर्तमान मूल चेक | आवश्यक सूची नवीनतम हरी रिलीज़ कमिट से ताज़ा की जाती है। |
| ब्रांच अद्यतन होना आवश्यक करें | ✅ | पुराने-मर्ज प्रतिगमन को रोकता है। |
| हस्ताक्षरित कमिट आवश्यक करें | अनुशंसित | स्थानीय रिलीज़ कमिट हस्ताक्षरित हैं; पूर्ण प्रवर्तन तब तक प्रतीक्षा करता है जब तक योगदानकर्ता ऑनबोर्डिंग दस्तावेज़ SSH/GPG सेटअप का वर्णन न कर दे। |
| रैखिक इतिहास आवश्यक करें | ✅ | एकल-रेखा सार्वजनिक इतिहास को बोधगम्य बनाए रखता है। |
| force-push अवरुद्ध करें | ✅ | main पर इतिहास पुनर्लेखन अवरुद्ध। |
| विलोपन की अनुमति दें | ❌ | main ब्रांच को हटाया नहीं जा सकता। |
एकल-अनुरक्षक बाधा
GitHub रिपॉज़िटरी फ़ाइलों को मानवीय समीक्षा इतिहास बनाने की अनुमति नहीं देता। इसलिए रिपॉज़िटरी अपने वर्तमान अनुरक्षक मॉडल के लिए सबसे मजबूत गैर-गतिरोधकारी ब्रांच सुरक्षा लागू करता है: एक स्वीकृत समीक्षा, पुरानी-समीक्षा रद्दीकरण, नवीनतम-पुश स्वीकृति, वार्तालाप समाधान, स्टेटस चेक, रैखिक इतिहास, और कोई ब्रांच विलोपन या force-push नहीं। जब दूसरा अनुरक्षक जुड़ता है, तो CODEOWNERS समीक्षा और दो-समीक्षक न्यूनतम अधिक मजबूत सेटिंग बन जाते हैं।
स्टेटस-चेक आवश्यकताएँ
ऊपर घोषित चार हार्ड-गेटिंग स्टेटस चेक:
ci— पूर्ण परीक्षण मैट्रिक्स + ruff + mypy + bandit + Trivy + समाधानित निर्भरता वृक्ष पर pip-auditScorecard— प्रति-चेक प्रतिगमन रहित OpenSSF Scorecard रनCodeQL—python+actionsके लिएsecurity-extendedक्वेरी पैकpip-audit— समाधानित निर्भरता वृक्ष के विरुद्ध साप्ताहिक + प्रति-PR भेद्यता स्कैन
कोई भी अन्य वर्कफ़्लो स्थिति रिपोर्ट कर सकता है, परंतु उसका परिणाम मर्ज को तब तक गेट नहीं करता जब तक उसे आवश्यक-चेक सूची में पदोन्नत न किया जाए।
ऑडिट ताल
इस फ़ाइल की समीक्षा प्रत्येक सुरक्षा ऑडिट पर और प्रत्येक रिलीज़-इंजीनियरिंग चेकपॉइंट पर की जाती है। इस फ़ाइल और वास्तविक ब्रांच सुरक्षा कॉन्फ़िगरेशन के बीच विचलन एक उच्च-गंभीरता निष्कर्ष है।
संदर्भ
- OpenSSF Scorecard — Branch-Protection check
- GitHub — About protected branches
- Apothem CODEOWNERS — पथ-स्कोप्ड समीक्षा स्वामित्व
rules/production-ready-prs.md§1 — समान-चेंज-सेट अनुशासन जिसे यह रूलसेट लागू करता है