【问题标题】:Importing package from a private Bitbucket repository through composer通过 Composer 从私有 Bitbucket 存储库导入包
【发布时间】:2014-08-15 09:50:43
【问题描述】:

我在一个私有 Bitbucket 存储库中有一个包设置,我在各种基于 Laravel 的客户端项目中使用它。我发现我会定期添加内容,并希望能够根据需要使用最新版本使用 composer 更新每个客户的项目。

如何在 composer.json 文件中添加一个条目以从 Bitbucket git 存储库中提取,而无需向客户端公开我的个人存储库登录名/密码?

【问题讨论】:

    标签: php git laravel composer-php bitbucket


    【解决方案1】:

    使用ssh authentication并配置一些Deployment Keys

    • 进入“项目设置 -> 部署密钥”
    • 然后为您的每个客户端添加不同的部署密钥。

    您可以找到有关如何使用 Mercurial 或 Git 设置 ssh 身份验证的链接的更多信息。

    【讨论】:

    • 我是这么想的,但是我不知道如何在composer.json中引用SSH密钥。
    • 我不熟悉composer.json,但通常可以使用运行进程/服务的用户的公钥。例如,如果您使用用户daemon 运行您的进程,您可以在/home/daemon 中为其创建一个ssh 密钥,并且ssh 库将默认从那里加载公钥。 (例如,我已经成功地将它与 jenkins 一起使用,而无需对其进行任何特殊配置)。
    【解决方案2】:

    我对 bitbucket 私人仓库有些问题... 所以我在项目根目录的 composer.json 中添加了类似的内容。

    "require"     : {
                "php"                                      : ">=5.4.0",
                ...,
                "author/my-package"                     : "0.2"
    },
    
    "repositories": [
                {
                    "type"   : "package",
                    "package": {
                        "name"   : "author/my-package",
                        "version": "0.2",
                        "source" : {
                            "url"      : "ssh://hg@bitbucket.org/author/my-package",
                            "type"     : "hg",
                            "reference": "0.2"
                        },
                        "require": {
                            "php": ">=5.4.0",
                            "zendframework/zendframework": "2.3.*"
                        },
                        "autoload": {
                            "psr-0": {
                                "PackageNameSpace": "src/"
                            },
                            "classmap": [
                                "./Module.php"
                            ]
                        }
                    }
                },
        ...
        ]
    

    所以在 composer.phar 更新后,它会在供应商中创建 repo 目录...但是在私有 repo 和 composer.phar 更新中的新提交后,它不会拉最后一个变更集...它保持在第一次 repo 导入时的头部

    【讨论】:

      猜你喜欢
      • 2016-10-13
      • 2017-01-04
      • 2018-01-06
      • 2016-11-15
      • 1970-01-01
      • 2017-03-25
      • 2020-06-29
      • 2023-03-09
      • 2018-03-19
      相关资源
      最近更新 更多