问题描述
我很确定人们以前遇到过这个问题,但我找不到任何解决方案。
我一直在开发一个 android 库,并计划通过将其放在 GitHub 上使其开源。但是,我想只将 Maven 上传凭证公开给某些特定的授权用户 - 库的核心维护者。
这怎么可能?如果我将用户名和密码存储在一个文件中并将其添加到 gitignore,我将无法通过 GitHub 与其他任何人共享它。但是,如果我确实将文件添加到 git,它将最终转到公共存储库并与所有人共享。
是否有某种方法可以在 git 中指定给定文件只能由电子邮件 ID 位于指定列表中的人访问?我是否遗漏了一些非常明显的东西?
解决方法
但是,我只想将 Maven 上传凭证公开给某些特定的授权用户 - 库的核心维护者。
你不能。 Git 不是身份验证管理器。它不是按文件操作,而是按提交操作。
还有其他选择。
- 将您的共享凭据放入加密文件中。提交那个文件。分发解密密钥。这类似于 Rails Encrypted Credentials。
- 使用共享机密保险库,例如 HashiCorp Vault 或 shared password maanger vault。这样做的好处是永远不会在公共存储库中公开您的凭据,即使是加密的。
在这两种情况下,无论您的项目有多少共享机密,您只需要共享一个机密、解密密钥或共享金库访问权限。
,我将采用我能找到的最直接的方法。
我会将敏感数据存储在 local.properties 文件中,该文件未签入版本控制。这适用于我的项目,因为目前我是唯一的管理员。如果有更多人加入,我需要手动与他们共享文件内容,但我现在可以。
此解决方案不适用于协作者较多的团队,或者可能需要动态分配/更改此类角色的团队。