我确信人们以前也遇到过这个问题,但我找不到任何解决方案。
我一直在开发一个android库,并计划将其放在GitHub上开源。然而,我只想向一些特定的授权用户——库的核心维护者——公开maven上传信用。
这怎么可能?如果我将用户名和密码存储在一个文件中并将其添加到gitignore,我将无法通过GitHub与其他人共享。然而,如果我真的将文件添加到git中,它最终将进入公共repo并与所有人共享。
有没有办法在git中指定给定文件只能由电子邮件ID位于指定列表中的人访问?我是不是错过了一些显而易见的东西?
然而,我只想向一些特定的授权用户——库的核心维护者——公开maven上传信用。
你不能。Git不是身份验证管理器。它不按每个文件操作,只按每个提交操作。
还有其他选择。
- 将您的共享凭据放入加密文件中。提交该文件。分发解密密钥。这类似于Rails加密凭据
- 使用共享机密保管库,如HashiCorp保管库或共享密码maanger保管库。这样做的优点是永远不会在公共存储库中公开您的凭据,即使是加密的凭据
在这两种情况下,无论您的项目有多少共享机密,您都只需要共享一个机密、解密密钥或共享vault访问权限。
我将采用我能找到的最直接的方法。
我将把敏感数据存储在local.properties文件中,该文件未被检查到版本控制中。这适用于我的项目,因为目前我是唯一的管理员。如果有更多的人加入,我需要手动与他们共享文件的内容,但目前我还可以。
此解决方案不适用于拥有更多合作者的团队,也不适用于可能需要动态分配/更改此类角色的团队。