Sim*_*mon 27 php git ssh github composer-php
我的compsoser.json使用来自我们的组织Github帐户的2个私有存储库,如下所示.
{
"name": "API",
"repositories": [
{
"type": "vcs",
"url": "git@github.com/company/private.git"
},
{
"type": "vcs",
"url": "git@github.com/company/private2.git"
}
],
"require": {
"php": ">=5.3.3",
"zendframework/zendframework": ">2.1.3",
"doctrine/mongodb-odm": "dev-master",
"doctrine/doctrine-mongo-odm-module": "dev-master",
"company/private": "dev-master",
"company/private2": "dev-master"
}
}
Run Code Online (Sandbox Code Playgroud)
我们设置了SSH密钥并将它们添加到我们的登台服务器上的授权密钥.当我们运行git clone时,它工作得很好,而不是要求任何凭据.
但是,当我们运行composer update时,获取存储库会失败,因为composer无法访问存储库.
由于这是以非交互方式运行的,因为这是构建脚本的一部分,因此我们无法输入凭据并希望将其自动化.
我们可以做些什么来让作曲家在构建过程中访问我们的私人回购?
myo*_*yol 31
我理解问题标题特别提到使用类型'vcs',但这是使用私有git repos将项目部署为包的另一种方法.
"repositories": [
{
"type": "package",
"package": {
"name": "company/private",
"version": "0.1.0",
"type": "package",
"source": {
"url": "git@github.com:/company/private.git",
"type": "git",
"reference": "master"
}
}
}
],
"require": {
"company/private": "*"
}
Run Code Online (Sandbox Code Playgroud)
限制是如果您需要最新版本,则必须在每次部署时手动更改版本号.然而,这也是它的优势.
以这种方式定义仓库将允许您提取特定的标记版本.在这种情况下,带有标记的提交0.1.0将被启用composer update.
您需要在github帐户中添加要部署的服务器的SSH密钥.
mic*_*l_w 14
您可以将composer配置为使用密钥文件来访问私有存储库.
更多信息:https://getcomposer.org/doc/articles/handling-private-packages-with-satis.md#security
小智 9
原始问题中的网址缺少冒号:
"url": "git@github.com/company/private.git"
Run Code Online (Sandbox Code Playgroud)
应该
"url": "git@github.com:/company/private.git"
Run Code Online (Sandbox Code Playgroud)
我只是遇到了同样的问题并修复了它.
"name": "{vendor}/{package-name}",
"repositories": [
{
"type": "package",
"package": {
"name": "{vendor}/{package-name}",
"version": "{arbitrary-version}",
"type": "package",
"source": {
"url": "git@github.com:{github-username}/{github-repository}.git",
"type": "git",
"reference": "{branch}"
}
}
}
]
"require": {
"{vendor}/{package-name}": "*"
}
Run Code Online (Sandbox Code Playgroud)
我真的很感谢答案和指导;但是,无法找到适合我的解决方案。而且,我认为答案可能会在此处似乎正在发生的事情上使用更多细节。
composer.json。composer.json。给我最大问题的两件事是冒号(:)不(不应该吗?)后跟正斜杠(/)。别忘了放在.git末尾url。
猜想和不确定点:
package.name成员更改为不正确的内容会发生什么。换句话说,我不知道这是否require仅是内部参考。或者,如果那里还有其他事情发生。