Composer下载私有GitHub存储库

时间:2016-09-25 16:55:56

标签: php git github ssh composer-php

我无法使用composer

下载github私人回购
php composer.phar update 

我收到以下错误

  

" https://api.github.com/repos/company/private1"文件不能   已下载(未找到HTTP / 1.1 404)

但我可以使用git clone

轻松下载这些私人回购

Composer.json

"repositories": [
    {
        "type": "vcs",
        "url": "git@github.com:company/private1.git",
        "options": {
            "ssh2": {
                "username": "githubusername",
                "pubkey_file": "/home/username/.ssh/id_rsa.pub",
                "privkey_file": "/home/username/.ssh/id_rsa"
            }
        }
    },
    {
        "type": "vcs",
        "url": "git@github.com:company/private2.git",
        "options": {
            "ssh2": {
                "username": "githubusername",
                "pubkey_file": "/home/username/.ssh/id_rsa.pub",
                "privkey_file": "/home/username/.ssh/id_rsa"
            }
        }
    }
],

"require": {
    "php": ">=5.4.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"
}

我尝试使用this,但它不起作用

SSH2 PECL也已启用。

我还创建了配置文件vim ~/home/.ssh/config

具有以下细节

host www.github.com
User githubusername
HostName github.com
IdentityFile /home/username/.ssh/id_rsa

但我仍然无法使用composer

下载私人回购

1 个答案:

答案 0 :(得分:6)

在您的composer.json文件中,您不需要存储库部分中的选项,只需要typeurl

SSH

在GitHub上,在Profile...Settings下,有一个SSH and GPG Keys标签。这是您加载SSH密钥的公共端以从您的计算机(存储私钥的位置)访问GitHub的地方。

查看他们的文档Generating an SSH Key,它将引导您完成此过程。它还会引导您完成密钥私有端的SSH代理存储。

个人访问令牌

如果您未设置访问令牌但需要一个访问令牌,则调用composer install时,Composer将提示您生成访问令牌以及用于完成此操作的URL。您可以使用该URL,它将生成一个曾经见过的API令牌,然后您可以在composer上加载它以访问GitHub。来自GitHub网站:

  

个人访问令牌功能与普通OAuth访问令牌相同。   可以使用它们代替Git over HTTPS的密码。

如果您没有看到此自动提示,则以下是手动操作方法:

  • 转到GitHub...Settings...Personal访问权限
  • 按下Generate new token按钮
  • Token Description
  • 中输入有意义的内容
  • 选中repo复选框(它会自动检查下面的三个复选框)
  • 按页面底部的Generate token按钮
  • 复制令牌

回到你的服务器上,告诉作曲家有关令牌的信息:

  • composer config -g github-oauth.github.com <token>
  • composer install