lgtm-hq/py-lintro

GitHub: lgtm-hq/py-lintro

将多种代码格式化、linting、类型检查和安全扫描工具统一到一个 CLI 界面下,提供一致的输出和自动修复能力。

Stars: 1 | Forks: 0

# Lintro

Lintro Logo

一个综合性的 CLI 工具,将各种代码格式化、linting 和质量保证工具统一在单一的命令行界面下。

CI Docker Coverage

Release PyPI Python License

CodeQL OpenSSF Scorecard OpenSSF Best Practices SBOM SBOM Status

## 🚀 快速开始 ``` uv pip install lintro # Install (or: pip install lintro) lintro check . # Find issues (alias: chk) lintro format . # Fix issues (alias: fmt) lintro check --output-format grid # Beautiful output ``` ## ✨ 为什么选择 Lintro? - **🎯 统一界面** - 一个命令搞定所有的 linting 和格式化工具 - **📊 一致的输出** - 所有工具拥有美观、标准化的输出格式 - **🔧 自动修复** - 在可能的情况下自动修复问题 - **🐳 Docker 就绪** - 在隔离的容器中运行,保持环境一致 - **📈 丰富的报告** - 多种格式支持:grid、JSON、HTML、CSV、Markdown - **⚡ 快速** - 经过优化的并行执行 ## 🔜 兼容您现有的配置 Lintro 会遵循您的原生工具配置。如果您有 `.prettierrc`、 `pyproject.toml [tool.ruff]` 或 `.yamllint`,Lintro 会自动使用它们 —— 无需 进行迁移。 - **自动检测原生配置** - 您现有的 `.prettierrc`、`.oxlintrc.json` 等 配置可以直接使用 - **统一强制覆盖设置** - 只需设置一次 `line_length: 88`,即可应用到 所有地方 - **按需提供默认回退** - 对于没有原生配置的工具,将使用合理的默认值 有关 4 层配置系统的详细信息,请参阅[配置指南](docs/configuration.md)。 ## 🛠️ 支持的工具
ToolLanguageAuto-fixInstall
Linters
Actionlint ⚙️ GitHub Actions - GitHub Releases
Clippy 🦀 Rust rustup component add clippy
Hadolint 🐳 Dockerfile - GitHub Releases
Markdownlint 📝 Markdown - bun add -g markdownlint-cli2
npm install -g markdownlint-cli2
Oxlint 🟨 JS/TS bun add -g oxlint
npm install -g oxlint
pydoclint 🐍 Python - 📦
ShellCheck 🐚 Shell Scripts - brew install shellcheck
GitHub Releases
Yamllint 🧾 YAML - 📦
Formatters
Black 🐍 Python 📦
Oxfmt 🟨 JS/TS bun add -g oxfmt
npm install -g oxfmt
Prettier 🟨 JS/TS · 🧾 JSON bun add -g prettier
npm install -g prettier
shfmt 🐚 Shell Scripts brew install shfmt
GitHub Releases
rustfmt 🦀 Rust rustup component add rustfmt
Lint + Format
Ruff 🐍 Python 📦
SQLFluff 🗃️ SQL pipx install sqlfluff
Taplo 🧾 TOML brew install taplo
GitHub Releases
Type Checkers
Astro 🚀 Astro - bun add astro
npm install astro
Mypy 🐍 Python - 📦
svelte-check 🔥 Svelte - bun add -D svelte-check
npm install -D svelte-check
TypeScript 🟨 JS/TS - bun add -g typescript
npm install -g typescript
brew install typescript
vue-tsc 💚 Vue - bun add -D vue-tsc
npm install -D vue-tsc
Security
Bandit 🐍 Python - 📦
Gitleaks 🔐 Secret Detection - brew install gitleaks
GitHub Releases
cargo-audit 🦀 Rust - cargo install cargo-audit
cargo-deny 🦀 Rust - cargo install cargo-deny
OSV-Scanner 🔒 Multi-ecosystem - GitHub Releases
Semgrep 🔒 Multi-language - pipx install semgrep
pip install semgrep
brew install semgrep
## 🤖 AI 驱动功能(可选) Lintro 包含可选的 AI 驱动功能,可提供可操作的摘要和交互式的修复建议。AI 功能采用 **BYO(自带)API key** 模式 —— 默认不启用。 - **提供商:** Anthropic Claude、OpenAI GPT - **AI 摘要** — 具有模式分析的高层次评估(每次运行 1 次 API 调用) - **交互式修复建议** — AI 生成的代码差异及风险分类 - **修复后摘要** — 结合上下文总结已修复的问题和剩余问题 ``` # 安装 AI 支持 uv pip install 'lintro[ai]' export ANTHROPIC_API_KEY=sk-ant-... # or OPENAI_API_KEY # 在 config 中启用 # .lintro-config.yaml # ai: # enabled: true # provider: anthropic ``` 完整文档请参阅 [AI 功能指南](docs/ai-features.md)。 ## 📦 安装 **要求 Python 3.11+**。请使用 `lintro list-tools` 检查工具版本。 ``` # PyPI (推荐) uv pip install lintro # or: pip install lintro # Homebrew (macOS 二进制文件) brew tap lgtm-hq/tap && brew install lintro-bin # Docker (tools 镜像 - 包含所有外部工具) docker run --rm -v $(pwd):/code ghcr.io/lgtm-hq/py-lintro:latest check # Docker (base 镜像 - 最小化,无外部工具) docker run --rm -v $(pwd):/code ghcr.io/lgtm-hq/py-lintro:base check ``` 有关详细的安装选项,请参阅[入门指南](docs/getting-started.md)。 ## 💻 使用方法 ``` # 检查所有文件 (别名: chk) lintro check . # 自动修复问题 (别名: fmt) lintro format . # 带分组功能的 Grid 输出 lintro check --output-format grid --group-by file # 运行特定工具 lintro check --tools ruff,prettier,mypy # 自动安装 Node.js 依赖 lintro check --tools tsc --auto-install # 排除目录 lintro check --exclude "node_modules,dist,venv" # 列出可用工具 lintro list-tools ``` ### 🐳 Docker ``` # 从 GHCR 运行 (tools 镜像 - 推荐) docker run --rm -v $(pwd):/code ghcr.io/lgtm-hq/py-lintro:latest check # 带格式化 docker run --rm -v $(pwd):/code ghcr.io/lgtm-hq/py-lintro:latest check --output-format grid # Base 镜像 (最小化,无外部工具) docker run --rm -v $(pwd):/code ghcr.io/lgtm-hq/py-lintro:base check ``` ## 📚 文档 | 指南 | 描述 | | ------------------------------------------------ | --------------------------------------- | | [入门指南](docs/getting-started.md) | 安装、初始步骤、要求 | | [配置说明](docs/configuration.md) | 工具配置、选项、预设 | | [AI 功能](docs/ai-features.md) | AI 摘要、修复建议、配置 | | [Docker 使用](docs/docker.md) | 容器化开发 | | [GitHub 集成](docs/github-integration.md) | CI/CD 设置、工作流 | | [贡献指南](docs/contributing.md) | 开发指南、添加工具 | | [故障排除](docs/troubleshooting.md) | 常见问题及解决方案 | **进阶:** [工具分析](docs/tool-analysis/) · [架构](docs/architecture/) · [安全性](docs/security/) ## 🔨 开发 ``` # 克隆并安装 git clone https://github.com/lgtm-hq/py-lintro.git cd py-lintro uv sync --dev # 运行测试 ./scripts/local/run-tests.sh # 对 Lintro 自身运行 ./scripts/local/local-lintro.sh check --output-format grid ``` ## 🤝 社区 - 🐛 [Bug 报告](https://github.com/lgtm-hq/py-lintro/issues/new?template=bug_report.md) - 💡 [功能请求](https://github.com/lgtm-hq/py-lintro/issues/new?template=feature_request.md) - ❓ [提问交流](https://github.com/lgtm-hq/py-lintro/issues/new?template=question.md) - 📖 [贡献指南](docs/contributing.md) ## 📄 许可证 MIT 许可证 - 详见 [LICENSE](LICENSE)。
标签:Docker, Formatter, Linter, MIT许可, pptx, PyPI, Python, SOC Prime, 代码安全检测, 代码审查工具, 代码格式化, 代码规范, 代码静态分析, 安全防御评估, 开发工具, 开发效率, 开源框架, 持续集成, 数据管道, 无后门, 统一接口, 网络可观测性, 聊天机器人, 请求拦截, 软件工程, 逆向工具