
CLI और MCP सर्वर जो 14+ पारिस्थितिकी तंत्रों में ज्ञात कमजोरियों के लिए पैकेज संस्करणों की जाँच करता है, जिनमें npm, PyPI, crates.io, Go मॉड्यूल और GitHub Actions शामिल हैं। हुक और स्किल्स के माध्यम से AI एजेंटों के साथ एकीकृत होता है।
__ __ __
___/ /___ ___ / /________ _______/ /_
/ _ / __ \/ _ \/ __/ ___/ / / / ___/ __/
/ __/ /_/ / __/ /_/ / / /_/ (__ ) /_
\__,_/\____/ .___/\__/_/ \__,_/____/\__/
/_/
deptrust एक CLI है जो npm, PyPI, crates.io, Go modules, RubyGems, NuGet, Maven, Packagist, pub.dev, CocoaPods, Hex.pm, Hackage, GitHub Actions और अन्य पारिस्थितिकी तंत्रों में पैकेज संस्करणों की ज्ञात कमजोरियों की जाँच करता है।
यह CLI के रूप में और MCP सर्वर के रूप में स्थानीय रूप से चलता है। यह सीधे सार्वजनिक पैकेज रजिस्ट्री और OSV APIs को कॉल करता है; किसी होस्टेड deptrust सेवा पर भरोसा करने या उसे कॉन्फ़िगर करने की आवश्यकता नहीं है।
यह टूल उस निराशा से जन्मा है जो AI एजेंटों द्वारा लगातार पुराने संस्करणों का उपयोग करने से होती है।
समर्थित पारिस्थितिकी तंत्र:
@clidey/ux जैसे scoped पैकेज सहितgroupId:artifactId पैकेज नामों का उपयोग होता हैvendor/package पैकेज नामों का उपयोग होता हैowner/repo पैकेज नामों और संस्करण के रूप में टैग, ब्रांच refs या commit SHA का उपयोग होता हैdeptrust वर्तमान में ज्ञात कमजोरियों की रिपोर्ट करता है और एक सरल अनुशंसा देता है:
| Highest known severity | Recommendation |
|---|---|
| critical | block |
| high | block |
| medium / unknown | review |
| low | allow |
| none found | allow |
allow का अर्थ है कि सार्वजनिक डेटा स्रोतों में कोई अवरोधक ज्ञात कमजोरी नहीं मिली। यह सिद्ध नहीं करता कि कोई पैकेज सुरक्षित है।
deptrust ऐसे जोखिम संकेत भी उत्सर्जित करता है जो CVE नहीं हैं। उदाहरण के लिए, पिछले 72 घंटों में प्रकाशित एक संस्करण समीक्षा के लिए चिह्नित किया जाता है ताकि कोई एजेंट ब्रांड-नए रिलीज़ को आँख मूंदकर इंस्टॉल न करे।
Advisory प्रदाताओं से समानांतर रूप से पूछताछ की जाती है:
प्रदाता कवरेज पारिस्थितिकी तंत्र के अनुसार भिन्न होता है। यदि deptrust रजिस्ट्री मेटाडेटा हल कर सकता है लेकिन कोई कॉन्फ़िगर किया गया कमजोरी प्रदाता उस पारिस्थितिकी तंत्र का समर्थन नहीं करता, तो यह पैकेज को सुरक्षित मानने के बजाय unknown लौटाता है।
प्रदाता कवरेज:
| Ecosystem | Registry metadata | OSV | GitHub Advisory DB |
|---|---|---|---|
| npm | yes | yes | yes |
| PyPI | yes | yes | yes |
| Cargo / crates.io | yes | yes | yes |
| Go modules | yes | yes | yes |
| RubyGems | yes | yes | yes |
| NuGet | yes | yes | yes |
| Maven | yes | yes | yes |
| Packagist / Composer | yes | yes | yes |
| pub.dev | yes | yes | yes |
| CocoaPods | yes | no | yes |
| Hex.pm | yes | yes | yes |
| Hackage | yes | yes | no |
| GitHub Actions | yes | yes | yes |
JSON आउटपुट में advisory कवरेज फ़ील्ड शामिल हैं:
checked_providers: कमजोरी प्रदाता जिन्हें deptrust ने वास्तव में क्वेरी कियाskipped_providers: कॉन्फ़िगर किए गए प्रदाता जिन्हें छोड़ दिया गया क्योंकि पारिस्थितिकी तंत्र असमर्थित हैadvisory_coverage: full, partial, none, या erroradvisory_coverage_reason: कवरेज मान के लिए संक्षिप्त स्पष्टीकरणregistry_verification: verified जब रजिस्ट्री मेटाडेटा ने संस्करण की पुष्टि की, या unverified जब क्षणिक रजिस्ट्री विफलता के बाद सटीक-संस्करण जाँच जारी रहीregistry_verification_reason: सत्यापन अनुपलब्ध होने पर रजिस्ट्री त्रुटिसटीक-संस्करण जाँच अभी भी advisory प्रदाताओं से क्वेरी करती है जब रजिस्ट्री सत्यापन अस्थायी रूप से अनुपलब्ध होता है। वह परिणाम हमेशा गैर-इंस्टॉल योग्य होता है और उसे कभी allow अनुशंसा नहीं मिलती। latest, अज्ञात पैकेजों और निश्चित रूप से अस्तित्वहीन संस्करणों की जाँच के लिए अभी भी सफल रजिस्ट्री समाधान आवश्यक है।
HTTP अनुरोध 429, 502, 503 और 504 प्रतिक्रियाओं को कुल तीन प्रयासों तक दोहराते हैं। पुनर्प्रयास छोटे घातांकीय विलंब का उपयोग करते हैं और दो सेकंड तक के Retry-After मानों का सम्मान करते हैं; अधिक लंबी सर्वर-अनुरोधित प्रतीक्षाएँ तेज़ी से विफल हो जाती हैं ताकि CLI हैंग न हो। समाप्त हुए advisory पुनर्प्रयास परिणाम को अधूरा बना देते हैं और allow अनुशंसा को रोकते हैं।
GitHub Advisory Database और GitHub Actions API अनुरोध अल्पकालिक, न्यूनतम-विशेषाधिकार वाले GitHub App टोकन का उपयोग कर सकते हैं। CI में, इसे DEPTRUST_GITHUB_TOKEN के माध्यम से पास करें:
DEPTRUST_GITHUB_TOKEN="$GITHUB_APP_TOKEN" deptrust check npm lodash 4.17.20
क्रेडेंशियल प्राथमिकता DEPTRUST_GITHUB_TOKEN, फिर GITHUB_TOKEN, और फिर GH_TOKEN है। स्थानीय उपयोग के लिए, वैकल्पिक GitHub CLI फ़ॉलबैक DEPTRUST_GITHUB_AUTH=gh deptrust check ... के साथ स्पष्ट रूप से सक्षम किया जाता है; यह बिना संकेत दिए gh auth token चलाता है। यदि कोई क्रेडेंशियल उपलब्ध नहीं है, तो DepTrust बिना प्रमाणीकरण के जारी रहता है। GitHub API रेट-लिमिट या अनुमति विफलता निदान के साथ unknown उत्पन्न करती है और उसे कभी भी केवल-OSV सफलता नहीं माना जाता।
DepTrust कभी भी GitHub टोकन संग्रहीत, बंडल, कैश, लॉग, टेलीमीटर या उत्सर्जित नहीं करता। प्रमाणीकरण हेडर केवल https://api.github.com को भेजे जाते हैं।
सटीक संस्करण जाँचें:
deptrust check npm lodash 4.17.20
सामान्य प्रतिक्रिया का उदाहरण:
npm [email protected]: 2 known vulnerabilities found
recommendation: block
risk_score: 80
नवीनतम संस्करण जाँचें:
deptrust check pypi requests latest
JSON लौटाएँ:
deptrust check --json cargo serde latest
Go मॉड्यूल जाँचें:
deptrust check go golang.org/x/crypto latest
RubyGems, NuGet या Maven जाँचें:
deptrust check rubygems rails latest
deptrust check nuget Newtonsoft.Json latest
deptrust check maven org.apache.logging.log4j:log4j-core latest
Packagist, pub.dev, CocoaPods, Hex.pm, Hackage या GitHub Actions जाँचें:
deptrust check packagist monolog/monolog latest
deptrust check pub http latest
deptrust check cocoapods AFNetworking latest
deptrust check hex plug latest
deptrust check hackage aeson latest
deptrust check github-actions actions/checkout v7.0.0
deptrust check github-actions actions/checkout main
GitHub Actions के लिए, पूर्ण commit SHA को पिन किया हुआ माना जाता है। v4.2.2 जैसे पूर्ण semver टैग अतिरिक्त पिनिंग संकेत के बिना स्वीकार किए जाते हैं। v4 जैसे केवल-मेजर टैग और main जैसे ब्रांच refs मान्य refs हैं, लेकिन deptrust एक समीक्षा संकेत जोड़ता है क्योंकि वे बदल सकते हैं।
JSON प्रतिक्रिया का उदाहरण: