返回顶部
e

env-setup环境变量扫描

Scan codebase for environment variables, generate .env.example, validate .env, and ensure .gitignore safety

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
726
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

env-setup

env-setup — 环境变量管理器

扫描你的代码库中所有引用的环境变量,生成 .env.example 文件,验证当前的 .env 文件,并确保机密信息不会被提交。

步骤

1. 扫描代码库中的环境变量

在所有常见模式中搜索环境变量引用:

bash

Node.js / JavaScript / TypeScript


grep -rn process\.env\.\w\+ --include=.js --include=.ts --include=.jsx --include=.tsx . | grep -v node_modules | grep -v dist

Python

grep -rn os\.environ\|os\.getenv\|environ\.get --include=*.py . | grep -v pycache | grep -v .venv

Rust

grep -rn env::var\|env::var_os\|dotenv --include=*.rs . | grep -v target

Go

grep -rn os\.Getenv\|os\.LookupEnv\|viper\. --include=*.go . | grep -v vendor

Docker / docker-compose

grep -rn \${.} --include=.yml --include=.yaml docker-compose 2>/dev/null

配置文件中的通用 .env 引用

grep -rn env\. --include=.toml --include=.yaml --include=*.yml . 2>/dev/null

Windows PowerShell 替代方案:
powershell
Get-ChildItem -Recurse -Include .js,.ts,.jsx,.tsx -Exclude node_modules,dist | Select-String process\.env\.\w+
Get-ChildItem -Recurse -Include *.py -Exclude pycache,.venv | Select-String os\.environ|os\.getenv

2. 提取变量名称

解析 grep 输出以提取唯一的变量名称:

  • - process.env.DATABASEURL → DATABASEURL
  • os.environ.get(SECRETKEY, default) → SECRETKEY(默认值:default)
  • os.getenv(APIKEY) → APIKEY
  • env::var(RUSTLOG) → RUSTLOG

去重并按字母顺序排序。记录每个变量被引用的文件和行号。

3. 分类变量

将每个变量分类:

类别模式示例
🔴 机密信息KEYSECRETTOKENPASSWORDCREDENTIALAPIKEY、JWTSECRET
🟡 服务 URL
URLHOSTENDPOINTURI | DATABASEURL、REDISHOST |
| 🟢 配置 | PORTENVMODELEVELDEBUG | PORT、NODEENV、LOGLEVEL |
| ⚪ 其他 | 其他所有内容 | APPNAME、MAXRETRIES |

4. 生成 .env.example

创建包含描述、分类和安全默认值的 .env.example 文件:

env

============================================


环境配置


由 env-setup 技能生成


============================================

--- 应用配置 ---

NODE_ENV=development PORT=3000 LOG_LEVEL=info

--- 数据库 ---

DATABASE_URL=postgresql://user:password@localhost:5432/dbname

--- 身份验证(🔴 机密信息 — 切勿提交真实值) ---

JWT_SECRET=change-me-in-production API_KEY=your-api-key-here

--- 外部服务 ---

REDIS_URL=redis://localhost:6379

规则:

  • - 机密信息使用占位符值(change-me、your-xxx-here)
  • 配置变量使用合理的默认值
  • 按类别分组,并添加注释标题
  • 在敏感变量上添加 🔴 机密信息 警告

5. 验证当前 .env 文件

如果 .env 文件存在,则与发现的变量进行比较:

markdown

.env 验证报告

❌ 缺失(代码需要但 .env 中没有)

  • - STRIPESECRETKEY — 在 src/billing.ts:14 中引用
  • SMTP_PASSWORD — 在 src/email.ts:8 中引用

⚠️ 未使用(.env 中存在但代码中未引用)

  • - OLDAPIENDPOINT — 可以安全删除

✅ 存在且被引用

  • - DATABASEURL ✓
  • PORT ✓
  • NODEENV ✓

6. 确保 .gitignore 安全

检查 .env 是否在 .gitignore 中:

bash
grep -q ^\.env$\|^\.env\.\* .gitignore 2>/dev/null

如果未找到,提供添加建议:

环境文件

.env .env.local .env.*.local

同时检查 git 历史中是否有意外提交的 .env 文件:
bash
git log --all --diff-filter=A -- .env .env.local .env.production 2>/dev/null

如果找到,警告用户机密信息可能存在于 git 历史中,并建议使用 git filter-branch 或 BFG Repo-Cleaner。

7. 输出摘要

markdown

环境变量报告
指标数量
找到的变量总数15
🔴 机密信息
4 |


| ❌ .env 中缺失 | 2 |
| ⚠️ .env 中未使用 | 1 |
| ✅ 正确配置 | 12 |
| .gitignore 保护 | ✅ |

边界情况

  • - 框架特定的环境变量:Next.js 使用 NEXTPUBLIC*(客户端暴露);需明确标记
  • Docker 环境变量:同时检查 docker-compose.yml 的 environment: 部分
  • 多个 .env 文件:.env.development、.env.production、.env.test — 全部验证
  • 没有 .env 文件:同时生成 .env.example 和初始 .env 文件
  • 插值变量:Shell 脚本中的 ${VAR:-default} — 提取 VAR

错误处理

错误解决方案
未找到环境变量项目可能未使用环境变量 — 与用户确认
.env 文件存在语法错误
标记不符合 KEY=value 模式的行 | | 扫描中包含二进制文件 | 使用 --binary-files=without-match 排除 | | .env 文件权限拒绝 | 检查文件权限;可能需要提升访问权限 |
由 Clawb (SOVEREIGN) 构建 — 更多技能即将推出

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 env-setup-1776420007 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 env-setup-1776420007 技能

通过命令行安装

skillhub install env-setup-1776420007

下载

⬇ 下载 env-setup v1.0.0(免费)

文件大小: 3.07 KB | 发布时间: 2026-4-17 19:04

v1.0.0 最新 2026-4-17 19:04
Initial release — scan, document, and safeguard environment variables in your codebase.

- Scans codebase for referenced environment variables in major languages and config files.
- Automatically generates a categorized `.env.example` with comments, safe defaults, and secret warnings.
- Validates your existing `.env` for missing, unused, or misconfigured variables.
- Ensures `.env` files are safely listed in `.gitignore` and checks history for accidental commits.
- Summarizes findings in a clear report with actionable steps.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部