mcpField
L
launch-sync-environment-variables-from-env-example

launch-sync-environment-variables-from-env-example

github.com/contentstack云与 DevOps584 次安装1 周前更新
代码仓库

关于 launch-sync-environment-variables-from-env-example

此技能比较本地 `.env.example` 与 Contentstack Launch 环境中的变量,并补上缺失的键,适用于需要保持部署配置一致的团队。它只报告键名,不泄露变量值。

主要功能

  1. 01解析 `.env.example` 中的变量名
  2. 02获取 Launch 项目环境变量
  3. 03识别 Launch 中缺少的键
  4. 04仅补丁式添加缺失键
  5. 05报告变更且不泄露变量值

适用场景

  1. 01部署前审计 Launch 变量
  2. 02根据本地示例文件补充缺失环境变量

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/contentstack/contentstack-agent-skills --skill launch-sync-environment-variables-from-env-example

安装后在 Claude Code 中输入/launch-sync-environment-variables-from-env-example确认已加载。

详细介绍

从 .env.example 同步 Launch 环境变量

描述

从 Contentstack Launch 项目获取环境变量,与本地 .env.example 文件进行比较,并修补目标环境以添加缺失的键。

适用场景

当 Launch 环境必须包含本地 .env.example 文件中定义的键时使用。 在部署前审核缺失的环境变量时使用。 无需手动编辑配置,即可向 Launch 环境添加缺失的变量名。

用户问题

Launch 环境中的变量可能会与前端项目预期的变量不一致。此技能会将环境与 .env.example 进行核对,并在发现缺失的键时更新 Launch。

成功标准

.env.example 中的所有键都存在于目标 Launch 环境中。 缺失的键通过 Launch Projects/Environments API 添加。 脚本会报告缺失项和更新项。 日志中不会打印任何机密信息。

预期输入

  • Launch 项目 UID
  • Launch 环境 UID
  • 本地 .env.example 文件的路径
  • Launch API 凭据或已认证的上下文
  • 可选:试运行标志

预期输出

  • 在 .env.example 中找到的键列表
  • 已存在于 Launch 中的键列表
  • 已修补的缺失键列表
  • 已执行的 API 调用摘要
  • 表明成功或失败的退出代码

用户请求示例

  • 生成一个从 .env.example 同步 Launch 环境变量的 Node.js 脚本。
  • 将我的 Launch 环境变量与 .env.example 进行比较,并添加缺失的键。
  • 编写一个脚本,为项目 abc123 和环境 dev456 修补缺失的 Launch 环境变量。

工作流摘要

读取并解析本地 .env.example 文件。 获取目标 Launch 环境及其当前变量。 将文件中的键与 Launch 中的键进行比较。 构建仅包含缺失键的最小修补负载。 调用 PATCH /projects/{project_uid}/environments/{environment_uid}。 报告变更并停止,不暴露任何值。

说明

解析输入

读取本地 .env.example 文件并提取变量名。忽略注释、空行和格式错误的条目。

获取 Launch 状态

使用 Launch API 获取目标项目和环境,然后读取当前环境变量。

比较键

将 .env.example 中的键与 Launch 中的键进行比较。除非用户明确要求更新现有值,否则只识别缺失的键。

修补环境

调用 PATCH /projects/{project_uid}/environments/{environment_uid},并进行添加缺失键所需的最小更新。

报告结果

简洁地总结缺失的键、已修补的键以及任何错误。绝不打印机密值或令牌。

输出格式

使用简洁、机器可读的摘要。 不要打印 Launch 或本地文件中的机密值。 分别显示缺失的键和已更新的键。 在摘要中包含项目 UID 和环境 UID。 如果以试运行模式运行,请明确标示未进行任何变更。

工具使用说明

使用 Launch API 和 Projects/Environments 端点。 修补前验证项目和环境 UID。 避免记录部署令牌或环境机密。 使用尽可能精简的 PATCH 负载。 如果 API 返回验证错误,请明确报告,不要盲目重试。

安全

默认设置

绝不暴露部署令牌或环境机密。 修补前验证项目和环境目标。 不要在日志或输出中打印变量值。 进行任何变更前都必须获得用户明确授权。 除非用户要求应用变更,否则优先采用试运行模式。

破坏性操作

任何会更改 Launch 配置的 PATCH 都应视为破坏性的外部操作。应用变更前确认目标项目和环境。除非用户明确要求,否则不要将更新范围扩大到缺失键之外。

密钥

绝不泄露 .env.example 或 Launch 中的密钥值。仅记录键名和数量。在所有输出中对令牌、API 密钥和环境变量值进行脱敏。

环境变量

仅在身份验证和选择目标所需时读取环境变量。绝不回显环境变量值。支持从本地 .env.example 加载内容,仅用于比较,不得披露密钥。

产品背景

    • 产品:Launch
    • 描述:Contentstack Launch:为 Contentstack 驱动的前端提供托管、部署、边缘交付、无服务器函数、环境管理和 CI/CD。
    • 产品安全规则:- 绝不暴露部署令牌或环境密钥。
  • 触发前验证部署目标。
  • 生产环境部署必须获得确认。
  • 未经审核,绝不自动部署到生产环境。
    • 默认工具:["Launch API", "Projects", "Environments", "Deployments", "Serverless Functions", "Edge Delivery", "Custom Domains"]
    • 默认连接器:["Launch Proxy", "GitHub", "CI/CD Pipelines"]

评论

支持 Markdown