在 package.json 中隐藏私有仓库的令牌

Posted

技术标签:

【中文标题】在 package.json 中隐藏私有仓库的令牌【英文标题】:Hiding the token for a private repo in package.json 【发布时间】:2019-09-27 00:05:30 【问题描述】:

我有一个在我的项目中使用的私人仓库,例如 "myPrivateRepo":"git+https://oauth2:SOMESECRET@git.github.com/privaterepo.git"

我将把这个项目部署为公共仓库。我怎样才能隐藏SOMESECRET? 我尝试使用 enviornmentVariable 但没有成功。

"myPrivateRepo":"$PrivateRepoUrl"

请帮忙。

【问题讨论】:

也许能解释一下为什么环境变量不起作用?它们是处理这个问题的正常方法,大多数人都会想建议这种方法。 我有一个使用 create-react-app 创建的 react 项目。然后将 .env 文件添加到根位置,在文件中我添加了 PrivateRepoUrl=someURL。尝试执行 npm install 时;我收到以下错误 - 代码 EINVALIDTAGNAME npm ERR!无效的标签名称“$PrivateRepoUrl”:标签可能没有任何 encodeURIComponent 编码的字符。 对不起,我刚刚意识到您正在尝试在 package.json 中使用环境变量,是的,您说得对,这并不简单。你可以通过 ssh 访问私有仓库吗?喜欢这个评论:***.com/a/34650617/1058314 是的,我也可以通过 ssh 访问。刚刚看到另一种方法-***.com/a/40312033/893217,你怎么看? 我尝试了 SSH 选项,它在本地计算机上运行良好。现在的问题是我需要在 Heroku 上部署,我认为 Heroku 不会提供我可以在 GIT 上列入白名单的公钥 【参考方案1】:

您应该为此使用保险柜。你可以从这里下载:https://www.vaultproject.io/downloads.html

在此处了解有关保险柜的更多信息:https://learn.hashicorp.com/vault/

还有其他工具,您可以根据自己的喜好选择。

【讨论】:

以上是关于在 package.json 中隐藏私有仓库的令牌的主要内容,如果未能解决你的问题,请参考以下文章

GitHub OAuth2 令牌:如何限制访问以读取单个私有仓库

k8s无脑系列-创建私有仓库

markdown 从私有GitHub仓库下载单个文件。您需要一个访问令牌,如本GitHub帮助文章中所述:https://help.github

在 Github Actions 上从 package.json 安装私有 github 包

package.json 中带有版本的私有 bitbucket 存储库

从私有 gitlab 存储库中使用 npm 安装依赖项