如何提供对Composer使用的git存储库的访问

问题描述 投票:6回答:3

为了管理我的库我使用Composer,所以我在composer.json中设置依赖项,然后添加(在composer.json中)代码所在的私有存储库的远程地址。

当运行composer update/install时,我被提示请求访问这些私有存储库的密钥。

现在,我正在尝试将Symfony 2应用程序部署到Heroku。

当Heroku尝试从我的私有存储库下载软件包时出现问题:我如何向Heroku提供对这些存储库的访问?

这是一个示例composer.json配置:

"require": {
    "my/private-package": "~1.0",
},
"repositories": [
    {
        "type": "git",
        "url": "https://[email protected]/Aerendir/private-package"
    }
]

这个配置is explained in the Composer Documentation(它也没有Satis,除了与Heroku的“问题”:) - 或我认为的其他云托管)。

在那里,关于身份验证,解释:

请注意,如果您的私有软件包托管在GitHub上,您的服务器应该有一个ssh密钥,使其可以访问这些软件包,然后您应该在命令中添加--no-interaction(或-n)标志以确保它回退到ssh密钥身份验证而不是提示输入密码。这对于持续集成服务器来说也是一个很好的技巧。

现在,问题是2:

  1. BitBucket有deployment keys但我也可以set a SSH key
  2. 怎么样Heroku SSH keys

那么,我怎样才能让Heroku访问BitBucket上的私有存储库?如何从Heroku在部署时执行的composer install命令下载BitBucket上托管的私有存储库?

git heroku deployment ssh composer-php
3个回答
2
投票

正确的答案是使用COMPOSER_AUTH作为直接在Heroku仪表板中设置的环境变量。

变量的值应该是这样的:

{
   "http-basic":{
      "bitbucket.org":{
         "username":"[email protected]",
         "password":"y0UrH4rdT0Gu3sSp4SsW0rd"
      }
   }
}

如果设置,Composer将读取它并使用其值连接到BitBucket。

这是正确的方法,因为它是安全的,并且不会强迫您通过您使用(或将使用)构建和部署应用程序的各种服务在Web中进行密码。

参考文献:

COMPOSER_AUTH


0
投票

解决/规避了Heroku使用Composer在私有BitBucket存储库中安装依赖项的限制:

变化:

[email protected]:username/repository.git

在我的composer.json中:

https://bitbucket.org/username/repository.git

运行composer update --no-dev时,Composer会要求您输入用户名/密码组合进行身份验证。 Next Composer将为您提供在/Users/username/.composer/auth.json中保存这些凭据,另请参阅:https://getcomposer.org/doc/articles/http-basic-authentication.md

选择“Y”以创建该文件。

现在将创建的auth.json复制到项目文件夹中。使用git添加,提交并将其推送到Heroku。

这对我有用,不幸的是auth.json以纯文本形式存储你的密码,所以对我来说这不是一个理想的解决方案......

来自Heroku的人监控这个问题?使用http://www.CloudControl.com时,可以检查应用程序的详细信息,其中包括公钥。将它添加到BitBucket,它的工作原理。无论是那个还是让Composer正确使用了可以添加到Heroku的公钥......

更新:直接在composer.json中

另一种选择是(简单地)在composer.json文件中包含一个部分,Hero使用该部分来安装依赖项。

"bitbucket-oauth": {
  "bitbucket.org": {
    "consumer-key": "key-goes-here",
    "consumer-secret": "secret-goes-here"
  }
}

另见

https://getcomposer.org/doc/06-config.md#bitbucket-oauth


-1
投票

使https与作曲家合作

  1. 你应该在bitbucket中创建auth令牌。
  2. 运行composer config -g github-oauth.github.com token

要么

将服务器ssh密钥添加到bitbucket

并改变https://bitbucket.com/organisation/reponame.git

[email protected]:organisation/reponame.git

希望能帮助到你

© www.soinside.com 2019 - 2024. All rights reserved.