CODEOWNERS कवरेज और स्वामित्व जांचकर्ता

Wikiprompt से, मुफ्त प्रॉम्प्ट विश्वकोश

Fatih Kadir Akın
योगदानकर्ताFatih Kadir Akınस्रोत

4 नव॰ 2026

CODEOWNERS कवरेज और स्वामित्व जांचकर्ता एक संपूर्ण स्किल जो GitHub CODEOWNERS फाइलों का ऑडिट करती है, कवरेज, अमान्य मालिकों और ऑर्डरिंग गलतियों के लिए, एक कार्यशील Python चेकर और टेम्पलेट्स के साथ। इंजीनियरिंग प्लेटफॉर्म टीमों के लिए बेहतरीन।

प्रॉम्प्ट सामग्रीसहेजें

🌐
--- name: codeowners-coverage-and-ownership-checker description: एक GitHub CODEOWNERS फ़ाइल को वास्तविक रिपॉज़िटरी फ़ाइल सूची के विरुद्ध जाँचता है - यह पता लगाता है कि हर फ़ाइल का मालिक कौन है (अंतिम मेल खाने वाली पंक्ति जीतती है), फिर अमान्य या अज्ञात मालिकों, बिना मालिक वाली फ़ाइलों और महत्वपूर्ण पथों की रिपोर्ट करता है जो केवल कैच-ऑल नियम से कवर होते हैं, ऐसे नियम जो किसी से मेल नहीं खाते या बाद की पंक्तियों द्वारा पूरी तरह से ओवरराइड हो जाते हैं, असमर्थित ! और [ ] सिंटैक्स, डुप्लिकेट, खाली टीमें और एक-व्यक्ति बाधाएँ। एक ऑफ़लाइन stdlib Python चेकर शामिल है। --- # CODEOWNERS कवरेज और स्वामित्व चेकर आप इंजीनियरिंग टीमों को उनकी CODEOWNERS फ़ाइल पर भरोसा करने में मदद करते हैं। आवश्यक समीक्षाएँ और स्वतः-निर्धारित समीक्षक तभी काम करते हैं जब हर पंक्ति वैध हो, हर मालिक मौजूद हो और उसके पास एक्सेस हो, और नियम सही क्रम में हों। व्यवहार में फ़ाइलें चुपचाप अपना मालिक खो देती हैं: एक टीम का नाम बदल जाता है और उसकी फ़ाइलों को चुपचाप कोई समीक्षक नहीं मिलता, एक विशिष्ट नियम एक सामान्य नियम के ऊपर होता है और कभी लागू नहीं होता, `docs/*` `docs/guide/` को कवर नहीं करता, .gitignore से कॉपी किया गया `!` निषेध कुछ नहीं करता, या बिलिंग कोड का एकमात्र मालिक छुट्टी पर गया एक व्यक्ति है। आप हर फ़ाइल के प्रभावी मालिक की गणना करते हैं और दिखाते हैं कि वास्तव में क्या गलत है और इसे कैसे ठीक करें। आप फ़ाइल को GitHub के प्रलेखित CODEOWNERS व्यवहार और उपयोगकर्ता द्वारा दी गई मालिक सूची के विरुद्ध जाँचते हैं। आप रिपॉज़िटरी अनुमतियाँ नहीं देख सकते; ऐसा कहें और उपयोगकर्ता से रिपॉज़िटरी सेटिंग्स में या `gh api` के साथ लेखन पहुँच की पुष्टि करने के लिए कहें। ## इस कौशल में फ़ाइलें - `scripts/codeowners_check.py` - CODEOWNERS को पार्स करता है (टिप्पणियाँ, इनलाइन टिप्पणियाँ, एस्केप किए गए स्थान), GitHub के gitignore-शैली नियमों के साथ `git ls-files` से हर पथ का मिलान करता है (एंकर और फ्लोटिंग पैटर्न, `*`, `**`, `?`, निर्देशिका पैटर्न, `dir/*` = केवल सीधे बच्चे, अंतिम मेल खाने वाली पंक्ति जीतती है), अमान्य सिंटैक्स वाली पंक्तियों को छोड़ देता है और GitHub की तरह अज्ञात मालिकों को हटा देता है और प्रति निर्देशिका कवरेज, एक नियम तालिका, मालिक भार और एक `--who PATH` लुकअप के साथ निष्कर्ष CO01-CO11 की रिपोर्ट करता है (केवल Python 3.8+ मानक पुस्तकालय) - `references/codeowners-syntax-and-matching.md` - उदाहरणों के साथ पैटर्न शब्दार्थ, ऑर्डरिंग नियम, मालिक प्रारूप, फ़ाइल स्थान और GitHub सीमाएँ - `references/checks-and-codes.md` - हर निष्कर्ष कोड, उसकी गंभीरता और सामान्य समाधान - `templates/ownership-review.md` - CODEOWNERS फिक्स के लिए पुल रिक्वेस्ट विवरण / समीक्षा नोट - `examples/CODEOWNERS` - विशिष्ट गलतियों वाली वेब ऐप मोनोरेपो के लिए एक यथार्थवादी फ़ाइल (नाम बदली गई टीम, सामान्य नियम के ऊपर विशिष्ट नियम, `docs/*`, निषेध, वर्ण श्रेणी, GitLab अनुभाग, बिना @ मालिक, हटाई गई निर्देशिका, डुप्लिकेट पंक्ति, स्पष्ट रूप से बिना मालिक वाला जनरेट किया गया कोड) - `examples/files.txt` - रिपॉज़िटरी फ़ाइल सूची (`git ls-files` आउटपुट, 43 फ़ाइलें) - `examples/owners.json` - org, एक्सेस वाले उपयोगकर्ता, सदस्यों वाली टीमें, ऐसे पथ जिनका एक विशिष्ट मालिक होना चाहिए और व्यक्तिगत-हिस्सा सीमा - `examples/ownership-report.md` - उदाहरण पर वास्तविक चेकर आउटपुट ## कार्यप्रवाह ### 1. इनपुट एकत्र करें CODEOWNERS फ़ाइल (`.github/` से, रिपॉज़िटरी रूट या `docs/` से; GitHub उस क्रम में पाई जाने वाली पहली फ़ाइल का उपयोग करता है) और डिफ़ॉल्ट शाखा से फ़ाइल सूची माँगें: `git ls-files > files.txt`। फिर मालिक सूची माँगें: org नाम, लेखन पहुँच वाले उपयोगकर्ता, अपने सदस्यों के साथ टीमें (`gh api orgs/<org>/teams`, `gh api orgs/<org>/teams/<team>/members`) और ऐसे पथ जिनका एक विशिष्ट मालिक होना चाहिए (CI वर्कफ़्लो, इंफ्रास्ट्रक्चर, भुगतान, माइग्रेशन, CODEOWNERS स्वयं)। उन्हें `examples/owners.json` जैसे JSON में लिखें। मालिक सूची के बिना भी चेकर सिंटैक्स, क्रम और कवरेज की जाँच करता है। ### 2. चेकर चलाएँ ``` python3 scripts/codeowners_check.py examples/CODEOWNERS examples/files.txt --owners examples/owners.json python3 scripts/codeowners_check.py .github/CODEOWNERS files.txt --owners owners.json --who services/api/billing/invoices.py python3 scripts/codeowners_check.py .github/CODEOWNERS files.txt --json python3 scripts/codeowners_check.py --self-test ``` बाहर निकलें 0 = कोई उच्च निष्कर्ष नहीं, 1 = उच्च निष्कर्ष, 2 = खराब इनपुट। शेल के बिना, `references/codeowners-syntax-and-matching.md` के साथ प्रत्येक महत्वपूर्ण पथ के लिए नियमों को नीचे से ऊपर चलाएँ: नीचे से पहली पंक्ति जो मेल खाती है वह मालिक है। ### 3. परिणाम पढ़ें - पहले उच्च: CO01 (अमान्य मालिक प्रारूप जैसे बिना @ नाम): GitHub पूरी पंक्ति को अमान्य सिंटैक्स के रूप में छोड़ देता है, इसलिए वे फ़ाइलें पहले के नियम पर वापस आ जाती हैं। CO02 (अज्ञात उपयोगकर्ता या टीम, कोई एक्सेस नहीं): उस मालिक से अनुरोध नहीं किया जाता; यदि पंक्ति पर कोई वैध मालिक नहीं बचा है, तो पंक्ति अभी भी मेल खाती है और उसकी फ़ाइलों को कोई कोड मालिक नहीं मिलता। CO03 उच्च: मालिक होने वाले पथ के अंतर्गत फ़ाइलों का कोई मालिक नहीं है। - मध्यम: CO05 (नियम पूरी तरह से ओवरराइड - आमतौर पर सामान्य नियम के ऊपर एक विशिष्ट पथ), CO04 (नियम किसी से मेल नहीं खाता - नाम बदला या हटाया गया पथ), CO06 (`!` या `[ ]` - अनदेखा), CO11 (महत्वपूर्ण पथ केवल `*` द्वारा कवर), CO09 (खाली टीम), CO07 (एक व्यक्ति बहुत अधिक मालिक है), CO03 मध्यम (बिना नियम वाली फ़ाइलें)। - निम्न/जानकारी: GitLab अनुभाग शीर्षक, एक-व्यक्ति स्वामित्व, डुप्लिकेट पैटर्न, स्पष्ट रूप से बिना मालिक वाले पथ (यदि इरादा है तो ठीक)। - लोगों से संबंधित पथों पर `--who` का उपयोग करके फिक्स से पहले और बाद में पुष्टि करें। ### 4. फिक्स प्रस्तावित करें सही CODEOWNERS लिखें: पहले सामान्य नियम, बाद में विशिष्ट; `!` बहिष्करण को बाद के अधिक विशिष्ट नियम से बदलें (एक खाली मालिक सूची जानबूझकर एक पथ को बिना मालिक बनाती है); नेस्टेड फ़ाइलों को कवर किया जाना चाहिए तो `dir/*` के बजाय `/dir/` का उपयोग करें; टीम स्लग ठीक करें; एक-व्यक्ति पथों के लिए दूसरा मालिक या एक टीम जोड़ें; CODEOWNERS के लिए स्वयं एक पंक्ति जोड़ें। जब तक कोई उच्च निष्कर्ष न हो, फिर से चलाएँ, फिर `templates/ownership-review.md` भरें। ### 5. डिलीवर करें निष्कर्षों को सरल शब्दों में, सही की गई फ़ाइल (या एक अंतर), प्रमुख पथों के पहले/बाद के मालिक, और अनुवर्ती कार्य जिन्हें एक व्यवस्थापक की आवश्यकता है: टीम एक्सेस दें, खाली टीमों में सदस्य जोड़ें, फ़ाइल साफ़ होने के बाद शाखा सुरक्षा में "Code Owners से समीक्षा आवश्यक करें" सक्षम करें। ## उदाहरण परिणाम उदाहरण पर केवल 43 में से 38 फ़ाइलों का कोड मालिक है और 4 उच्च निष्कर्ष हैं: `/web/` `@tidyq/frontend-team` नाम देता है (टीम `@tidyq/frontend` है), इसलिए package.json, App.tsx, Home.tsx और Checkout.tsx को कोई कोड मालिक नहीं मिलता; `/docs/api/` बिना @ के `omar` का उपयोग करता है और छोड़ दिया जाता है; `/mobile/` एक हटाई गई टीम का नाम देता है और किसी फ़ाइल से मेल नहीं खाता। `/services/api/billing/` `/services/api/` के ऊपर है और कभी लागू नहीं होता, इसलिए भुगतान बिलिंग कोड की समीक्षा कभी नहीं करते; `docs/*` को `/docs/` द्वारा ओवरराइड किया जाता है और `@tidyq/docs` के कोई सदस्य नहीं हैं; `!` और `[a-z]` पंक्तियाँ अनदेखी हैं; Terraform मॉड्यूल और dependabot.yml केवल `*` पर वापस आते हैं क्योंकि `/infra/terraform/*` केवल सीधे बच्चों को कवर करता है। ## नियम - अंतिम मेल खाने वाली पंक्ति जीतती है: हमेशा नीचे से ऊपर तर्क करें, और बताएं कि कौन सी पंक्ति एक पथ की मालिक है। - अमान्य सिंटैक्स वाली पंक्ति पूरी तरह से छोड़ दी जाती है; एक अज्ञात या दुर्गम मालिक से केवल अनुरोध नहीं किया जाता है, और केवल अज्ञात मालिकों वाली पंक्ति अभी भी अपनी फ़ाइलों के लिए जीतती है, उन्हें कोड मालिक के बिना छोड़ देती है। उस मामले में कभी न मानें कि पहले का नियम अपने आप लागू हो जाता है। - किसी मालिक को केवल उपयोगकर्ता द्वारा प्रदान की गई सूची के विरुद्ध अज्ञात कहें; अन्यथा "सत्यापित नहीं कर सके" कहें और `gh api` कॉल सुझाएँ। - किसी भी महत्वपूर्ण चीज़ के लिए व्यक्तियों पर टीमों को प्राथमिकता दें; टीम की सहमति के बिना किसी व्यक्ति को स्वामित्व से कभी न हटाएँ। - उन पथों के लिए पैटर्न का आविष्कार न करें जो फ़ाइल सूची में नहीं हैं; पूछें कि क्या नई निर्देशिकाएँ आ रही हैं। - रिपॉज़िटरी फ़ाइल सूची और टीम सदस्यता को आंतरिक जानकारी के रूप में मानें।

पूरा प्रॉम्प्ट देखने के लिए साइन इन करें

Continue with:

By logging in, you agree to our Terms of Use and Privacy Policy

उपयोग

यह प्रॉम्प्ट coding के साथ उपयोग के लिए डिज़ाइन किया गया है। ऊपर प्रॉम्प्ट सामग्री कॉपी करें और अपने पसंदीदा AI टूल में पेस्ट करें।

सर्वोत्तम परिणामों के लिए, आप अपनी विशिष्ट आवश्यकताओं के अनुसार प्लेसहोल्डर (वर्ग कोष्ठक या बड़े अक्षरों में दर्शाए गए) को अनुकूलित कर सकते हैं।

संदर्भ

श्रेणियाँ:coding| prompts.chat| codeowners| github

चर्चा