इस प्रोजेक्ट के बारे में
Lintro एक कमांड-लाइन टूल है जो कोड फॉर्मेटिंग, लिंटिंग, टाइप-चेकिंग और सुरक्षा उपकरणों के एक बड़े सेट को एक एकल इंटरफेस के पीछे एकीकृत करता है। इसे MIT लाइसेंस के तहत प्रकाशित किया गया है और Python पैकेज के लिए Python 3.11 या उससे नए संस्करण की आवश्यकता होती है, हालांकि एक सेल्फ-कंटेन्ड Node पैकेज भी उपलब्ध है।
त्वरित शुरुआत दो कमांड्स पर केंद्रित है: समस्याओं को खोजने के लिए "lintro check" (alias "chk") और उन्हें ठीक करने के लिए "lintro format" (alias "fmt")। अतिरिक्त कमांड्स में shields.io इश्यू-काउंट बैज के लिए "lintro badge", उपलब्ध टूल्स दिखाने के लिए "lintro list-tools", सेटअप और हेल्थ चेक के लिए "lintro init" और "lintro doctor", और टूल्स प्रोविजनिंग के लिए "lintro install --profile recommended" शामिल हैं। परिणामों को कई फॉर्मेट में रेंडर किया जा सकता है: grid, JSON, HTML, CSV और Markdown, जिसमें --output-format grid, --group-by file, विशिष्ट टूल्स चुनने के लिए --tools, डायरेक्टरीज के लिए --exclude, Node-आधारित टूल्स के लिए --auto-install, और git ref के मुकाबले बदले गए फाइलों तक चेक सीमित करने के लिए --diff जैसे विकल्प मौजूद हैं।
README में linters, formatters, लिंट और फॉर्मेट दोनों करने वाले टूल्स, type checkers, security scanners और AI टूल्स के रूप में वर्गीकृत एक विस्तृत टूल मैट्रिक्स दिया गया है। लिंटिंग के लिए उदाहरणों में Actionlint, Clippy, commitlint, Cppcheck, golangci-lint, Hadolint, html-validate, Markdownlint-cli2, Vale, Oxlint, pylint, ShellCheck, Spectral और Yamllint शामिल हैं; फॉर्मेटिंग के लिए Black, Oxfmt, Prettier, shfmt और rustfmt; लिंट-प्लस-फॉर्मेट के लिए Ruff, SQLFluff, Taplo, dotenv-linter, Stylelint और typos; टाइप चेकिंग के लिए Astro, Mypy, svelte-check, TypeScript और vue-tsc; और सुरक्षा के लिए Bandit, Checkov, Gitleaks, cargo-audit, cargo-deny, OSV-Scanner, pip-audit, Semgrep और TruffleHog शामिल हैं। ruff, black, mypy, bandit, import-linter, pydoclint, pylint और yamllint जैसे Python टूल्स को "full" एक्स्ट्रा के माध्यम से बंडल किया जा सकता है, इसलिए उन्हें अलग से इंस्टॉल करने की आवश्यकता नहीं होती है।
कॉन्फ़िगरेशन का उद्देश्य माइग्रेशन कार्य से बचना है: .prettierrc, pyproject.toml [tool.ruff] या .yamllint जैसे मौजूदा नेटिव कॉन्फ़िग्स का पता लगाया जाता है और उनका सम्मान किया जाता है, जबकि साझा सेटिंग्स को लगातार लागू किया जा सकता है और जहाँ कोई नेटिव कॉन्फ़िग मौजूद नहीं होता है वहाँ समझदारी भरे डिफॉल्ट्स का उपयोग किया जाता है। दस्तावेज़ एक पांच-स्तरीय कॉन्फ़िगरेशन सिस्टम का वर्णन करते हैं। Node.js टूल्स एक निर्धारित रिज़ॉल्यूशन क्रम का पालन करते हैं: पहले टारगेट प्रोजेक्ट का node_modules/.bin, फिर PATH पर एक बाइनरी, और फिर एक वर्जन-पिन्ड bunx/npx फेच।
इंस्टॉलेशन विकल्पों में uv pip या pip install (लाइटवेट या full एक्स्ट्रा के साथ), एक Homebrew tap, एक ग्लोबल bun/npm पैकेज, और GHCR से Docker images शामिल हैं, जिसमें अलग "tools" और "base" इमेज हैं। रिपॉजिटरी अपने docs फोल्डर में CI/CD और pre-commit इंटीग्रेशन का दस्तावेजीकरण भी करती है।
AI फीचर्स वैकल्पिक हैं और डिफ़ॉल्ट रूप से बंद रहते हैं, जिसके लिए Anthropic Claude या OpenAI GPT से उपयोगकर्ता-प्रदत्त API की आवश्यकता होती है। उन्हें ai एक्स्ट्रा के माध्यम से इंस्टॉल किया जाता है और वे पैटर्न विश्लेषण के साथ एक उच्च-स्तरीय सारांश, जोखिम वर्गीकरण के साथ इंटरैक्टिव फिक्स सुझाव और एक पोस्ट-फिक्स सारांश प्रदान कर सकते हैं। शेष दस्तावेज़ों में शुरुआत करना, कॉन्फ़िगरेशन, Docker उपयोग, GitHub इंटीग्रेशन, pre-commit, योगदान देना, समस्या निवारण, साथ ही उन्नत टूल विश्लेषण, आर्किटेक्चर और सुरक्षा सामग्री शामिल है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.