如何在GitHub上使用Heroku配置变量来安装远程私有仓库?

时间:2019-04-20 18:14:08

标签: github heroku package.json

我想从我的React应用程序中的package.json文件中删除我的用户名和个人访问令牌。

要安装的软件包是我拥有的私有远程GitHub存储库。

请求是通过HTTPS协议进行的。

例如:"react-trello": "https://username:token@github.com/username/react-trello.git#dev/branch"

我有一个从GitHub发布的PAT。但是我在项目的package.json文件中访问它们时遇到了麻烦。

我应该用PAT值创建Heroku配置变量吗? heroku config:set -a my-app GITHUB-TOKEN=466ghdf57

在Heroku配置中,您可以设置变量名称以用于GitHub。如何设置用户名,密码和令牌?作为Heroku配置变量吗?

例如:USERNAMEGITHUB-USERTOKENGITHUB-TOKEN

我尝试创建诸如USERNAMETOKENGITHUB_USER之类的变量。但是,如果我从package.json文件中删除我的凭据,那是行不通的。

例如:"react-trello": "https://github.com/username/react-trello.git#dev/branch"

我收到一个错误:Fatal: Could not read Username for "https://github.com"

我想念什么吗?

1 个答案:

答案 0 :(得分:1)

Heroku并没有提供package.json doesn't natively support environment variables

一种选择是将依赖项构建为NPM软件包并将其发布在私有软件包存储库中,例如Gemfury,其Heroku addon has a free plan支持单个私有模块。

简而言之,您可以publish your module先后https://npm-proxy.fury.io/APPID/npm loginnpm publish到金弗里。然后,in the Heroku app(取决于您的私有模块)添加包含以下内容的.npmrc文件

always-auth=true
registry=https://npm-proxy.fury.io/APPID/
//npm-proxy.fury.io/APPID/:_authToken=${FURY_AUTH}

并设置包含您的Gemfury身份验证令牌的Heroku配置变量FURY_AUTH

这确实意味着您必须在Gemfury上更新已发布的库,然后从属应用程序才能看到您对其所做的更改。无论如何,这可能是一个好主意。依靠特定的标记发布要比依赖可变的分支更为安全。

还有this workaround可以让您有效地将环境变量注入到package.json中,但是我还没有尝试过。