
सुरक्षा नीतियों को सेट और लागू करने के लिए GitHub ऐप
Allstar एक GitHub ऐप है जो सुरक्षा सर्वोत्तम प्रथाओं के पालन के लिए GitHub संगठनों या रिपॉजिटरी की लगातार निगरानी करता है। यदि Allstar किसी सुरक्षा नीति उल्लंघन का पता लगाता है, तो यह रिपॉजिटरी या संगठन मालिक को सचेत करने के लिए एक मुद्दा बनाता है। कुछ सुरक्षा नीतियों के लिए, Allstar स्वचालित रूप से उस प्रोजेक्ट सेटिंग को भी बदल सकता है जिसने उल्लंघन किया है, इसे अपेक्षित स्थिति में वापस लाता है।
Allstar का लक्ष्य आपको आपके प्रोजेक्ट्स की सुरक्षा को प्रभावित करने वाली फ़ाइलों और सेटिंग्स पर बारीक नियंत्रण देना है। आप चुन सकते हैं कि संगठन और रिपॉजिटरी दोनों स्तरों पर किन सुरक्षा नीतियों की निगरानी करनी है, और नीति उल्लंघनों को कैसे संभालना है। आप नई नीतियां भी विकसित या योगदान कर सकते हैं।
Allstar को OpenSSF Scorecard परियोजना के भाग के रूप में विकसित किया गया है।
यदि आपको Allstar द्वारा अवांछित मुद्दे बनाए जा रहे हैं, तो ऑप्ट-आउट करने के लिए इन निर्देशों का पालन करें।
Allstar अत्यधिक कॉन्फ़िगरेबल है। नियंत्रण के तीन मुख्य स्तर हैं:
ये कॉन्फ़िगरेशन संगठन के .allstar रिपॉजिटरी में किए जाते हैं।
रिपॉजिटरी स्तर: Allstar का उपयोग करने वाले संगठन में रिपॉजिटरी अनुरक्षक अपनी रिपॉजिटरी को संगठन-स्तरीय प्रवर्तनों में ऑप्ट-इन या ऑप्ट-आउट करना चुन सकते हैं। नोट: ये रिपॉजिटरी-स्तरीय नियंत्रण तभी कार्यात्मक होते हैं जब संगठन-स्तरीय सेटिंग्स में 'रिपॉजिटरी ओवरराइड' की अनुमति हो। ये कॉन्फ़िगरेशन रिपॉजिटरी के .allstar निर्देशिका में किए जाते हैं।
नीति स्तर: प्रशासक या अनुरक्षक चुन सकते हैं कि कौन सी नीतियां विशिष्ट रिपॉजिटरी पर सक्षम हैं और जब कोई नीति उल्लंघन होता है तो Allstar कौन सी कार्रवाई करता है। ये कॉन्फ़िगरेशन संगठन के .allstar रिपॉजिटरी (व्यवस्थापक) या रिपॉजिटरी के .allstar निर्देशिका (अनुरक्षक) में एक नीति yaml फ़ाइल में किए जाते हैं।
Allstar को संगठन स्तर पर स्थापित करने से पहले, आपको लगभग यह तय कर लेना चाहिए कि आप कितनी रिपॉजिटरी पर Allstar चलाना चाहते हैं। यह आपको ऑप्ट-इन और ऑप्ट-आउट रणनीतियों के बीच चुनने में मदद करेगा।
ऑप्ट-इन रणनीति आपको उन रिपॉजिटरी को मैन्युअल रूप से जोड़ने की अनुमति देती है जिन पर आप Allstar चलाना चाहते हैं। यदि आप कोई रिपॉजिटरी निर्दिष्ट नहीं करते हैं, तो Allstar स्थापित होने के बावजूद नहीं चलेगा। ऑप्ट-इन रणनीति चुनें यदि आप केवल अपनी कुल रिपॉजिटरी की एक छोटी संख्या पर नीतियों को लागू करना चाहते हैं, या अधिक पर सक्षम करने से पहले एक एकल रिपॉजिटरी पर Allstar का परीक्षण करना चाहते हैं। v4.3 रिलीज़ के बाद से, समान नाम वाली कई रिपॉजिटरी को आसानी से जोड़ने के लिए ग्लॉब्स समर्थित हैं।
ऑप्ट-आउट रणनीति (अनुशंसित) सभी रिपॉजिटरी पर Allstar को सक्षम करती है और आपको Allstar प्रवर्तनों से बाहर निकलने के लिए रिपॉजिटरी को मैन्युअल रूप से चुनने की अनुमति देती है। आप सभी सार्वजनिक रिपॉजिटरी, या सभी निजी रिपॉजिटरी को ऑप्ट-आउट करना भी चुन सकते हैं। यह विकल्प चुनें यदि आप किसी संगठन की सभी रिपॉजिटरी पर Allstar चलाना चाहते हैं, या केवल थोड़ी संख्या में रिपॉजिटरी या विशिष्ट प्रकार (जैसे, सार्वजनिक बनाम निजी) की रिपॉजिटरी को ऑप्ट-आउट करना चाहते हैं। v4.3 रिलीज़ के बाद से, समान नाम वाली कई रिपॉजिटरी को आसानी से जोड़ने के लिए ग्लॉब्स समर्थित हैं।
दोनों त्वरित आरंभ और मैन्युअल स्थापना विकल्पों में Allstar ऐप को आपके GitHub संगठन में स्थापित करना शामिल है। Allstar ऐप OpenSSF द्वारा संचालित है और अधिकांश ओपन सोर्स रिपॉजिटरी के लिए एक अच्छा विकल्प है। आप अनुरोधित अनुमतियों की समीक्षा कर सकते हैं। ऐप सुरक्षा अनुपालन का पता लगाने के लिए अधिकांश सेटिंग्स और फ़ाइल सामग्री तक पढ़ने की पहुंच मांगता है। यह मुद्दों और जांचों पर लिखने की पहुंच का अनुरोध करता है ताकि यह मुद्दे बना सके और block कार्रवाई की अनुमति दे सके।
यदि आप OpenSSF द्वारा संचालित Allstar ऐप का उपयोग नहीं करना चाहते हैं तो आप Allstar की स्व-होस्टिंग कर सकते हैं, अपना स्वयं का Allstar ऐप बना सकते हैं। यह ऐप का प्रत्यक्ष नियंत्रण प्रदान करता है जिसमें ऐप को कॉन्फ़िगर, सुरक्षित, निगरानी और बनाए रखने की आवश्यकता होती है।
त्वरित आरंभ या मैन्युअल स्थापना अनुशंसित है जब तक कि आपके पास विशिष्ट सुरक्षा या अनुपालन बाधाएं न हों जो आपको OpenSSF प्रबंधित Allstar ऐप का उपयोग करने से रोकती हों।
यह स्थापना विकल्प आपके संगठन की सभी रिपॉजिटरी पर ऑप्ट-आउट रणनीति का उपयोग करके Allstar को सक्षम करेगा। सभी वर्तमान नीतियां सक्षम होंगी, और Allstar एक मुद्दा दर्ज करके नीति उल्लंघनों के बारे में आपको सचेत करेगा। Allstar का उपयोग शुरू करने का यह सबसे तेज़ और आसान तरीका है, और आप बाद में भी किसी भी कॉन्फ़िगरेशन को बदल सकते हैं।
प्रयास: बहुत आसान
चरण:
.allstar टाइप करेंबस इतना ही! आपकी सभी रिपॉजिटरी पर सभी वर्तमान Allstar नीतियां अब सक्षम हैं। यदि कोई नीति उल्लंघन होता है तो Allstar एक मुद्दा बनाएगा।
कोई भी कॉन्फ़िगरेशन बदलने के लिए, मैन्युअल स्थापना निर्देश देखें।
यह स्थापना विकल्प आपको ऑप्ट-इन या ऑप्ट-आउट रणनीति के अनुसार कॉन्फ़िगरेशन फ़ाइलें बनाने के माध्यम से मार्गदर्शन करेगा। यह विकल्प शुरू से ही कॉन्फ़िगरेशन पर अधिक विस्तृत नियंत्रण प्रदान करता है।
प्रयास: मध्यम
चरण:
केवल तभी स्व-होस्ट करें जब आपको करना ही हो! Allstar ऐप को कॉन्फ़िगरेशन, सुरक्षा और निरंतर रखरखाव की आवश्यकता होती है। जब कोई नया Allstar संस्करण जारी होता है तो आपको अपने स्व-होस्टेड समाधान को अपग्रेड करने की आवश्यकता होगी।
दो स्व-होस्टिंग दृष्टिकोणों का वर्णन किया गया है:
यह स्थापना विकल्प GitHub Actions का उपयोग करके Allstar को एक अनुसूचित कार्य के रूप में चलाता है।
प्रयास: उच्च
GitHub Actions स्थापना निर्देश का पालन करें:
.allstar नियंत्रण रिपॉजिटरी बनाएं। (अपने संगठन में OpenSSF प्रबंधित Allstar ऐप स्थापित करने के चरणों को अनदेखा करें।).allstar में एक आवर्ती GitHub Action सेट करें।यह स्थापना विकल्प Allstar को एक स्थायी प्रक्रिया के रूप में चलाता है।
प्रयास: बहुत उच्च
Allstar ऐप बनाने, रहस्यों के प्रबंधन और उपलब्ध पर्यावरण चर सहित अधिक जानकारी के लिए ऑपरेटर निर्देश देखें।
प्रत्येक नीति को एक कार्रवाई के साथ कॉन्फ़िगर किया जा सकता है जो Allstar तब लेगा जब वह किसी रिपॉजिटरी को अनुपालन से बाहर पाता है।
log: यह डिफ़ॉल्ट कार्रवाई है, और वास्तव में सभी कार्रवाइयों के लिए होती है। सभी नीति चलाने के परिणाम और विवरण लॉग किए जाते हैं। लॉग वर्तमान में केवल ऐप ऑपरेटर को दिखाई देते हैं, इन्हें उजागर करने की योजनाएं चर्चा के अधीन हैं।issue: यह कार्रवाई एक GitHub मुद्दा बनाती है। प्रति नीति केवल एक मुद्दा बनाया जाता है, और पाठ नीति उल्लंघन के विवरण का वर्णन करता है। यदि मुद्दा पहले से ही खुला है, तो इसे हर 24 घंटे में बिना अपडेट के एक टिप्पणी के साथ पिंग किया जाता है (वर्तमान में उपयोगकर्ता कॉन्फ़िगरेबल नहीं)। यदि नीति परिणाम बदलता है, तो मुद्दे पर एक नई टिप्पणी छोड़ी जाएगी और मुद्दा निकाय में लिंक की जाएगी। एक बार उल्लंघन का समाधान हो जाने के बाद, मुद्दा Allstar द्वारा 5-10 मिनट के भीतर स्वचालित रूप से बंद कर दिया जाएगा।fix: यह कार्रवाई नीति विशिष्ट है। नीति नीति उल्लंघन को सही करने के लिए GitHub सेटिंग्स में परिवर्तन करेगी। सभी नीतियां इसका समर्थन करने में सक्षम नहीं होंगी (नीचे देखें)।प्रस्तावित, लेकिन अभी तक लागू नहीं की गई कार्रवाइयां। परिभाषाएं भविष्य में जोड़ी जाएंगी।
block: Allstar एक GitHub स्थिति जांच सेट कर सकता है और यदि जांच विफल होती है तो रिपॉजिटरी में किसी भी PR को मर्ज होने से रोक सकता है।email: Allstar रिपॉजिटरी प्रशासक(ों) को एक ईमेल भेजेगा।rpc: Allstar किसी संगठन-विशिष्ट सिस्टम को एक rpc भेजेगा।मुद्दा कार्रवाई को कॉन्फ़िगर करने के लिए दो सेटिंग्स उपलब्ध हैं:
issueLabel संगठन और रिपॉजिटरी स्तर पर उपलब्ध है। इसे सेट करने से Allstar द्वारा अपने मुद्दों की पहचान करने के लिए उपयोग किए जाने वाले डिफ़ॉल्ट allstar लेबल को ओवरराइड कर दिया जाएगा।
issueRepo संगठन स्तर पर उपलब्ध है। इसे सेट करने से संगठन में बनाए गए सभी मुद्दों को निर्दिष्ट रिपॉजिटरी में बनाने के लिए मजबूर किया जाएगा।
Allstar ऐप सक्षम कॉन्फ़िगरेशन के समान, सभी नीतियां संगठन के .allstar रिपॉजिटरी या रिपॉजिटरी के .allstar निर्देशिका में एक yaml फ़ाइल के साथ सक्षम और कॉन्फ़िगर की जाती हैं। ऐप की तरह, नीतियां डिफ़ॉल्ट रूप से ऑप्ट-इन होती हैं, साथ ही डिफ़ॉल्ट log कार्रवाई दृश्यमान परिणाम उत्पन्न नहीं करेगी। सभी नीतियों को सक्षम करने का एक सरल तरीका प्रत्येक नीति के लिए निम्नलिखित सामग्री के साथ एक yaml फ़ाइल बनाना है:```yaml
optConfig:
optOutStrategy: true
action: issue
प्रत्येक नीति के लिए `fix` क्रिया कैसे काम करती है, इसके विवरण नीचे दिए गए हैं। यदि नीचे छोड़ दिया गया है, तो `fix` क्रिया लागू नहीं होती है।
### Branch Protection
इस नीति की कॉन्फिग फ़ाइल का नाम `branch_protection.yaml` है, और [कॉन्फिग
परिभाषाएँ यहाँ
हैं](https://pkg.go.dev/github.com/ossf/allstar/pkg/policies/branch#OrgConfig)।
Branch Protection नीति जाँचती है कि GitHub की [शाखा सुरक्षा सेटिंग्स](https://docs.github.com/en/github/administering-a-repository/defining-the-mergeability-of-pull-requests/about-protected-branches) निर्दिष्ट कॉन्फिगरेशन के अनुसार सही ढंग से सेट हैं या नहीं। मुद्दा पाठ बताएगा कि कौन सी सेटिंग गलत है। सेटिंग्स को सही करने के लिए [GitHub का दस्तावेज़ीकरण](https://docs.github.com/en/github/administering-a-repository/defining-the-mergeability-of-pull-requests/about-protected-branches) देखें।
`fix` क्रिया शाखा सुरक्षा सेटिंग्स को निर्दिष्ट नीति कॉन्फिगरेशन के अनुपालन में बदल देगी।
### Binary Artifacts
इस नीति की कॉन्फिग फ़ाइल का नाम `binary_artifacts.yaml` है, और [कॉन्फिग
परिभाषाएँ यहाँ
हैं](https://pkg.go.dev/github.com/ossf/allstar/pkg/policies/binary#OrgConfig)।
यह नीति [scorecard से जाँच](https://github.com/ossf/scorecard/#scorecard-checks) शामिल करती है। अनुपालन प्राप्त करने के लिए रिपॉजिटरी से बाइनरी आर्टिफैक्ट हटाएँ। चूंकि scorecard के परिणाम विस्तृत हो सकते हैं, आपको सभी विस्तृत जानकारी देखने के लिए [scorecard स्वयं](https://github.com/ossf/scorecard) चलाने की आवश्यकता हो सकती है।
### CODEOWNERS
इस नीति की कॉन्फिग फ़ाइल का नाम `codeowners.yaml` है, और [कॉन्फिग
परिभाषाएँ यहाँ
हैं](https://pkg.go.dev/github.com/ossf/allstar/pkg/policies/codeowners#OrgConfig)।
यह नीति आपके रिपॉजिटरी पर [`CODEOWNERS` फ़ाइल](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners) की उपस्थिति की जाँच करती है।
### Outside Collaborators
इस नीति की कॉन्फिग फ़ाइल का नाम `outside.yaml` है, और [कॉन्फिग
परिभाषाएँ यहाँ
हैं](https://pkg.go.dev/github.com/ossf/allstar/pkg/policies/outside#OrgConfig)।
यह नीति जाँचती है कि क्या किसी [बाहरी सहयोगी](https://docs.github.com/en/organizations/managing-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization) के पास रिपॉजिटरी तक व्यवस्थापक (डिफ़ॉल्ट) या पुश (वैकल्पिक) पहुँच है। केवल संगठन के सदस्यों के पास यह पहुँच होनी चाहिए, अन्यथा अविश्वसनीय सदस्य व्यवस्थापक स्तर की सेटिंग्स बदल सकते हैं और दुर्भावनापूर्ण कोड कमिट कर सकते हैं।
### SECURITY.md
इस नीति की कॉन्फिग फ़ाइल का नाम `security.yaml` है, और [कॉन्फिग
परिभाषाएँ यहाँ
हैं](https://pkg.go.dev/github.com/ossf/allstar/pkg/policies/security#OrgConfig)।
यह नीति जाँचती है कि रिपॉजिटरी में `SECURITY.md` में सुरक्षा नीति फ़ाइल मौजूद है और वह खाली नहीं है। बनाया गया मुद्दा [GitHub टैब](https://docs.github.com/en/code-security/getting-started/adding-a-security-policy-to-your-repository) का लिंक देगा जो आपकी रिपॉजिटरी में सुरक्षा नीति कमिट करने में मदद करता है।
### Dangerous Workflow
इस नीति की कॉन्फिग फ़ाइल का नाम `dangerous_workflow.yaml` है, और [कॉन्फिग
परिभाषाएँ यहाँ
हैं](https://pkg.go.dev/github.com/ossf/allstar/pkg/policies/workflow#OrgConfig)।
यह नीति **सभी** शाखाओं के विरुद्ध चलेगी, तर्क [यहाँ](https://github.com/ossf/allstar/issues/569) देखें।
यह नीति GitHub Actions वर्कफ़्लो कॉन्फिगरेशन फ़ाइलों (`.github/workflows`) की जाँच करती है, किसी भी पैटर्न के लिए जो ज्ञात खतरनाक व्यवहार से मेल खाता हो। इस जाँच के बारे में अधिक जानकारी के लिए [OpenSSF Scorecard दस्तावेज़ीकरण](https://github.com/ossf/scorecard/blob/main/docs/checks.md#dangerous-workflow) देखें।
### Generic Scorecard Check
इस नीति की कॉन्फिग फ़ाइल का नाम `scorecard.yaml` है, और [कॉन्फिग
परिभाषाएँ यहाँ
हैं](https://pkg.go.dev/github.com/ossf/allstar/pkg/policies/scorecard#OrgConfig)।
यह नीति `checks` कॉन्फिगरेशन में सूचीबद्ध किसी भी scorecard जाँच को चलाती है। चलाई गई सभी जाँचों का स्कोर `threshold` सेटिंग के बराबर या उससे ऊपर होना चाहिए। कृपया प्रत्येक जाँच के बारे में अधिक जानकारी के लिए [OpenSSF Scorecard दस्तावेज़ीकरण](https://github.com/ossf/scorecard/blob/main/docs/checks.md) देखें।
#### SARIF Upload
Scorecard नीति वैकल्पिक रूप से परिणामों को [SARIF](https://sarifweb.azurewebsites.net/) के रूप में प्रत्येक रिपॉजिटरी के **Security > Code Scanning** टैब पर अपलोड कर सकती है। यह संगठन प्रशासकों को प्रति-रिपॉजिटरी वर्कफ़्लो सेटअप की आवश्यकता के बिना Scorecard निष्कर्षों को अन्य सुरक्षा उपकरणों (CodeQL, Dependabot, आदि) के साथ दृश्यता प्रदान करता है।
SARIF अपलोड सक्षम करने के लिए, अपने `scorecard.yaml` में `upload` फ़ील्ड जोड़ें:```yaml
optConfig:
optOutStrategy: true
action: issue
checks:
- Binary-Artifacts
- Signed-Releases
threshold: 8
upload:
sarif: true
आवश्यकताएँ:
security_events) पर सेट होनी चाहिए।
स्व-होस्टेड ऑपरेटरों को यह अनुमति अपने GitHub ऐप में जोड़नी होगी। OpenSSF द्वारा संचालित सार्वजनिक Allstar ऐप में अभी तक यह अनुमति शामिल नहीं है।SARIF अपलोड दोनों स्व-होस्टेड परिनियोजन मोड के साथ काम करता है: सेवा डेमॉन के रूप में या GitHub Action के रूप में चलाना।
इस नीति का कॉन्फ़िग फ़ाइल actions.yaml नाम से है, और कॉन्फ़िग परिभाषाएँ यहाँ हैं।
यह नीति प्रत्येक रिपॉजिटरी में GitHub Actions वर्कफ़्लो कॉन्फ़िगरेशन फ़ाइलों (.github/workflows) (और कुछ मामलों में वर्कफ़्लो रन) की जाँच करती है ताकि यह सुनिश्चित किया जा सके कि वे नीति के लिए संगठन-स्तरीय कॉन्फ़िग में परिभाषित नियमों (जैसे, require, deny) के अनुरूप हैं।
इस नीति का कॉन्फ़िग फ़ाइल admin.yaml नाम से है, और कॉन्फ़िग परिभाषाएँ यहाँ हैं।
यह नीति जाँचती है कि डिफ़ॉल्ट रूप से सभी रिपॉजिटरी में एक उपयोगकर्ता या समूह को प्रशासक के रूप में नियुक्त किया गया हो। यह आपको वैकल्पिक रूप से कॉन्फ़िगर करने की अनुमति देता है कि क्या उपयोगकर्ताओं को प्रशासक होने की अनुमति है (टीमों के विपरीत)।
Allstar कॉन्फ़िग के उपयोग का उदाहरण यह रिपॉजिटरी देखें। संगठन प्रशासक के रूप में, अपने संगठन में Allstar के उपयोग के बारे में कुछ जानकारी के साथ एक README.md पर विचार करें।
डिफ़ॉल्ट रूप से, संगठन-स्तरीय कॉन्फ़िगरेशन फ़ाइलें, जैसे कि ऊपर allstar.yaml फ़ाइल, .allstar रिपॉजिटरी में होने की अपेक्षा की जाती है। यदि यह रिपॉजिटरी मौजूद नहीं है, तो .github रिपॉजिटरी का allstar निर्देशिका द्वितीयक स्थान के रूप में उपयोग किया जाता है। स्पष्ट करने के लिए, allstar.yaml के लिए:
| प्राथमिकता | रिपॉजिटरी | पथ |
|---|---|---|
| प्राथमिक | .allstar | allstar.yaml |
| द्वितीयक | .github | allstar/allstar.yaml |
यह व्यक्तिगत नीतियों के लिए संगठन-स्तरीय कॉन्फ़िगरेशन फ़ाइलों पर भी लागू होता है, जैसा कि नीचे वर्णित है।
Allstar संगठन की .allstar रिपॉजिटरी में, रिपॉजिटरी के समान नाम वाली निर्देशिका के अंतर्गत, रिपॉजिटरी-स्तरीय नीति कॉन्फ़िगरेशन भी खोजेगा। यह कॉन्फ़िगरेशन का उपयोग इस बात की परवाह किए बिना किया जाता है कि "repo override" अक्षम है या नहीं।
उदाहरण के लिए, Allstar किसी दी गई रिपॉजिटरी myapp के लिए नीति कॉन्फ़िगरेशन को निम्नलिखित क्रम में खोजेगा:
संगठन-स्तरीय Allstar और नीति कॉन्फ़िगरेशन फ़ाइलों के लिए, आप baseConfig फ़ील्ड निर्दिष्ट कर सकते हैं ताकि एक और रिपॉजिटरी निर्दिष्ट की जा सके जिसमें आधार Allstar कॉन्फ़िगरेशन हो। यह एक उदाहरण के साथ सबसे अच्छी तरह समझाया गया है।
मान लीजिए कि आपके पास कई GitHub संगठन हैं, लेकिन एक ही Allstar कॉन्फ़िगरेशन बनाए रखना चाहते हैं। आपका मुख्य संगठन "acme" है, और रिपॉजिटरी acme/.allstar में allstar.yaml है:```yaml
optConfig:
optOutStrategy: true
issueLabel: allstar-acme
issueFooter: Issue created by Acme security team.
आपके पास "acme-sat" नामक एक उपग्रह GitHub संगठन भी है। आप मुख्य कॉन्फ़िगरेशन का पुन: उपयोग करना चाहते हैं, लेकिन कुछ रिपॉजिटरी पर Allstar को अक्षम करके कुछ बदलाव लागू करना चाहते हैं। रिपॉजिटरी `acme-sat/.allstar` में `allstar.yaml` है:```yaml
baseConfig: acme/.allstar
optConfig:
optOutRepos:
- acmesat-one
- acmesat-two
यह acme/.allstar से सभी कॉन्फ़िग को आधार कॉन्फ़िग के रूप में उपयोग करेगा, लेकिन फिर वर्तमान फ़ाइल में किसी भी परिवर्तन को आधार कॉन्फ़िगरेशन के ऊपर लागू करेगा। जिस विधि से इसे लागू किया जाता है, उसे JSON Merge Patch के रूप में वर्णित किया गया है। baseConfig एक GitHub <org>/<repository> होना चाहिए।
देखें CONTRIBUTING.md
| ऑप्ट-आउट (अनुशंसित) optOutStrategy = true | ऑप्ट-इन optOutStrategy = false |
|---|
| डिफ़ॉल्ट व्यवहार | सभी रिपॉजिटरी सक्षम हैं | कोई रिपॉजिटरी सक्षम नहीं है |
| मैन्युअल रूप से रिपॉजिटरी जोड़ना | मैन्युअल रूप से रिपॉजिटरी जोड़ना उन रिपॉजिटरी पर Allstar को अक्षम करता है | मैन्युअल रूप से रिपॉजिटरी जोड़ना उन रिपॉजिटरी पर Allstar को सक्षम करता है |
| अतिरिक्त कॉन्फ़िगरेशन | optOutRepos: सूचीबद्ध रिपॉजिटरी पर Allstar अक्षम हो जाएगा optOutPrivateRepos: यदि सत्य है, तो सभी निजी रिपॉजिटरी पर Allstar अक्षम हो जाएगा optOutPublicRepos: यदि सत्य है, तो सभी सार्वजनिक रिपॉजिटरी पर Allstar अक्षम हो जाएगा (optInRepos: यह सेटिंग अनदेखा कर दी जाएगी) | optInRepos: सूचीबद्ध रिपॉजिटरी पर Allstar सक्षम हो जाएगा (optOutRepos: यह सेटिंग अनदेखा कर दी जाएगी) |
| रिपॉजिटरी ओवरराइड | यदि सत्य है: रिपॉजिटरी अपने संगठन के Allstar प्रवर्तनों से ऑप्ट-आउट कर सकते हैं अपनी स्वयं की रिपॉजिटरी फ़ाइल में सेटिंग्स का उपयोग करके। उस रिपॉजिटरी पर लागू होने वाली संगठन स्तरीय ऑप्ट-इन सेटिंग्स को अनदेखा कर दिया जाता है। यदि असत्य है: रिपॉजिटरी संगठन स्तर पर कॉन्फ़िगर किए गए Allstar प्रवर्तनों से ऑप्ट-आउट नहीं कर सकते। | यदि सत्य है: रिपॉजिटरी अपने संगठन के Allstar प्रवर्तनों में ऑप्ट-इन कर सकते हैं भले ही वे संगठन स्तर पर रिपॉजिटरी के लिए कॉन्फ़िगर न किए गए हों। उस रिपॉजिटरी पर लागू होने वाली संगठन स्तरीय ऑप्ट-आउट सेटिंग्स को अनदेखा कर दिया जाता है। यदि असत्य है: रिपॉजिटरी Allstar प्रवर्तनों में ऑप्ट-इन नहीं कर सकते यदि वे संगठन स्तर पर कॉन्फ़िगर नहीं हैं। |
| रिपॉजिटरी | पथ | शर्त |
|---|
myapp | .allstar/branch_protection.yaml | जब "repo override" की अनुमति है। |
.allstar | myapp/branch_protection.yaml | हर बार। |
.allstar | branch_protection.yaml | हर बार। |
.github | allstar/myapp/branch_protection.yaml | यदि .allstar रिपॉजिटरी मौजूद नहीं है। |
.github | allstar/branch_protection.yaml | यदि .allstar रिपॉजिटरी मौजूद नहीं है। |