使用私有 Bitbucket Mercurial 存储库配置composer.json

2024-01-22

我的项目使用我自己的库,该库位于 bitbucket.org 上的私人 Mercurial 存储库中。该库没有配置composer.json。

我尝试将该库作为我的项目的依赖项。

首先,我向composer.json写入以下字符串:

{
"require": {
    "php": ">=5.4",
    "myname/mylibname": "dev"
},

"repositories":[
    {
        "type": "hg",
        "url" : "https://bitbucket.org/myname/mylibname"
    }
]
}

和跑步composer install我有一个错误:

[运行时异常]
克隆失败https://bitbucket.org/myname/mylibname https://bitbucket.org/myname/mylibname,无法从中读取包
中止:需要 http 授权

比我变了"type": "hg" to "type": "vcs"并得到另一个错误:

[作曲家\存储库\InvalidRepositoryException]
在 https://***/mylibname 的任何分支或标记中都找不到有效的composer.json,无法从中加载包。

在额外阅读文档后,我将库的描述添加到项目的composer.json中,它开始看起来像这样:

{
"require": {
    "php": ">=5.4",
    "myname/mylibname": "dev"
},

"repositories":[

    {
        "type": "vcs",
        "url" : "https://bitbucket.org/myname/mylibname"
    },
    {
        "type":"package",
        "package":{
            "name":"myname/mylibname",
            "version": "dev",
            "source":{
                "type":"vcs",
                "url":"https://bitbucket.org/myname/mylibname",
                "reference":"dev"
            }
        }
    }
]}

发生了同样的错误:

[作曲家\存储库\InvalidRepositoryException]
在 https://***/mylibname 的任何分支或标记中都找不到有效的composer.json,无法从中加载包。

我删除了这部分:

        {
        "type": "vcs",
        "url" : "https://bitbucket.org/myname/mylibname"
    },

并得到一个错误:

[无效参数异常]
未知的下载程序类型:vcs。可用类型:git、svn、hg、perforce、zip、rar、tar、gzip、phar、file。

我变了"type": "vcs"回到"type": "hg",composer.json 看起来像:

{
"require": {
    "php": ">=5.4",
    "myname/mylibname": "dev"
},

"repositories":[
    {
        "type":"package",
        "package":{
            "name":"myname/mylibname",
            "version": "dev",
            "source":{
                "type":"hg",
                "url":"https://bitbucket.org/myname/mylibname",
                "reference":"dev"
            }
        }
    }
]}

和一个错误:

[运行时异常]
无法执行 hg clone 'https:/***/mylibname' '/path/to/myproject' 中止:需要 http 授权

除了composer.json之外,我的auth.json的结构是:

{
"http-basic": {
    "bitbucket.org": {
        "username": "myusername",
        "password": "mypassword"
    }
}
}

似乎bitbucket-oauth从 Composer 1.1 开始,该方法在当前状态下存在错误。这意味着您必须在客户端上设置 SSH 密钥,或者如果您像我一样由于部署服务器而无法设置密钥,则必须使用基本身份验证。

我让这个工作的唯一方法是:

〜/.composer/auth.json

{
    "http-basic": {
        "bitbucket.org": {
            "username": "bitbucketUsername",
            "password": "PasswordToBitbucket"
        }
    }
}

作曲家.json

"repositories": [
        {
            "url": "https://[email protected] /cdn-cgi/l/email-protection/username/my-package.git",
            "type": "git"
        }

],
"require": {
        "username/my-package": "dev-master"
},
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用私有 Bitbucket Mercurial 存储库配置composer.json 的相关文章

随机推荐