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