我可以在 Heroku 上使用 npm private github 依赖项吗

Can I use npm private github dependencies on Heroku

我正在尝试将 Node.js 应用程序推送到 Heroku。该应用程序使用 npm 获取私有 github 存储库,这些存储库在 package.json 中指定,如下所示...

"dependencies": {
    "my-private-dep": "github:my-org/my-repo"
}

构建在 npm install 阶段失败,因为 github 主机密钥不在容器 known_hosts 文件中。

remote:        npm ERR! Host key verification failed.

这是 SSH 的预期行为。 Heroku 是否为此提供了解决方法?例如,dokku, which uses the same buildpack has a host keys plugin 将在每次构建之前将主机密钥注入容器,从而解决了此问题。 Heroku 是否有类似的解决方案?

事实证明,有一个 buildpack 可以使这个相对容易 -

https://github.com/debitoor/ssh-private-key-buildpack

但是,我发现,无论出于何种原因,设置 SSH_HOSTS 环境变量对我来说都无法正常工作 - 根据文档,默认情况下应该设置 Github,并且然后你可以根据需要添加其他人......我实际上正在为这个特定项目使用Gitlab,但发现当我这样设置配置时:

$ heroku config:set SSH_HOSTS="git@gitlab.com"

未检测到。我最终分叉了构建包并将 bin/compile 第 13 行更改为

ssh_hosts=${SSH_HOSTS:-"git@gitlab.com"}

然后将其推送到我自己的存储库以用于该项目。工作得很好。