hotmeteor/eco-cli

Eco CLI 用于 Laravel .env 同步

安装次数: 69

依赖者: 0

建议者: 0

安全: 0

星标: 122

关注者: 3

分支: 2

开放问题: 3

类型:项目

v0.3.0 2021-06-11 20:44 UTC

This package is auto-updated.

Last update: 2024-09-12 04:13:12 UTC


README

Eco logo

Eco 允许您和您的团队轻松安全地共享非生产环境变量,无需设置专用密钥服务器。

Latest Stable Version

这是为什么?

您是否...

  • 不小心删除或损坏了本地 .env 文件,导致您丢失环境变量?
  • 在团队中工作,遇到混乱或不必要的环境变量?
  • 想找一个简单的方法,安全地与其他项目维护者共享环境变量,而不需要设置第三方密钥管理系统?
  • 希望您的团队能够轻松地获取项目配置的最新副本?

如果您对这些问题的任何一个回答是“是”,那么 Eco 就是为您准备的!

重要: Eco 不是一个用于存储和共享生产级环境变量的安全机制。它不是。请不要这么做。

工作原理

Eco 实际上非常简单。它使用 3 种不同的存储机制

  1. 您的项目 .env 文件。 这是您实际使用的值所在,因为您的项目依赖于它们。
  2. 您的本地“保险库”。 保险库是一个本地配置文件,您可以永久存储任何不想丢失的环境变量。这使您能够在删除 .env 文件后,只需拉取您想要恢复的密钥。
  3. 远程 .eco 文件。 当您推送想要与团队共享的密钥时,Eco 会在您的仓库根目录中创建一个 .eco 文件,位于 master 分支。在 .eco 文件中是您的共享密钥,所有密钥都使用与 GitHub 存储仓库密钥相同的策略进行加密。该文件将存储您的团队推送到它的唯一键:值对。

文档

安装

您可以使用 Composer 在全局或按项目安装 Eco CLI

$ composer require hotmeteor/eco-cli
 
$ composer global require hotmeteor/eco-cli

入门

一旦安装了 Eco,就需要进行设置。理想情况下,这应该在您正在协作的项目的文件夹中进行。

根据您的团队使用的代码托管平台,设置方式不同。

Github

Github 需要个人访问令牌。

  1. 创建一个 Github 个人访问令牌
    • 选择 reporead:org 权限

Gitlab

Gitlab 需要个人访问令牌和部署密钥。

  1. 创建个人访问令牌: https://gitlab.com/profile/personal_access_tokens
    • 选择 api 权限
  2. 为您的项目创建部署密钥: https://gitlab.com/[group]/[project]/-/settings/repository
    • 命名为 eco-cli
    • 确保“允许写入访问”被勾选

Bitbucket

Bitbucket 需要应用密码和访问密钥。

  1. 创建应用密码: https://bitbucket.org/account/settings/app-passwords/
    • 选择
      • 账户电子邮件,读取
      • 项目读取
      • 仓库读取、写入、管理
  2. 为您的项目创建访问密钥: https://bitbucket.org/[workspace]/[project]/admin/access-keys/
    • 命名为 eco-cli
  3. 当您验证Eco时,您的凭据将是您典型的Bitbucket用户名和您的新应用程序密码。

用法

Eco自带一些命令,用于管理本地和远程环境变量。

设置

$ eco init

安装后要运行的第一件事。

您将需要选择您的团队使用的代码宿主以及提供适当的凭据。然后,您将被要求选择要代表其操作的所有者或组织,以及当前项目的存储库。

$ eco vault

查看您保险库中的所有值。

组织

$ eco org:switch

列出您是成员的可用组织,并允许您切换到不同的组织。

$ eco org:current

显示当前工作组织。

存储库

$ eco repo:list

列出您组织中的可用存储库。

$ eco repo:switch

列出您组织中的可用存储库,并允许您切换到不同的仓库。这允许您在不同仓库中使用Eco。只是别忘了在推送或拉取之前切换仓库!

$ eco repo:current

显示当前工作仓库。

密钥

$ eco env:fresh

从您的项目存储库中获取.env.example文件并将其复制为新的本地.env文件。这是一个破坏性命令,所以您需要确认。

$ eco env:set

在您的本地保险库中创建或更新键值对,并将其添加到本地.env文件中。

$ eco env:unset

从您的本地保险库中删除键值对,并将其从本地.env文件中删除。

$ eco env:push

将键值对推送到远程.eco文件。

$ eco env:sync

同步远程.eco文件中的所有键值对与本地.env文件。在用远程值覆盖任何本地值之前,您将被要求确认。

贡献

如果您有兴趣为Eco做出贡献,请阅读我们的贡献指南

致谢

基于Laravel Zero框架构建,由@nunomaduro创建。

Vapor CLI工作的启发,该CLI为此CLI提供了一些基础代码。