
निर्भरताओं और कोड से आपूर्ति-श्रृंखला, स्लॉप्स्क्वाटिंग और टाइपोस्क्वाटिंग हमलों से बचाता है।
cargo install sloppy-joe
समझौता किए गए रिलीज़ एक वैध पैकेज नाम का उपयोग कर सकते हैं। LiteLLM अनुरक्षक रिपोर्ट मार्च 2026 में दुर्भावनापूर्ण संस्करणों 1.82.7 और 1.82.8 की पहचान करती है। sloppy-joe का डिफ़ॉल्ट 72-घंटे प्रकाशन-आयु गेट नए प्रकाशित संस्करणों को अस्वीकार कर सकता है जब आप इंस्टॉलेशन से पहले
--ciया--fullके साथ हल किए गए निर्भरता ग्राफ़ को स्कैन करते हैं। यह एक समय नीति है, दुर्भावनापूर्ण पेलोड का निरीक्षण नहीं।
शोध दस्तावेज़ जनरेट किए गए कोड में पैकेज हेलुसिनेशन पर। sloppy-joe इंस्टॉलेशन से पहले निर्भरता नामों और मेटाडेटा की जाँच करता है; केवल अस्तित्व यह स्थापित नहीं कर सकता कि पंजीकृत पैकेज सुरक्षित है।
पैकेज नाम npm के लिए 214 बाइट्स और अन्य पारिस्थितिक तंत्रों के लिए 1,024 बाइट्स तक सीमित हैं ताकि टाइपो-विश्लेषण कार्य को सीमित किया जा सके। लंबे नाम Scan not supported (exit 2) रिपोर्ट करते हैं।
# Install (single static binary, no runtime dependencies)
cargo install sloppy-joe
# Or download a prebuilt binary archive from GitHub Releases
# https://github.com/brennhill/sloppy-joe/releases
# Fast local guardrail — auto-detects ecosystem from manifest files
sloppy-joe check
# Strict online scan (recommended before push / release)
sloppy-joe check --full
# Strict CI-oriented scan
sloppy-joe check --ci
# Check a specific directory
sloppy-joe check --dir ./my-project
# Check only npm dependencies
sloppy-joe check --type npm
# Check the Python runtime plus selected groups/extras
sloppy-joe check --python-groups dev,test --python-version 3.12
sloppy-joe check --python-extras docs --python-platform linux --python-version 3.12
# Enforce canonical rules and org standards via config
sloppy-joe check --config /etc/sloppy-joe/config.json
# Config from a URL (useful in CI — no secrets to manage)
sloppy-joe check --config https://raw.githubusercontent.com/yourorg/security-configs/main/sloppy-joe.json
# JSON output for CI pipelines
sloppy-joe check --json
# Review exact maintainer-change exceptions with evidence
sloppy-joe check --review-exceptions
# Create and register a safe per-repo config outside the repo
sloppy-joe init --register
# Create an ecosystem-specific greenfield starter policy
sloppy-joe init --greenfield --ecosystem npm
# Print review-only bootstrap suggestions for an npm or Cargo repo
sloppy-joe init --from-current
# Or write/register those suggestions safely outside the repo
sloppy-joe init --from-current --register
# Or write a config manually to a secure path outside the repo
sloppy-joe init > /secure/location/sloppy-joe.json
nix profile install github:brennhill/sloppy-joe
main पर flake प्रकाशित बाइनरी रिलीज़ और उसके चेकसम को पिन करता है।
स्कैन मोड:
sloppy-joe check तेज़ स्थानीय गार्डरेल चलाता है। यह हमेशा मैनिफ़ेस्ट पार्सिंग, लॉकफ़ाइल/सिंक, प्रोवेनेंस, और असमर्थित-स्रोत नीति को लागू करता है। यदि निर्भरता या नीति स्थिति बदल गई है, या अंतिम सफल पूर्ण स्कैन 24 घंटे से पुराना है, तो यह sloppy-joe check --full की सलाह देता है।sloppy-joe check --full सख्त ऑनलाइन स्कैन चलाता है और रिकॉर्ड की गई सफल पूर्ण-स्कैन स्थिति को ताज़ा करता है।sloppy-joe check --ci --full के समान सख्त कवरेज चलाता है, CI-उन्मुख उद्देश्य के साथ।sloppy-joe check डिफ़ॉल्ट रूप से runtime प्रोफ़ाइल का मूल्यांकन करता है। यदि स्कोप्ड निर्भरताएँ मौजूद हैं, तो यह चेतावनी देता है और आपको CI/बिल्ड समानता के लिए स्पष्ट --python-groups, --python-extras, --python-platform, और/या --python-version फ़्लैग पास करने के लिए कहता है।sloppy-joe check आउटपुट हमेशा आपको CI और प्रोडक्शन गेटिंग के लिए --ci या --full का उपयोग करने की याद दिलाता है।एग्ज़िट कोड: 0 = चयनित मोड में कोई अवरोधक समस्या नहीं मिली, 1 = अवरोधक निष्कर्ष, 2 = असमर्थित स्कैन इनपुट या रनटाइम त्रुटि। असमर्थित सिंटैक्स/कॉन्फ़िगरेशन कोई मैलवेयर निष्कर्ष नहीं है।
समर्थित: JavaScript (npm, pnpm, Yarn, Bun), Python, Rust, Go, Ruby, PHP, JVM (Gradle/Maven), और .NET — मैनिफ़ेस्ट फ़ाइलों से स्वतः पहचाना जाता है।
इकोसिस्टम गाइड: प्रत्येक इकोसिस्टम के लिए वर्तमान ट्रस्ट मॉडल, समर्थित सुविधाओं, और फ़ेल-क्लोज़्ड सीमाओं के लिए docs/ecosystems/README.md देखें।
| इकोसिस्टम | आवश्यक मैनिफ़ेस्ट | विश्वसनीय लॉकफ़ाइल / प्रोजेक्ट स्थिति |
|---|---|---|
| JavaScript / npm | package.json | package-lock.json या npm-shrinkwrap.json; लेगेसी npm v1 डिफ़ॉल्ट रूप से अवरुद्ध |
| JavaScript / pnpm | package.json | pnpm-lock.yaml |
| JavaScript / Yarn | package.json | yarn.lock |
| JavaScript / Bun | package.json | bun.lock |
| Python | pyproject.toml, requirements*.txt, Pipfile, setup.cfg, या setup.py | विश्वसनीय Poetry पथ poetry.lock का उपयोग करता है, विश्वसनीय uv पथ uv.lock का उपयोग करता है, और पूर्णतः हैश-लॉक्ड pip-tools केवल तब विश्वसनीय है जब कमिट किया गया requirements ग्राफ़ --index-url और किसी भी --extra-index-url मानों को ठीक से बांधता है; रेपो-दृश्यमान Python इंडेक्स को trusted_indexes.pypi के माध्यम से allowlist किया जा सकता है; विश्वसनीय Python मोड एक बार में एक चयनित इंस्टॉल प्रोफ़ाइल का मूल्यांकन करते हैं (डिफ़ॉल्ट रूप से runtime, CLI के माध्यम से स्पष्ट groups/extras/platform/arch/version); लेगेसी मैनिफ़ेस्ट डिफ़ॉल्ट रूप से चेतावनियों के साथ अनुमत |
| Rust | Cargo.toml | Cargo.lock |
| Go | go.mod | बाहरी निर्भरताओं के लिए go.sum आवश्यक |
| Ruby | Gemfile | Gemfile.lock |
| PHP / Composer | composer.json | composer.lock |
| JVM / Gradle | build.gradle या build.gradle.kts | gradle.lockfile |
| JVM / Maven | pom.xml | केवल-चेतावनी: अभी तक कोई विश्वसनीय प्रोजेक्ट-स्थानीय लॉकफ़ाइल पथ नहीं |
| .NET / NuGet | .csproj | packages.lock.json |
स्कैन स्कोप: पुनरावर्ती स्कैन डिफ़ॉल्ट रूप से .planning को अनदेखा करते हैं। अन्य निर्देशिका नामों को बाहर करने के लिए बाहरी नीति में "ignore_dirs": [".planning", "experiments"] कॉन्फ़िगर करें, या कॉन्फ़िगर करने योग्य बहिष्करणों को अक्षम करने के लिए "ignore_dirs": [] का उपयोग करें। निर्देशिका बहिष्करण देखें।