
Git-मूल निर्भरता प्रवेश नियंत्रक। प्रत्येक निर्भरता परिवर्तन पर विश्वास संकेतों का मूल्यांकन करता है और जब पैकेज आपकी टीम की नीति में विफल होते हैं तो कमिट या बिल्ड को अवरुद्ध करता है। पूर्व-कमिट हुक + अंतर्निहित अनुमोदन कार्यप्रवाह के साथ CI गेट।
एक Git-नेटिव डिपेंडेंसी एडमिशन कंट्रोलर। हर डिपेंडेंसी बदलाव पर विश्वास संकेतों का मूल्यांकन करता है।

trustlock एक Git प्री-कमिट हुक (सलाहकार मोड) और एक CI जाँच (लागू मोड) के रूप में चलता है:
--enforce): उल्लंघनों पर रोक लगाता है, exit 1 करता है, आधार रेखा को कभी आगे नहीं बढ़ाता है।प्रति-पैकेज मूल्यांकित विश्वास संकेत:
npm install -g trustlock
Node.js >= 18.3 चाहिए।
# 1. अपने प्रोजेक्ट में trustlock इनिशियलाइज़ करें
trustlock init
# 2. Git प्री-कमिट हुक इंस्टॉल करें
trustlock install-hook
# 3. वैकल्पिक रूप से अपनी वर्तमान डिपेंडेंसी स्थिति की समीक्षा करें
trustlock audit
init के बाद, trustlock बनाता है:
.trustlockrc.json — नीति कॉन्फ़िगरेशन.trustlock/baseline.json — विश्वसनीय डिपेंडेंसी स्नैपशॉट.trustlock/approvals.json — अनुमोदन रिकॉर्ड.trustlock/.cache/ — रजिस्ट्री कैश (gitignored).trustlockrc.json और .trustlock/baseline.json को अपने रिपॉजिटरी में कमिट करें।
# सामान्य रूप से dep इंस्टॉल चलाएँ
npm install [email protected]
# trustlock check प्री-कमिट हुक के माध्यम से स्वचालित रूप से चलता है।
# मैन्युअल रूप से चलाने के लिए:
trustlock check
# आउटपुट जब सभी पैकेज स्वीकार हो जाते हैं:
# ✔ [email protected] — स्वीकृत
जब सभी पैकेज पास हो जाते हैं, trustlock check आधार रेखा को स्वचालित रूप से आगे बढ़ाता है (केवल सलाहकार मोड में) और exit 0 करता है।
# एक नया पैकेज कूलडाउन नियम में विफल रहता है:
trustlock check
# ✖ [email protected] — अवरुद्ध
# exposure:cooldown 2 घंटे पहले प्रकाशित (नीति को 72h चाहिए)
# स्वीकृत करने के लिए चलाएँ: trustlock approve [email protected] --override cooldown --reason "..." --expires 7d
# ओवरराइड स्वीकृत करें, फिर दोबारा जाँचें:
trustlock approve [email protected] \
--override cooldown \
--reason "फीचर X के लिए आवश्यक; टीम समीक्षा द्वारा सुरक्षित सत्यापित" \
--expires 7d
trustlock check
# ✔ [email protected] — अनुमोदन के साथ स्वीकृत
# मोनोरेपो पैकेजों में संस्करण बहाव और प्रोवेनेंस असंगति का पता लगाएँ
trustlock audit --compare packages/frontend packages/backend packages/shared
trustlock के साथ दो बिल्ट-इन प्रोफ़ाइल आती हैं जिन्हें --profile से चुना जा सकता है:
| प्रोफ़ाइल | प्रभाव |
|---|---|
strict | 168h कूलडाउन, सभी पैकेजों के लिए प्रोवेनेंस आवश्यक |
relaxed | 24h कूलडाउन, प्रोवेनेंस रिग्रेशन या प्रकाशक परिवर्तन पर कोई रोक नहीं |
# CI में strict प्रोफ़ाइल का उपयोग करें
trustlock check --enforce --profile strict
टीमें एक साझा URL में नीति केंद्रीकृत कर सकती हैं और प्रति रिपोजिटरी इसका विस्तार कर सकती हैं:
{
"extends": "https://policy.example.com/trustlockrc.json",
"cooldown_hours": 96
}
रिपोजिटरी कॉन्फ़िगरेशन केवल संगठन नीति को कड़ा कर सकते हैं — फ़्लोर प्रवर्तन रिपोजिटरी को संगठन-अनिवार्य थ्रेशोल्ड कम करने से रोकता है।
.trustlockrc.json विकल्पअपनी CI पाइपलाइन में trustlock जोड़ें:
# GitHub Actions — देखें examples/ci/github-actions.yml
- run: npx trustlock check --enforce
GitHub Actions, Lefthook और Husky कॉन्फ़िगरेशन के लिए examples/ देखें।
Trustlock कमिट समय पर लॉकफ़ाइल परिवर्तनों का मूल्यांकन करता है। यह npm install को इंटरसेप्ट या सैंडबॉक्स नहीं करता है। यदि कोई दुर्भावनापूर्ण पैकेज पोस्टइंस्टॉल स्क्रिप्ट चलाता है, तो वह trustlock के देखने से पहले निष्पादित हो जाता है। Trustlock समझौता किए गए लॉकफ़ाइल को कमिट और मर्ज होने से रोकता है, जिससे विस्फोट त्रिज्या एकल डेवलपर मशीन तक सीमित हो जाती है, पूरी टीम और प्रोडक्शन तक नहीं। इंस्टॉल-टाइम स्क्रिप्ट रोकने के लिए, --ignore-scripts या pnpm के डिफ़ॉल्ट लाइफ़साइकल स्क्रिप्ट नियंत्रण का उपयोग करें।
--ignore-scripts का उपयोग करें।npm audit या Snyk का उपयोग करें।license-checker या समान का उपयोग करें।trustlock इस निराशा से बनाया गया था कि मानक Node.js टूलचेन वास्तव में प्रोजेक्ट में क्या खिंचता है, उसके बारे में कितना निष्क्रिय है। npm install कुछ भी ला सकता है — दो मिनट पहले प्रकाशित एक पैकेज, एक जो इंस्टॉल समय पर मनमानी स्क्रिप्ट चलाता है, एक जो रातों-रात रजिस्ट्री टारबॉल से git URL में बदल गया — और आपको केवल एक लॉकफ़ाइल डिफ़ मिलता है।
खतरा मॉडल जिसे trustlock संबोधित करता है वह संकीर्ण लेकिन वास्तविक है: वह विंडो जब एक दुर्भावनापूर्ण संस्करण प्रकाशित होता है और जब वह हटाया या चिह्नित किया जाता है। वल्नरेबिलिटी स्कैनर घटना के बाद काम करते हैं। trustlock प्रवेश बिंदु पर काम करता है, इससे पहले कि कुछ भी आपके रिपोजिटरी या आपके CI में उतरे।
डिज़ाइन जानबूझकर न्यूनतम है। trustlock की कोई रनटाइम निर्भरता नहीं है — यह स्वयं एक शून्य-सप्लाई-चेन-जोखिम उपकरण है। यह किसी वल्नरेबिलिटी स्कैनर या डिपेंडेंसी ऑडिट को प्रतिस्थापित नहीं करता; यह विश्वास निरंतरता लागू करता है। एक बार जब कोई संस्करण आपकी आधार रेखा में है, तो वह विश्वसनीय है। कुछ भी नया आपकी घोषित नीति के विरुद्ध प्रवेश अर्जित करना होगा।
अनुमोदन वर्कफ़्लो उन टीमों के लिए मौजूद है जिन्हें ऑडिटेबिलिटी खोए बिना एक एस्केप हैच चाहिए। हर ओवरराइड पर टाइमस्टैम्प लगा होता है, विशिष्ट नियमों तक सीमित होता है, और समाप्त हो जाता है। clean-approvals एक प्रथम श्रेणी का कमांड है, कोई बाद का विचार नहीं।
| लॉकफ़ाइल | इकोसिस्टम | संस्करण |
|---|
package-lock.json | npm | v1, v2, v3 |
pnpm-lock.yaml | pnpm | v5, v6, v9 |
yarn.lock | yarn | क्लासिक (v1), बेरी (v2/v3) |
requirements.txt | Python (pip) | — |
uv.lock | Python (uv) | — |
| कमांड | विवरण |
|---|
trustlock init | वर्तमान प्रोजेक्ट में trustlock इनिशियलाइज़ करें |
trustlock check | नीति के विरुद्ध डिपेंडेंसी परिवर्तनों का मूल्यांकन करें |
trustlock approve <pkg>@<ver> | अवरुद्ध पैकेज को स्वीकृत करें |
trustlock audit | विश्वास स्थिति के लिए पूर्ण डिपेंडेंसी ट्री स्कैन करें |
trustlock audit --compare <dir...> | कई प्रोजेक्ट्स में डिपेंडेंसी स्थिति की तुलना करें |
trustlock clean-approvals | समाप्त अनुमोदन प्रविष्टियाँ हटाएँ |
trustlock install-hook | Git प्री-कमिट हुक इंस्टॉल करें |