通过 Composer 从私有 Bitbucket 存储库导入包

Posted

技术标签:

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

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

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

【问题讨论】:

【参考方案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 导入时的头部

【讨论】:

以上是关于通过 Composer 从私有 Bitbucket 存储库导入包的主要内容,如果未能解决你的问题,请参考以下文章

Yarn 包管理器:从私有 Bitbucket 存储库安装依赖项

通过 ssh 堡垒主机使用 kubectl 从 bitbucket 管道进行部署

Composer Github 私有存储库无法使用给定的密钥

composer缓存不适用于bitbucket管道构建

每次提交时都会删除Composer包

尝试从 toran 获取所需的私有库时的 Composer 警告