Ganesh-403/envtether
GitHub: Ganesh-403/envtether
envtether 是一款 Python 静态配置分析工具,通过跨文件扫描与 AST 解析帮助团队在部署前检测配置漂移、硬编码密钥并生成配置依赖图和文档。
Stars: 0 | Forks: 0
# envtether
[](https://pypi.org/project/envtether/)
[](https://pypi.org/project/envtether/)
[](https://opensource.org/licenses/MIT)
[](https://github.com/psf/black)
`envtether` 是一款企业级静态分析工具,旨在帮助开发者在部署之前理解、验证、保护并维护项目配置。
它的定位是应用程序配置领域的 Ruff、SonarQube 或 ESLint,能够深入洞察你的配置变量是如何在整个技术栈中进行定义、使用和部署的。
## 🌟 核心功能
- **全面发现**:解析 Python 代码(AST 级别)、`.env` 文件、Docker Compose、Kubernetes 清单、GitHub Actions、Terraform 等。
- **深度框架支持**:原生支持 FastAPI、Flask、Django、Pydantic `BaseSettings`、Dynaconf 以及标准的 `os.getenv`。
- **高级密钥检测**:结合启发式正则表达式模式与 Shannon 熵分析,以极低的误报率检测硬编码和暴露的凭证(AWS、Azure、GCP、OpenAI、Stripe 等)。
- **跨文件漂移检测**:识别 `.env.example`、Docker Compose 和 CI/CD 流水线之间的配置不一致问题。
- **健康评分**:基于 11 个维度的配置规范,计算整体健康评分(0-100),让你直观了解生产环境的就绪状态。
- **依赖图**:构建有向依赖图,将变量连接到服务、文件和部署目标。支持导出为 Mermaid、Graphviz DOT、JSON 和交互式 HTML 格式。
- **自动化文档**:为你的项目配置变量生成精美的 Markdown 和 HTML 文档。
- **CI/CD 集成**:支持输出 SARIF 格式,以适配 GitHub Advanced Security 及其他 CI/CD 仪表盘。
## 🚀 安装说明
`envtether` 要求 Python 3.12 或更高版本。
```
pip install envtether
```
或者使用 `uv`:
```
uv tool install envtether
```
## 🛠️ 快速入门
导航到你的项目根目录并运行 CLI:
### 1. 扫描与分析
```
# 使用 Rich 控制台输出的完整交互式扫描
envtether scan .
# 运行全面的健康检查(遇到严重问题时失败)
envtether doctor .
```
### 2. 生成依赖图
可视化你的配置是如何与代码库和基础设施相连的:
```
envtether graph . --format html --output config-graph.html
```
### 3. 生成文档
为你的团队自动生成一份精美的配置参考文档:
```
envtether docs . --format markdown --output CONFIG.md
```
### 4. CI/CD 集成
在你的 CI 流水线中运行 `envtether`,以便在合并之前发现配置漂移和暴露的密钥:
```
envtether ci . --format sarif > envtether-results.sarif
```
## 🧠 工作原理
1. **扫描**:递归查找所有相关文件(忽略 `.gitignore`、`node_modules` 等)。
2. **架构发现**:检测项目类型(例如 FastAPI、Docker)、云服务提供商以及服务依赖(例如 Redis、PostgreSQL)。
3. **AST 分析**:使用 `ast` 解析 Python 代码,以查找 `os.getenv`、`os.environ` 和 Pydantic `BaseSettings` 声明。
4. **格式分析**:解析 `.env`、Docker Compose、Kubernetes 清单和 Terraform 文件,以追踪变量定义。
5. **交叉验证**:比较各个文件中的变量集合以检测漂移(例如,在 Docker Compose 中定义但缺失于 `.env.example` 的变量)。
6. **密钥检测**:对配置值运行高性能的熵检查和模式匹配。
7. **报告**:汇总分析结果,计算健康评分,并导出为指定格式。
## ⚙️ 配置说明
在你的仓库中初始化一个配置文件:
```
envtether init .
```
这会创建一个 `.envtether.toml` 文件,你可以在此自定义规则、密钥检测阈值、忽略路径等内容。
## 🔌 插件系统
`envtether` 采用了基于协议的健壮插件架构设计。你可以轻松扩展它,以支持专有的配置格式、内部工具或新框架。
## 📄 许可证
本项目基于 MIT 许可证授权 - 详情请参阅 [LICENSE](LICENSE) 文件。
## 🛡️ 安全
如果你在 `envtether` 中发现了安全漏洞,请查阅我们的[安全策略](SECURITY.md)以获取报告指南。
标签:LNA, Python, 云安全监控, 子域名突变, 无后门, 版权保护, 自动化payload嵌入, 调试插件, 逆向工具, 静态分析