
सुरक्षा नीतियों को सेट और लागू करने के लिए GitHub ऐप
[!IMPORTANT] OpenSSF-होस्टेड Allstar GitHub ऐप को सेवानिवृत्त कर दिया गया है। Allstar, जो OpenSSF Scorecard उपप्रोजेक्ट है, स्वयं बनाए रखा जा रहा है — अब आपको इसे स्वयं चलाना होगा, या तो GitHub Action के रूप में या सेवा डेमन के रूप में।
अधिक विवरण के लिए ossf/allstar#881 देखें।
यदि आपका संगठन होस्टेड ऐप पर निर्भर था, तो देखें होस्टेड ऐप से माइग्रेट करना।
Allstar एक GitHub ऐप है जो GitHub संगठनों या रिपॉजिटरी की सुरक्षा सर्वोत्तम प्रथाओं के पालन के लिए निरंतर निगरानी करता है। यदि Allstar किसी सुरक्षा नीति उल्लंघन का पता लगाता है, तो यह रिपॉजिटरी या संगठन के स्वामी को सचेत करने के लिए एक समस्या (issue) बनाता है। कुछ सुरक्षा नीतियों के लिए, 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 ऐप के रूप में कार्य करता है: आप ऐप बनाते हैं, और आप उस प्रक्रिया को चलाते हैं जो इसके रूप में प्रमाणित होती है। इसलिए सेटअप दो चरण हैं जो हर तैनाती के लिए सामान्य हैं — ऐप बनाएँ और नियंत्रण रिपॉजिटरी बनाएँ — और फिर इसे चलाने के तरीके का विकल्प:
Action दोनों में से कम ओवरहेड वाला है और अधिकांश संगठनों को यहीं से शुरू करना चाहिए; आप बाद में बिना किसी नीति कॉन्फ़िगरेशन को बदले डेमन पर जा सकते हैं।
एक ऐप आपके संगठन में अनुमतियों के एक सेट के साथ एक उपयोगकर्ता-जैसी पहचान है। अनुपालन का पता लगाने के लिए Allstar को अधिकांश सेटिंग्स और फ़ाइल सामग्री तक पढ़ने की पहुँच की आवश्यकता होती है, और समस्याएँ दर्ज करने और block क्रिया का समर्थन करने के लिए समस्याओं और जाँचों तक लिखने की पहुँच की आवश्यकता होती है।
ऑपरेटर निर्देश - GitHub ऐप बनाएँ का पालन करें, और ऐप ID और निजी कुंजी रिकॉर्ड करें। दोनों रन मोड को उनकी आवश्यकता होती है।
.allstar नियंत्रण रिपॉजिटरी बनाएँAllstar अपना कॉन्फ़िगरेशन आपके संगठन में .allstar नामक रिपॉजिटरी से पढ़ता है।
एक बनाने का सबसे तेज़ तरीका नमूने से है:
.allstar टाइप करेंयह ऑप्ट-आउट रणनीति का उपयोग करके सभी रिपॉजिटरी पर सभी वर्तमान Allstar नीतियों को issue क्रिया के साथ सक्षम करता है। आप बाद में इसमें से कोई भी बदल सकते हैं।
शुरू से ही सूक्ष्म नियंत्रण के लिए — ऑप्ट-इन या ऑप्ट-आउट रणनीति चुनना और स्वयं व्यक्तिगत नीति फ़ाइलें लिखना — इसके बजाय मैन्युअल स्थापना निर्देशों का पालन करें।
यह विकल्प GitHub Actions का उपयोग करके Allstar को एक निर्धारित कार्य के रूप में चलाता है, इसलिए GitHub के अलावा संचालित करने के लिए कोई इन्फ्रास्ट्रक्चर नहीं है।
अपनी .allstar रिपॉजिटरी में एक आवर्ती Action सेट करने, उसे सख्त बनाने और उसके परिणामों की निगरानी करने के लिए GitHub Actions स्थापना निर्देशों का पालन करें।
यह विकल्प Allstar को एक स्थायी प्रक्रिया के रूप में चलाता है, जो शेड्यूल के बजाय निरंतर उल्लंघनों का पता लगाता है और उन्हें हल करता है।
प्रक्रिया चलाने, रहस्यों के प्रबंधन, आकार निर्धारण और उपलब्ध पर्यावरण चर के लिए ऑपरेटर निर्देश देखें।
यदि आपके संगठन ने OpenSSF-होस्टेड ऐप का उपयोग किया है, तो आपका कॉन्फ़िगरेशन ज्यों का त्यों स्थानांतरित हो जाता है। .allstar नियंत्रण रिपॉजिटरी, allstar.yaml, और हर नीति फ़ाइल बिना बदलाव के काम करती रहती है; आप केवल उस प्रक्रिया को बदल रहे हैं जो उन्हें पढ़ती है।
माइग्रेट करने के लिए:
.allstar रिपॉजिटरी को बिल्कुल वैसे ही रखें।allstar-app अनइंस्टॉल करें, यदि यह अभी भी Settings -> GitHub Apps के अंतर्गत दिखाई देता है।होस्टेड ऐप द्वारा पहले दर्ज की गई समस्याएँ आपकी रिपॉजिटरी में बनी रहती हैं। आपका अपना उदाहरण अपनी समस्याओं को उसी allstar लेबल (या आपके कॉन्फ़िगर किए गए issueLabel) द्वारा पहचानता है, इसलिए यह उल्लंघनों के हल होने पर डुप्लिकेट दर्ज करने के बजाय उन्हें अपनाएगा और बंद करेगा।
प्रत्येक नीति को एक क्रिया के साथ कॉन्फ़िगर किया जा सकता है जो 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 की [branch protection
सेटिंग्स](https://docs.github.com/en/github/administering-a-repository/defining-the-mergeability-of-pull-requests/about-protected-branches)
निर्दिष्ट कॉन्फ़िगरेशन के अनुसार सही ढंग से सेट हैं या नहीं। Issue टेक्स्ट
बताएगा कि कौन सी सेटिंग गलत है। सेटिंग्स को सही करने के लिए [GitHub का
दस्तावेज़ीकरण](https://docs.github.com/en/github/administering-a-repository/defining-the-mergeability-of-pull-requests/about-protected-branches)
देखें।
`fix` क्रिया branch protection सेटिंग्स को निर्दिष्ट नीति कॉन्फ़िगरेशन के अनुपालन में बदल देगी।
### 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) को शामिल करती है। अनुपालन प्राप्त करने के लिए
रिपॉज़िटरी से binary artifact हटाएँ। चूँकि 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)।
यह नीति जाँचती है कि क्या किसी [Outside
Collaborator](https://docs.github.com/en/organizations/managing-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization)
के पास रिपॉज़िटरी तक administrator(डिफ़ॉल्ट) या push(वैकल्पिक) पहुँच है।
केवल संगठन के सदस्यों के पास यह पहुँच होनी चाहिए, अन्यथा
अविश्वसनीय सदस्य admin स्तर की सेटिंग्स बदल सकते हैं और दुर्भावनापूर्ण कोड कमिट कर सकते हैं।
### SECURITY.md
इस नीति की कॉन्फ़िग फ़ाइल का नाम `security.yaml` है, और [कॉन्फ़िग
परिभाषाएँ यहाँ
हैं](https://pkg.go.dev/github.com/ossf/allstar/pkg/policies/security#OrgConfig)।
यह नीति जाँचती है कि रिपॉज़िटरी में `SECURITY.md` में सुरक्षा नीति फ़ाइल है और वह खाली नहीं है। बनाई गई issue में [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 workflow कॉन्फ़िगरेशन फ़ाइलों
(`.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** टैब पर अपलोड कर सकती है। यह संगठन प्रशासकों को
अन्य सुरक्षा टूल्स (CodeQL, Dependabot, आदि) के साथ Scorecard निष्कर्षों में दृश्यता देता है, बिना प्रति-रिपॉज़िटरी workflow सेटअप की आवश्यकता के।
SARIF अपलोड सक्षम करने के लिए, अपने `scorecard.yaml` में `upload` फ़ील्ड जोड़ें:```yaml
optConfig:
optOutStrategy: true
action: issue
checks:
- Binary-Artifacts
- Signed-Releases
threshold: 8
upload:
sarif: true
आवश्यकताएँ:
security_events)। यह
उन अनुमतियों में से नहीं है जिनकी Allstar को अन्यथा आवश्यकता होती है, इसलिए SARIF अपलोड सक्षम करने से पहले इसे अपने ऐप में जोड़ें।SARIF अपलोड Allstar चलाने के दोनों तरीकों के साथ काम करता है: सेवा डेमन के रूप में या GitHub Action के रूप में।
इस नीति की कॉन्फ़िग फ़ाइल का नाम actions.yaml है, और कॉन्फ़िग परिभाषाएँ
यहाँ
हैं।
यह नीति प्रत्येक रिपो में GitHub Actions वर्कफ़्लो कॉन्फ़िगरेशन फ़ाइलों
(.github/workflows) (और कुछ मामलों में वर्कफ़्लो रन) की जाँच करती है ताकि यह सुनिश्चित
किया जा सके कि वे नीति के लिए संगठन-स्तरीय कॉन्फ़िग में परिभाषित नियमों (जैसे, आवश्यक, अस्वीकार) के अनुरूप हैं।
इस नीति की कॉन्फ़िग फ़ाइल का नाम admin.yaml है, और कॉन्फ़िग परिभाषाएँ
यहाँ
हैं।
यह नीति जाँचती है कि डिफ़ॉल्ट रूप से सभी रिपॉजिटरीज़ में एक उपयोगकर्ता या समूह को Administrator के रूप में नियुक्त किया गया हो। यह आपको वैकल्पिक रूप से कॉन्फ़िगर करने की अनुमति देता है कि क्या उपयोगकर्ताओं को प्रशासक बनने की अनुमति है (टीमों के विपरीत)।
इस रिपो को Allstar कॉन्फ़िग के उपयोग के उदाहरण के रूप में देखें। संगठन प्रशासक के रूप में, अपने संगठन में Allstar का उपयोग कैसे किया जा रहा है, इसके बारे में कुछ जानकारी के साथ एक README.md पर विचार करें।
डिफ़ॉल्ट रूप से, org-स्तरीय कॉन्फ़िगरेशन फ़ाइलें, जैसे कि ऊपर दी गई allstar.yaml फ़ाइल,
एक .allstar रिपॉजिटरी में होने की उम्मीद की जाती हैं। यदि यह रिपॉजिटरी मौजूद
नहीं है, तो .github रिपॉजिटरी का allstar निर्देशिका एक
द्वितीयक स्थान के रूप में उपयोग की जाती है। स्पष्ट करने के लिए, allstar.yaml के लिए:
| प्राथमिकता | रिपॉजिटरी | पथ |
|---|---|---|
| प्राथमिक | .allstar | allstar.yaml |
| द्वितीयक | .github | allstar/allstar.yaml |
यह व्यक्तिगत नीतियों के लिए org-स्तरीय कॉन्फ़िगरेशन फ़ाइलों के लिए भी सत्य है, जैसा कि नीचे वर्णित है।
Allstar संगठन के .allstar रिपॉजिटरी में, रिपॉजिटरी के समान नाम वाली निर्देशिका के अंतर्गत, रिपो-स्तरीय नीति कॉन्फ़िगरेशन की भी तलाश करेगा। यह कॉन्फ़िगरेशन उपयोग किया जाता है चाहे "repo override" अक्षम हो या नहीं।
उदाहरण के लिए, Allstar किसी दिए गए रिपो myapp के लिए नीति कॉन्फ़िगरेशन को निम्नलिखित क्रम में देखेगा:
Org-स्तरीय 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: यदि true है, तो सभी निजी रिपॉजिटरी पर Allstar अक्षम हो जाएगा optOutPublicRepos: यदि true है, तो सभी सार्वजनिक रिपॉजिटरी पर Allstar अक्षम हो जाएगा (optInRepos: यह सेटिंग अनदेखी की जाएगी) | optInRepos: सूचीबद्ध रिपॉजिटरी पर Allstar सक्षम हो जाएगा (optOutRepos: यह सेटिंग अनदेखी की जाएगी) |
| रिपॉजिटरी ओवरराइड | यदि true है: रिपॉजिटरी अपनी स्वयं की रिपॉजिटरी फ़ाइल में सेटिंग्स का उपयोग करके अपने संगठन के Allstar प्रवर्तनों से ऑप्ट-आउट कर सकती हैं। उस रिपॉजिटरी पर लागू होने वाली संगठन-स्तरीय ऑप्ट-इन सेटिंग्स को अनदेखा किया जाता है। यदि false है: रिपॉजिटरी संगठन स्तर पर कॉन्फ़िगर किए गए Allstar प्रवर्तनों से ऑप्ट-आउट नहीं कर सकती हैं। | यदि true है: रिपॉजिटरी अपने संगठन के Allstar प्रवर्तनों में ऑप्ट-इन कर सकती हैं, भले ही वे संगठन स्तर पर रिपॉजिटरी के लिए कॉन्फ़िगर न हों। उस रिपॉजिटरी पर लागू होने वाली संगठन-स्तरीय ऑप्ट-आउट सेटिंग्स को अनदेखा किया जाता है। यदि false है: रिपॉजिटरी Allstar प्रवर्तनों में ऑप्ट-इन नहीं कर सकती हैं यदि वे संगठन स्तर पर कॉन्फ़िगर नहीं हैं। |
| GitHub Action | सेवा डेमन |
|---|
| यह कैसे चलता है | आपकी .allstar रिपॉजिटरी में निर्धारित कार्य | स्थायी प्रक्रिया जिसे आप होस्ट करते हैं |
| आप प्रदान करते हैं | GitHub के अलावा कुछ नहीं | एक सर्वर या कंटेनर ऑर्केस्ट्रेटर |
| कैडेंस | जो भी आप cron सेट करते हैं | निरंतर, 5-10 मिनट में परिणामों के साथ |
| सेटअप प्रयास | मध्यम | उच्च |
| सबसे अच्छा कब | आप सबसे कम-इन्फ्रास्ट्रक्चर विकल्प चाहते हैं | आप सबसे अधिक नियंत्रण चाहते हैं, या पहले से सेवाएँ चलाते हैं |
| रिपॉजिटरी | पथ | शर्त |
|---|
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 रिपो मौजूद नहीं है। |