Skip to content

feat: 支持环境变量初始化 + 新增卸载文档#55

Open
angziii wants to merge 1 commit into
WecomTeam:mainfrom
angziii:feature/env-var-init-and-uninstall-docs
Open

feat: 支持环境变量初始化 + 新增卸载文档#55
angziii wants to merge 1 commit into
WecomTeam:mainfrom
angziii:feature/env-var-init-and-uninstall-docs

Conversation

@angziii

@angziii angziii commented May 2, 2026

Copy link
Copy Markdown

Summary

两个小改进:

1. 支持通过环境变量初始化 (fixes #45)

当前 wecom-cli init 必须交互式输入(扫码或手动填 Bot ID/Secret),无法在 CI/CD 等自动化场景使用。

改动:

  • 新增 WECOM_BOT_IDWECOM_SECRET 环境变量
  • 非交互模式--noninteractive):优先从环境变量读取,未设置时回退到扫码
  • 交互模式:当环境变量已设置时,选择菜单会多出"从环境变量读取"选项
  • 新增 McpBindSource::Env 枚举值用于追踪凭证来源

使用方式:

export WECOM_BOT_ID=your_bot_id
export WECOM_SECRET=your_secret
wecom-cli init --noninteractive

2. 新增卸载文档 (fixes #41)

  • 新增 docs/uninstall.md,覆盖 CLI 卸载、Skill 移除、本地配置清理三个步骤
  • docs/README.md 和主 README.md 中添加链接

改动文件

文件 改动
src/constants.rs +6 行,新增 BOT_ID / BOT_SECRET 环境变量常量
src/cmd/init.rs 重构 init 流程,新增 init_env()init_noninteractive()
src/mcp/config.rs +2 行,新增 McpBindSource::Env 枚举值 + 测试
docs/uninstall.md 新增卸载指南
docs/README.md +1 行,文档索引
README.md +1 行,卸载链接

Test plan

  • wecom-cli init --noninteractive 读取 WECOM_BOT_ID / WECOM_SECRET 环境变量
  • 未设置环境变量时 --noninteractive 回退到扫码
  • 交互模式下环境变量存在时出现第三选项
  • McpBindSource::Env 序列化为 3

- Add WECOM_BOT_ID / WECOM_SECRET env var support for non-interactive
  init, enabling CI/CD automation without QR code or manual input
- Non-interactive mode checks env vars first, falls back to QR code
- Interactive mode shows env option when WECOM_BOT_ID and WECOM_SECRET
  are both set
- Add McpBindSource::Env variant for env-based credential tracking

- Add docs/uninstall.md with 3-step uninstall guide (CLI, Skill, config)
- Link uninstall docs from docs/README.md and main README

Closes WecomTeam#45
Closes WecomTeam#41
@rainsheng-cyber

Copy link
Copy Markdown
Collaborator

感谢你的贡献!不过,我们目前不支持从环境变量中读取 Bot 凭证(尤其是 secret),主要是出于安全方面的考虑。

  • 环境变量很容易通过进程列表、调试日志、崩溃报告、CI 流水线输出以及子进程继承等途径泄露。
  • 对于像 bot secret 这样敏感的凭证,我们更倾向于使用更安全的配置方式(如扫码或交互式输入),从根本上避免 secret 暴露在环境中。

感谢你的关注和付出!

@gsscsd

gsscsd commented Jun 1, 2026

Copy link
Copy Markdown

真TM傻屌,本来想把这个wecom放到容器里面做静态初始化呢,居然不支持默认环境变量参数

@xqb0407

xqb0407 commented Jun 17, 2026

Copy link
Copy Markdown

workbuddy,用了每次都要创建一个机器人,太离谱了,毫无体验

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

提供环境变量配置,方便自动化安装和配置场景

4 participants