【问题标题】:PHP-CI, composer dependencies and private github repositoriesPHP-CI、composer 依赖项和私有 github 存储库
【发布时间】:2016-03-18 11:11:05
【问题描述】:

情况:

  • 我在私有 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 拥有的构建。那么为什么它成功克隆了项目,却没有成功克隆依赖呢?

解决此问题的最佳方法是什么?

【问题讨论】:

    标签: git symfony composer-php php-ci


    【解决方案1】:

    没关系,就像经常发生的那样,通过写这个问题,我自己偶然发现了答案。

    为了缩短对未来读者的搜索:

    我必须做cd /var/www/phpci/PHPCI/build/<number>(我选择了我的最后一次尝试,build 10),并在那里手动运行sudo composer install。这也失败了,但它为您提供了一个指向 github 页面的链接,您可以在其中生成 AUTH Token 并等待您将其粘贴回去。身份验证令牌存储在 /root/.composer 中,因此您只需手动执行一次。

    【讨论】:

      猜你喜欢
      • 2017-03-29
      • 2021-01-03
      • 2017-02-03
      • 2015-04-28
      • 2014-06-06
      • 2019-12-31
      • 2011-07-09
      • 1970-01-01
      相关资源
      最近更新 更多