我有以下情况:
我在bitbucket上的私有存储库上托管了一个项目,我使用部署密钥#1。
在这个项目中,composer文件是一个托管在一个令人满意的存储库上的依赖项,并使用部署密钥#2通过另一个私有bitbucket存储库。
我将部署密钥#1存储在〜/ .ssh / id_rsa中,因此git pull开箱即用,部署密钥#2存储在〜/ .ssh / id_composer中 如何在运行composer update时告诉作曲家使用第二个键?
这是我迄今为止在composer.json中所做的,但它没有帮助,而且我无法找到我应该指定的必要选项。
"repositories": [
{
"type": "composer",
"url": "http://custom-satis-repo-url",
"options": {
"git": {
"pubkey_file": "~/.ssh/id_composer.pub",
"privkey_file": "~/.ssh/id_composer"
}
}
}
],
任何帮助都将不胜感激。
谢谢。
答案 0 :(得分:6)
实现此目的的一种方法是使用ssh配置文件。
更一般地说,这允许您配置SSH连接以使用“虚拟”主机的特定凭据,从而允许您更改连接到Git repos的方式,因此可用于修改使用ssh的Composer依赖关系
编辑vim ~/.ssh/config
,例如
Host fake-repo-url
User git
HostName actual-repo-url
IdentityFile ~/.ssh/id_composer
您需要将fake-repo-urls放入令人满意的package.json中,这会使任何没有配置的人都无用 - 但我认为这很好,因为您限制访问。
(我使用这个技巧来掩盖个人帐户在只读部署主机上的'编辑 - 远程',这需要非常偶然的提交!)
ssh config上有很多指南,例如this one at nixCraft
第二个想法:
或者您可以调查'scripts' option in Composer。您可以运行一个脚本,在更新/安装过程中交换一些东西。