Mercurial 无法从bitbucket上的专用hg存储库中读取Composer包

Mercurial 无法从bitbucket上的专用hg存储库中读取Composer包,mercurial,composer-php,bitbucket,Mercurial,Composer Php,Bitbucket,我正在尝试使用bitbucket上私有Mercurial存储库中的Composer包。作曲家说找不到包裹 让我们调用包my user/my private repo。值得一提的是,我已将我的SSH公钥添加到此存储库的bitbucket中。包的composer.json文件如下所示: { "name": "my-user/my-private-repo", "version": "0.0.1", "description": "Some Composer Package", "au

我正在尝试使用bitbucket上私有Mercurial存储库中的Composer包。作曲家说找不到包裹

让我们调用包
my user/my private repo
。值得一提的是,我已将我的SSH公钥添加到此存储库的bitbucket中。包的
composer.json
文件如下所示:

{
  "name": "my-user/my-private-repo",
  "version": "0.0.1",
  "description": "Some Composer Package",
  "author": "me",
  "license": "blah",
  "require-dev": {
    "phpunit/phpunit": "5.0.*"
  }
}
我想在其中使用该包的项目的
composer.json
如下所示:

{
    "require": {
        "my-user/my-private-repo": "^0.0.1"
    },
    "repositories": [
        {
            "type":"package",
            "package":{
                "name":"my-user/my-private-repo",
                "version": "default",
                "source":{
                    "type": "hg",
                    "url":  "bitbucket.org/my-user/my-private-repo",
                    "reference":"default"
                }
            }
        }
    ]
}
运行
composer update
时,出现以下错误:

Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - The requested package my-user/my-private-repo could not be found in any version, there may be a typo in the package name.

Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to your minimum-stability setting
   see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.

Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.
使用包信息加载composer存储库
更新依赖项(包括需要开发人员)
无法将您的需求解析为可安装的软件包集。
问题1
-在任何版本中都找不到请求的程序包my user/my private repo,程序包名称中可能有输入错误。
潜在原因:
-软件包名称中的输入错误
-根据您的最低稳定性设置,该软件包没有足够稳定的版本
有关更多详细信息,请参阅。
阅读了解更多常见问题。
我已经阅读了所有我能找到的相关内容,但我似乎无法克服这个错误。如何在项目中使用Composer软件包?

不要使用“软件包”类型。这只对不在存储库中的软件真正有用。它的意思是将ZIP下载集成到Composer中

此外,收集该“包”类型的所有必要信息也很复杂

存储库更简单:

"repositories": [
    {
        "type": "vcs",
        "url":  "ssh://hg@bitbucket.org/my-user/my-private-repo"
    }
]
存储库必须有一个有效的
composer.json
文件,如果它也有标记的版本,那么它确实会有所帮助,因为使用分支的依赖关系最终会中断,因为您不能向后发送不兼容的更改信号,也不能返回到定义的早期版本

composer.json
不能有版本。这就是存储库标签的用途


注意:
“type”:“vcs”
通常工作良好,可以检测Git、Hg或SVN回购。

我已经尝试过了。使用
“type”:“vcs”
,我得到错误
[InvalidArgumentException]未找到处理vcs存储库bitbucket.org/my user/my private repo的驱动程序。使用
“type”:“hg”
,我得到
[Composer\Repository\InvalidRepositoryException]在bitbucket.org/my-user/my-private-repo的任何分支或标记中未找到有效的Composer.json,无法从中加载程序包。
有没有想过如何避免这些错误?好吧,在我的头撞了几个小时后,我找到了答案。这个解决方案是由以下因素驱动的。我不得不将您的JSON代码片段更改为以下内容:
“存储库”:[{“类型”:“hg”,“url”:ssh://hg@org/my user/my private repo/“}]
,然后它就成功了。如果你能在你的回答中包含这一点,我会给你一个复选标记,让你指引我走上正确的道路。这也让我感到惊讶,谢谢你的回复。“vcs”应该是存储库类型的自动检测,但不知怎么的,它在这里失败了。实际上,
“type”:“vcs”
似乎在我修复URL后就可以工作了。显然,这只是URL格式的问题。我只是根据我上次的评论稍微调整了你的编辑。谢谢你的帮助!