通过 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 管道进行部署