情况:
- 我在私有 github 存储库中有一个 symfony2 项目。
该项目具有供应商依赖关系,其中之一位于不同的私有存储库中。我不拥有这个 repo,但我是贡献者并且可以读/写。使用 Composer 通过以下方式将其添加到项目中:
"repositories": [{ "type": "vcs", "url": "git@github.com:company/dependency.git" }], "require": {"company/dependency": "~1.0"}
我已经设置了 PHPCI 我的测试服务器,添加了主项目,设置了一个 cron 作业,所有这些都“根据手册”。
- 我在该服务器上生成了一个 SSH 密钥(在 /root/.ssh 中),并将该密钥添加到我的个人 github 帐户中。
- 作为 root,我可以手动克隆此测试服务器上的主项目存储库和依赖存储库。
但是在 PHPCI 中运行构建时,我收到以下消息:
Cloning into '/var/www/phpci/PHPCI/build/10'...
Working copy created: /
RUNNING PLUGIN: composer
Using --prefer-source flag
Loading composer repositories with package information
Failed to clone the git@github.com:company/dependency.git repository,
try running in interactive mode so that you can enter your GitHub credentials
[RuntimeException]
Failed to execute git clone --mirror 'git@github.com:company/dependency.git' '/root/.composer/cache/vcs/git-github.com-company-dependency.git/'
因此,由于身份验证问题,无法检索供应商依赖项。但是,同样位于私有存储库中的主项目正在被 PHPCI 克隆,没有任何问题。
cronjob 和 composer 以 root 身份运行,该/var/www/phpci/PHPCI/build
文件夹充满了 root 拥有的构建。那么为什么它成功克隆了项目,却没有成功克隆依赖呢?
解决此问题的最佳方法是什么?