lgtm-hq/py-lintro
GitHub: lgtm-hq/py-lintro
将多种代码格式化、linting、类型检查和安全扫描工具统一到一个 CLI 界面下,提供一致的输出和自动修复能力。
Stars: 1 | Forks: 0
# Lintro
## 🤖 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)。
一个综合性的 CLI 工具,将各种代码格式化、linting 和质量保证工具统一在单一的命令行界面下。
## 🚀 快速开始 ``` 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)。 ## 🛠️ 支持的工具| Tool | Language | Auto-fix | Install |
|---|---|---|---|
| Linters | |||
| ⚙️ GitHub Actions | - | GitHub Releases | |
| 🦀 Rust | ✅ | rustup component add clippy |
|
| 🐳 Dockerfile | - | GitHub Releases | |
| 📝 Markdown | - | bun add -g markdownlint-cli2npm install -g markdownlint-cli2 |
|
| 🟨 JS/TS | ✅ | bun add -g oxlintnpm install -g oxlint |
|
| 🐍 Python | - | 📦 | |
| 🐚 Shell Scripts | - | brew install shellcheckGitHub Releases |
|
| 🧾 YAML | - | 📦 | |
| Formatters | |||
| 🐍 Python | ✅ | 📦 | |
| 🟨 JS/TS | ✅ | bun add -g oxfmtnpm install -g oxfmt |
|
| 🟨 JS/TS · 🧾 JSON | ✅ | bun add -g prettiernpm install -g prettier |
|
| 🐚 Shell Scripts | ✅ | brew install shfmtGitHub Releases |
|
| 🦀 Rust | ✅ | rustup component add rustfmt |
|
| Lint + Format | |||
| 🐍 Python | ✅ | 📦 | |
| 🗃️ SQL | ✅ | pipx install sqlfluff |
|
| 🧾 TOML | ✅ | brew install taploGitHub Releases |
|
| Type Checkers | |||
| 🚀 Astro | - | bun add astronpm install astro |
|
| 🐍 Python | - | 📦 | |
| 🔥 Svelte | - | bun add -D svelte-checknpm install -D svelte-check |
|
| 🟨 JS/TS | - | bun add -g typescriptnpm install -g typescriptbrew install typescript |
|
| 💚 Vue | - | bun add -D vue-tscnpm install -D vue-tsc |
|
| Security | |||
| 🐍 Python | - | 📦 | |
| 🔐 Secret Detection | - | brew install gitleaksGitHub Releases |
|
| 🦀 Rust | - | cargo install cargo-audit |
|
| 🦀 Rust | - | cargo install cargo-deny |
|
| 🔒 Multi-ecosystem | - | GitHub Releases | |
| 🔒 Multi-language | - | pipx install semgreppip install semgrepbrew install semgrep |
|
标签:Docker, Formatter, Linter, MIT许可, pptx, PyPI, Python, SOC Prime, 代码安全检测, 代码审查工具, 代码格式化, 代码规范, 代码静态分析, 安全防御评估, 开发工具, 开发效率, 开源框架, 持续集成, 数据管道, 无后门, 统一接口, 网络可观测性, 聊天机器人, 请求拦截, 软件工程, 逆向工具