Composer 下载私有 GitHub 存储库

Posted

技术标签:

【中文标题】Composer 下载私有 GitHub 存储库【英文标题】:Composer to download private GitHub repositories 【发布时间】:2017-02-03 00:08:57 【问题描述】:

我无法使用 composer 下载 github 私有 repos

php composer.phar update 

我收到以下错误

“https://api.github.com/repos/company/private1”文件无法 已下载(HTTP/1.1 404 未找到)

但我可以使用 git clone 轻松下载这些私人存储库

作曲家.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】:

在您的 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 访问令牌。 它们可以用来代替 HTTPS 上的 Git 密码。

如果你没有看到这个自动提示,那么这里是手动的方法:

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

回到你的服务器,告诉作曲家关于令牌:

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

【讨论】:

是的,由于某种原因,php composer.phar update 不起作用,但 php composer.phar install 起作用......我知道为什么 奇怪,我还没有看到这个问题。您可能想要删除锁定文件(或重命名它以便进行备份)。然后你可以做一个更新来生成一个新的锁文件,然后看看安装是否正常工作,也许作曲家有点困惑:) 个人toke/ci cd token和github token有什么区别?

以上是关于Composer 下载私有 GitHub 存储库的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Beanstalk 使用 PHP 和私有 Composer 存储库

通过 Composer 从私有 Bitbucket 存储库导入包

ubuntu:如何使用 sudo 使用 composer 安装私有存储库

我的 composer.json 的一个存储库现在是空的或私有的 我仍然想使用这个 composer.json 我如何添加新的存储库

composer update 给出关于私有存储库元数据的 404

如何使用命令行从私有 github 存储库下载单个原始文件?