在我的Laravel 5.1项目composer.json中,我有以下内容来添加公共github仓库作为依赖项。
...
"repositories": [
{
"type": "package",
"package": {
"name": "myVendorName/my_private_repo",
"version": "1.2.3",
"source": {
"type" : "git",
"url" : "git://github.com/myVendorName/my_private_repo.git",
"reference" : "master"
},
"dist": {
"url": "https://github.com/myVendorName/my_private_repo/archive/master.zip",
"type": "zip"
}
}
}
],
"require": {
....
"myVendorName/my_private_repo": "*",
},
...
字符串
只要仓库是公共的,就可以使用。现在我已经将这个仓库设置为私有。我用于拉/推到'my_private_repo'的git凭据是项目的colaborator的凭据。当我运行composer update或composer install时,如何实现composer从该私有仓库拉取?
5条答案
按热度按时间h9vpoimq1#
使用GitHub和BitBucket上的私有仓库:
JSON
字符串
唯一的要求是为git客户端安装SSH密钥。
Docs
t0ybt7op2#
我希望我的答案不会来得太晚,因为我刚刚才知道这一点。
生成ssh密钥
你可以使用ssh-keygen命令生成n+1个ssh密钥。确保你在服务器上这样做!
字符串
在使用ssh-keygen命令后,系统会提示你输入文件名和密码。你需要为每个要用作composer依赖的私有仓库提供一个密钥。在这个例子中,repo 1是文件名。
请确保密码和确认为空。
配置ssh获取正确的密钥
在servers ~/.ssh/config文件中,你可以为每个GitHub仓库分配一个别名。否则composer会尝试使用默认的id_rsa。
型
配置Composer
在项目composer.json文件中,你需要添加你想要的仓库作为依赖:
型
repo 1和repo 2是您在~/ssh/config文件中创建的别名。repo 1的完整GitHub ssh url为:
email protected(https://stackoverflow.com/cdn-cgi/l/email-protection):YourAccount/repo1.git
现在你应该已经设置好了。你现在可以要求你的依赖项:
第一个月
composer require youraccount/repo2 -n
个注意!当使用GitHub仓库作为composer依赖时,您总是需要在每个composer命令中添加-n。
xkftehaa3#
1.指向Git仓库
更新composer.json并添加仓库:
字符串
2.创建SSH密钥
在要安装软件包的计算机上创建SSH密钥。
如果你正在开发机器上工作,你可能想将SSH密钥添加到你的GitHub/BitBucket/GitLab帐户。这将允许访问你的帐户可以访问的所有私有存储库。
有关如何添加Github,Bitbucket或Gitlab SSH密钥的更多信息,请参阅此excellent article
如果您正在配置部署服务器,最好配置访问密钥或部署密钥。访问密钥仅提供对单个存储库的访问,因此允许更具体的访问管理。
3.运行composer
现在只是 composer 要求或
composer install
包像往常一样。dauxcl2d4#
在命令行中,你可以让composer确保你在composer.json文件中保留了有效的json,使用这样的命令来配置你的仓库:
字符串
**注意:**我还没有在引用的属性中使用''行连续标记进行测试。我成功的测试涉及在一行上运行所有这些。但我发现这种格式更容易让人理解。
**进一步注意:**此命令将继续抛出错误,直到您的
ssh-keygen
密钥对到位,并且您的公钥已在存储库上配置,如本问题的其他答案所述。运行此命令的结果是我的composer.json文件中的以下条目:
型
此用法记录在此处:https://getcomposer.org/doc/03-cli.md#config
vatpfxk55#
您也可以通过命令行将其添加到
composer.json
文件中:字符串
举例来说:
存储库:https://github.com/chapagain/auto-currency-switcher-2
型
运行上面的命令会将以下内容添加到
composer.json
文件中:型
类型可以是
vcs
,或者我们也可以通过使用git
来指定类型。要使用的MySQL驱动程序会根据URL自动检测。但是,如果您出于任何原因需要指定一个驱动程序,您可以使用
bitbucket
、github
、gitlab
、perforce
、fossil
、git
、svn
或hg
作为存储库类型,而不是vcs
。https://getcomposer.org/doc/05-repositories.md#types:~:text=The%20VCS%20driver,vcs
之后,您可以运行以下命令来安装该模块。
型
对于上面的示例,我们将运行以下命令来安装模块:
型
因为
composer.json
文件中模块的名称是chapagain/magento2-autocurrency
:https://github.com/chapagain/auto-currency-switcher-2/blob/master/composer.json#L2C12-L2C43