我的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"
}
}
我们已设置SSH密钥并将其添加到我们的登台服务器上的授权密钥。当我们运行git clone时,它可以完美运行,并且不会要求任何凭据。
但是,当我们运行composer update时,存储库的提取失败,因为composer无法访问存储库。
由于这是以非交互方式运行的,因为这是构建脚本的一部分,我们无法输入凭据并希望自动化。
在构建过程中,我们可以做些什么让作曲家可以访问我们的私人回购?
答案 0 :(得分:29)
我理解问题标题特别提及使用'vcs'类型,但这是使用私有git repos将项目部署为包的alternate method。
"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": "*"
}
如果您需要最新版本,则必须手动更改每次部署时的版本号。然而,这也是它的优势。
以这种方式定义回购将允许您提取特定标记版本。在这种情况下,带有标记0.1.0
的提交将在composer update
上提取。
您需要在github帐户中添加要部署的服务器的SSH密钥。
答案 1 :(得分:14)
您可以将composer配置为使用密钥文件来访问私有存储库。
更多信息:https://getcomposer.org/doc/articles/handling-private-packages-with-satis.md#security
答案 2 :(得分:8)
原始问题中的网址缺少冒号:
"url": "git@github.com/company/private.git"
应该是
"url": "git@github.com:/company/private.git"
我遇到了同样的问题并修复了它。
答案 3 :(得分:4)
let pageIndex: Int = Int(bitPattern: bytes) / pageSize
let pageAlignedAddress: UnsafeMutableRawPointer? = UnsafeMutableRawPointer(bitPattern: pageIndex * pageSize)
我非常感谢答案和指导;但是,不可以让解决方案适合我。并且,我认为答案可能会使用一些关于这里似乎正在发生的事情的更多细节。
"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}": "*"
}
中使用的供应商名称。composer.json
的包名用户。给我带来最大问题的两件事是冒号(composer.json
)没有(不应该?)后跟正斜杠(:
)。别忘了将/
放在.git
的末尾。
猜想点和不确定性:
url
成员更改为不正确的内容会发生什么。换句话说,我不知道这是否仅仅是package.name
的内部参考;或者,如果那里会发生其他事情。