通过Composer使用Gitlab私有仓库

3
今天我在GitLab上创建了私有存储库,并希望通过Composer在我的Laravel项目中安装它,但是当我运行composer update时,我遇到了以下错误:

您的配置不允许连接到...........

这是我composer.json的一部分:
"repositories": [{
        "type": "package",
        "package": {
            "name": "abc/def",
            "version": "dev-master",
            "type": "package",
            "source": {
                "url": "http://gitlab.abc.pro/abc/def",
                "type": "git",
                "reference": "master"
            },
        }
    } ],
"require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.1.*",
        "abc/def" : "dev-master",  
    },

1
我敢打赌这是http而不是https。尝试在存储库部分更改它或在全局composer配置中允许它composer config -g secure-http false - Norman M
谢谢回复。@NormanM,我已经解决了,问题出在我需要在我的ssh中拥有公钥和私钥。 - Yur Gasparyan
@YurGasparyan 如果您解决了问题,请回答您的帖子并逐步说明解决方法,以便将来遇到相同问题的人可以受益。 - ntshetty
2个回答

12

您可以使用:

"repositories": [
    {
     "type": "vcs",
      "url": "ssh://git@gitlab.yourdomain.com/repo/private.git"
    }
]

以及这个:

"require": {
    "php": ">=7.0.0",
    "repo/private": "dev-master",
 }

太好了,谢谢分享。在Composer手册中,所有人都要求设置ssh密钥,但当我们只输入git@github.com:foo/secret.git而没有ssh时,它总是会回退到http方法。这相当麻烦。 - Benyamin Limanto
为什么我们使用版本控制系统而不是Git? - famas23

0
为了方便使用GitLab存储库,我使用了packagist服务,因此您需要进入GitLab存储库的设置并设置从packagist获取的oAuth令牌。如果要使用私有存储库,则需要获取公钥和私钥,并在GitLab存储库中设置它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接