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



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

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

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

当Heroku试图从我的私有存储库下载包时,问题出现了:我如何向Heroku提供访问这些存储库的权限?

这是一个示例编写器。json配置:

"require": {
    "my/private-package": "~1.0",
},
"repositories": [
    {
        "type": "git",
        "url": "https://Aerendir@bitbucket.org/Aerendir/private-package"
    }
]

这个配置在Composer文档中有解释(它也可以在没有Satis的情况下工作,除了Heroku的"问题":)-或者其他云托管,我想)。

关于认证,这里有解释:

注意,如果你的私有包托管在GitHub上,你的服务器应该有一个SSH密钥,使其能够访问这些包,并且然后应该在命令中添加——no-interaction(或-n)标志以确保它退回到SSH密钥身份验证,而不是提示输入密码。这也是连续的一个好技巧集成服务器。

现在,问题是2:

  1. BitBucket有部署密钥,但我也可以设置SSH密钥。
  2. 什么关于Heroku的SSH密钥?

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

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

变量的值应该是这样的:

{
   "http-basic":{
      "bitbucket.org":{
         "username":"hello@aerendir.me",
         "password":"y0UrH4rdT0Gu3sSp4SsW0rd"
      }
   }
}

如果设置了,Composer将读取它并使用它的值来连接BitBucket。

这是正确的方法,因为它是安全的,并且不会强迫你通过你使用(或将使用)的各种服务来构建和部署你的应用程序,使你的密码在网络上传播。

引用:

COMPOSER_AUTH

使用composer制作HTTPS作品

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

add server SSH key to bitbucket

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

git@bitbucket.com:organisation/reponame.git

希望有所帮助

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

改变:

git@bitbucket.org:username/repository.git

在我的作曲家。json:

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

当运行composer update --no-dev时,Composer将要求您输入用户名/密码组合进行身份验证。接下来,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的公钥…

UPDATE:直接在composer.json

另一个选项是(简单地)在composer.json文件中包含一个章节,用于Heroku安装依赖项。

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

也看到

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

相关内容

  • 没有找到相关文章

最新更新