上下文:我们是一家规模相对中等的公司,我们使用bitbucket托管许多私有git存储库,这些存储库在不同的团队之间共享。我们的存储库主要是composer软件包,每个特定项目都有自己的需求列表,这些需求是使用composer安装的。我们使用auth.json凭据文件来验证对bitbucket源的编写器调用。
注意:auth.json文件在团队成员之间共享。由于一些团队成员没有对所有存储库的完全访问权限,auth.json文件中的资源确实具有完全访问权限;简单地说,初学者团队成员不能从其帐户完全访问我们的所有私有存储库,但可以使用auth.json文件安装所需的所有项目依赖项。
问题:我们注意到,在解决依赖关系时,[这是我自己的解释和分析,如果我错了,请纠正我]composer在选择符合要求的正确包之前,会获取特定包的所有标记和分支,如下所示:
这听起来可能不会有问题,除非多个团队成员尝试在相对较短的时间间隔内更新/安装项目的依赖项,并且composer达到了bitbucket api速率限制
来源
=>我是通过调试composer软件包安装(通过添加详细参数i.e-vv)得出这个结论的,我发现,在引擎盖下,它执行这个bitbucket api调用:
问题:
我的分析正确吗?如果没有,谢谢你纠正它,并向我澄清它是如何在引擎盖下工作的。
处理此用例场景和不达到bitbucket api速率限制的最佳方法是什么?我们如何才能使 composer 非常具体,这可能不是最好的词,但我希望你得到的想法。
可能是一个更简单的问题:我们正在指定包的特定版本,但composer获取所有版本,然后选择正确的版本:我们将依赖项声明为: "require": { "vendor/package": "version" }
更具体地说,对于所附的特定示例,我们只需要版本1.1.1,而不是所有其他标签: "require": { "vendor/package": "1.1.1" }
我更感兴趣的是解释这是如何工作的,而不仅仅是得到一个解决方案。
暂无答案!
目前还没有任何答案,快来回答吧!