我有以下情况:
我有一个项目托管在 bitbucket 的私有(private)存储库中,我使用部署 key #1。
在该项目的 composer 文件中,依赖项托管在 satis 存储库上,并使用部署 key #2 通过另一个私有(private) bitbucket 存储库 pull 。
我将部署 key #1 存储在 ~/.ssh/id_rsa 中,因此 git pull 开箱即用,部署 key #2 存储在 ~/.ssh/id_composer 在运行 composer update 时,如何告诉 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"
}
}
}
],
如有任何帮助,我们将不胜感激。
谢谢。
最佳答案
实现此目的的一种方法是使用 ssh 配置文件。
更一般地说,这允许您配置 SSH 连接以使用“虚拟”主机的特定凭据,从而允许您更改连接到 Git 存储库的方式,因此可用于修改使用 ssh 的 Composer 依赖项.
编辑 vim ~/.ssh/config
例如
Host fake-repo-url
User git
HostName actual-repo-url
IdentityFile ~/.ssh/id_composer
您需要将伪造的 repo-urls 放入您的 satis package.json 中,这将使它们对没有配置的任何人都无用 - 但我认为这很好,因为您正在限制访问。
(我使用这个技巧来屏蔽只读部署主机上的“远程编辑”个人帐户,这需要非常偶尔的提交!)
ssh config 上有很多指南例如this one at nixCraft
第二个想法:
或者,您可以调查 'scripts' option in Composer .您也许能够运行一个脚本,在更新/安装过程中交换一些东西。
关于php - 我如何告诉 Composer 对给定的 Composer 存储库使用哪个 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26542835/