我的目标是将一个composer.json
文件提交给我们的项目存储库,该文件指定应该为该项目使用哪些主题或插件,以及开发人员何时将所需的所有内容下拉到repo do是运行composer install。我们希望将插件保留在项目仓库之外,以阻止项目仓库的膨胀,并且拉动和推动变得缓慢。
对于标准的wordpress插件,例如#34; Jetpack by WordPress.com"这很好,因为我们将使用https://wpackagist.org/。但是,对于为内部定制的插件和内置定制的Premium而言,我们希望将它们托管在私有作曲程序库中。
因为我们将拥有这些插件的多个版本,所以我希望显示所有版本,例如1.1,1.2,1.3,因此开发人员可以在composer.json中指定需要哪个版本,例如如果未来的版本破坏了某些东西,我们需要回滚到以前的版本。
我已经阅读了设置Satis私有存储库的基础知识,我已经这样做但是我无法让它循环遍历版本的git标记,并指定它是一个Wordpress插件并将其安装在正确的位置
这是我第一次获得所有git标记版本的尝试:
{
"name": "Private Repository",
"homepage": "http://packages.privaterepo.com",
"repositories": [
{
"type": "vcs",
"url": "git@bitbucket.org:companyname/project.git"
}
],
"require-all": true
}
这是我必须指定版本但要将其安装在正确的Wordpress插件位置的地方:
{
"name": "Private Repository",
"homepage": "http://packages.privaterepo.com",
"repositories": [
{
"type": "package",
"package": {
"name": "company/project",
"description": "WordPress Plugin",
"version": "1.0",
"source": {
"type": "git",
"url": "git@bitbucket.org:company/project.git",
"reference": "origin/master"
},
"type": "wordpress-plugin",
"require": {
"php": ">=5.3.2",
"composer/installers": "*"
}
}
}
],
"require-all": true,
"require-dependencies": true,
"extra": {
"installer-paths": {
"wp-content/plugins/{$name}/": ["type:wordpress-plugin"]
}
}
}
有人可以建议我如何让这两种情况一起工作吗?
答案 0 :(得分:0)
我认为我有类似的设置:在本地Satis repo中,我们有来自私有Git服务器的内部包,以及来自Github的所有外部包。
诀窍是做两个步骤:第一步只提取所有外部包的元数据,这就是你的版本范围发挥作用的地方,以避免拉扯所有内容。
第二步将扫描所有本地Git存储库并检测所有版本,另外还将添加在步骤1中创建的Composer存储库。
实际上,您将处理两个将创建两个结果的Satis配置,而外部包的第一个作业的结果将仅获取所有元数据,而在第二步中,它将被导入并像本地Git仓库一样使用,并配置第二步扫描“所有”版本并可能从它们创建ZIP文件将为您可能需要的每个包创建一个很好的本地备份副本。
或换句话说:
SATIS-external.json
{
"repositories": [
{
"type":"composer",
"url":"https://packagist.org"
}
],
"require": {
"any/package":">=2.0"
}
"output-html": false,
"require-dependencies": true
}
运行它:
php -dmemory_limit=2G satis/bin/satis build satis-external.json external/
SATIS-internal.json
{
"repositories": [
{
"type": "composer",
"url": "http://url/from/external/above"
},
{
"type": "vcs",
"url": "ssh://internal/gitrepo.git"
}
],
"require-all": true,
"archive": {
"directory": "dist",
"format": "zip",
"prefix-url": "https://whatever/youneed",
"skip-dev": true
}
}
运行此
php -dmemory_limit=2G satis/bin/satis build satis-internal.json internal/
在Satis中添加“type = composer”存储库会使其像任何其他存储库一样 - 特别是如果你“require-all = true”,它会下载那里提到的所有包,所以要小心不要添加Packagist或任何其他直接回购。
另请注意,对于外部程序包,“require-dependencies”是正确的,因为您可能不想轻易添加要使用的程序包的所有依赖项。
如果您的某些付费软件包提供远程repo访问权限,您可以在外部配置中添加此repo以及访问凭据 - 它应该可以正常工作。