这个项目能做什么
Lintro 是一款命令行工具,将大量代码格式化、linting、类型检查和安全工具统一在单一界面之后。它在 MIT 许可证下发布,Python 包需要 Python 3.11 或更高版本,同时也提供独立的 Node 包。
快速上手主要围绕两个命令:"lintro check"(别名 "chk")用于查找问题,"lintro format"(别名 "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(排除目录)、--auto-install(针对 Node 工具)以及 --diff(将检查限制在相对于 git 引用地更改的文件)等选项。
README 列出了一个广泛的工具矩阵,分为 linters、formatters、兼具 lint 和 format 功能的工具、类型检查器、安全扫描器和 AI 工具。示例包括用于 linting 的 Actionlint, Clippy, commitlint, Cppcheck, golangci-lint, Hadolint, html-validate, Markdownlint-cli2, Vale, Oxlint, pylint, ShellCheck, Spectral 和 Yamllint;用于 formatting 的 Black, Oxfmt, Prettier, shfmt 和 rustfmt;兼顾 lint 和 format 的 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" extra 进行捆绑,因此无需单独安装。
配置旨在避免迁移工作:系统会自动检测并遵循现有的原生配置,如 .prettierrc, pyproject.toml [tool.ruff] 或 .yamllint,同时可以一致地强制执行共享设置,并在不存在原生配置时使用合理的默认值。文档描述了一个五层配置系统。Node.js 工具遵循特定的解析顺序:首先是目标项目的 node_modules/.bin,然后是 PATH 上的二进制文件,最后是通过 bunx/npx 获取的固定版本。
安装选项包括 uv pip 或 pip install(轻量级或带 full extra)、Homebrew tap、全局 bun/npm 包,以及来自 GHCR 的 Docker 镜像(提供 "tools" 和 "base" 两种镜像)。该仓库在 docs 文件夹中还记录了 CI/CD 和 pre-commit 的集成方式。
AI 功能是可选的且默认关闭,需要用户提供来自 Anthropic Claude 或 OpenAI GPT 的 API 密钥。它们通过 ai extra 安装,可以提供带有模式分析的高级摘要、带有风险分类的交互式修复建议以及修复后的摘要。其余文档涵盖了入门指南、配置、Docker 使用、GitHub 集成、pre-commit、贡献指南、故障排除,以及高级工具分析、架构和安全材料。
评论
0 评分人数达到10人后显示
登录后参与讨论。