我正在构建_Composer 代理服务/存储库_。 迷你服务的想法是从 _WordPress_ API 响应动态交付主题或插件的语言/翻译包。 路线如下:
https://api.wordpress.org/translations/plugins/1.0/?slug={slug}&version={version}
_Nodejs_-service 本身只不过是一个代理,它应该作为repository
到composer.json
的type:project
。 服务本身返回providers-url
-key 作为(动态生成的) packages.json
文件的一部分。
"providers-url" : "/" + request.params.scope + "/providers/%package%$%hash%.json"
例如,请参阅以下composer.json
:
{
"name" : "vendor/testproject",
"type" : "wordpress-project",
"minimum-stability" : "dev",
"repositories" : [
{
"type" : "composer",
"url" : "https://{unique-ID}.ngrok.io/test"
}
]
}
到目前为止,我只能看到对/endpoint/packages.json
请求,但没有任何参数。 在理想的世界中,Composer 会发送required
包,作为标题或查询参数。
我已经查看(并测试)了所有可用选项,以尝试通过系统_fake_我以某种方式获取请求的包: type:{composer|vcs|…}
。 有没有办法做到这一点? 或者至少有_will_ 接受 PR 来实现这一点——以及一个额外的标志来启用该行为?
_关于托管服务的说明:可能有notify-batch
和request/require
选项的组合来收集有关搜索和实际获取的存储库的一些统计信息。 这种方法可能允许更好地定位“缓存”包。_
这目前是不可能的,我怀疑它会持续一段时间。也许在 v2.0 中,一旦我们重构了池的东西,我们就可以实现这一点。 我会暂时保持开放,但不要屏住呼吸:)
@alcohol我想你现在可以调整标签了 :)
关闭,因为我没有真正看到这种情况发生,可能可以使用 v2 元数据(如果您对更多详细信息感兴趣,请跟踪 #8248),因为您可以在那里执行metadata-url: "/p2/%package%.json"
并且所有需要的包都将被称为一个一个,但您只能返回该包名称的数据,而不能返回其他包的数据,因此不确定它是否真的对您有帮助。
它确实允许您在某种程度上即时生成包,因此您可以使插件需要foo/plugin-translations-en
,然后确保您始终返回一个包以确保它可安装,无论是内部具有有效翻译的包还是如果没有可用的翻译,一个空的元包什么都不安装?
最有用的评论
这目前是不可能的,我怀疑它会持续一段时间。也许在 v2.0 中,一旦我们重构了池的东西,我们就可以实现这一点。 我会暂时保持开放,但不要屏住呼吸:)