पाठ 11 / 25

Protected Paths

Agent के CI, infrastructure, secrets और dependency files बदलने से पहले मंज़ूरी माँगें।

कुछ files ज़्यादा मायने रखती हैं

हर फ़ाइल बराबर नहीं। .github/workflows/*, infrastructure कोड, deployment config, .env*, private keys या dependency lockfiles में बदलाव production को प्रभावित कर सकता है या typo-सुधार से कहीं ज़्यादा access leak कर सकता है। इन्हें protected paths के रूप में सूचीबद्ध करें: उन पर edits रोके जाते हैं या स्पष्ट मंज़ूरी चाहिए, और उन्हें छूने वाला diff review में चिह्नित होता है।

Protected paths मिलाना, चलाकर

मैंने यह Python के fnmatch से चलाया। Workflow फ़ाइल और .env.local चिह्नित होती हैं; सामान्य source और docs नहीं।

import fnmatch
PROTECTED = [".github/workflows/*", "infra/*", "*.pem", ".env*", "package-lock.json"]

def touches_protected(paths):
    return [p for p in paths if any(fnmatch.fnmatch(p, g) for g in PROTECTED)]

print(touches_protected(["src/app.py", ".github/workflows/deploy.yml", ".env.local", "README.md"]))

Output:

['.github/workflows/deploy.yml', '.env.local']

इसे CODEOWNERS से पक्का करें

GitHub पर CODEOWNERS फ़ाइल और branch protection संवेदनशील paths के बदलावों के लिए नामित reviewer ज़रूरी करते हैं। यह वही नियम इंसानों और agents दोनों पर लागू करता है, भले स्थानीय tool नीति पार हो जाए।

त्वरित जाँच: कौन-सी फ़ाइल आम तौर पर protected path होनी चाहिए?

  • किसी helper का unit test
  • README का अनुच्छेद
  • Code comment
  • CI workflow फ़ाइल
Answer

CI workflow फ़ाइल — CI files तय करती हैं कि repository secrets के साथ क्या चलता है, इसलिए बदलावों की अतिरिक्त जाँच चाहिए।