Использование Composer для извлечения плагина Wordpress, размещенного на Github Enterprise
Я пытаюсь добавить плагин Wordpress из репозитория Github Enterprise в мой проект. У меня есть папка wp-content в корне, и мой composer.json выглядит следующим образом:
"repositories": [
{
"type": "package",
"package": {
"name": "name/plugin-name,
"type": "wordpress-plugin",
"version": "v1.0",
"dist": {
"type": "zip",
"url": "https://example.githubname.com/name/plugin-name/archive/v1.0.zip"
},
"require" : {
"composer/installers": "v1.0.21"
}
}
},
{
"type":"composer",
"url":"http://wpackagist.org"
}
],
"require": {
"name/plugin-name": "v1.0"
},
}
Следующий репозиторий выглядит, чтобы распаковать этот репозиторий и распаковать его в папку /wp-content/.
Я получаю следующую ошибку:
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing name/plugin-name (v1.0)
Downloading: 100%
Invalid zip file, retrying...
- Installing name/plugin-name (v1.0)
Downloading: 100%
Invalid zip file, retrying...
- Installing name/plugin-name (v1.0)
Downloading: 100%
[UnexpectedValueException]
'wp-content/plugins/plugin-name//2b5746433a46375b233f5f91a9a69b43.zip' is not a zip archive.
Похоже, что почтовый индекс может пытаться пройти аутентификацию через Github Enterprise. Я попытался удалить "" url ":" https://example.githubname.com/name/plugin-name/archive/v1.0.zip"" и добавить общедоступное репо, например "" url ":" https://github.com/WordPress/WordPress/archive/4.2.2.zip"" и загружается в папку с именем плагина должным образом.
Есть ли что-то, что я могу сделать, чтобы плагин WordPress, размещенный на github enterprise, можно было извлечь из папки wp-content?
1 ответ
Общедоступный URL-адрес, который работает, является релизом для этого репо. См. Ссылку "Исходный код (zip)" в версии с меткой 4.2.2 - она соответствует общедоступному URL-адресу.zip, на который вы указываете:
https://github.com/WordPress/WordPress/releases/tag/4.2.2
Точно так же, если вы берете имеющийся у вас источник и "выпускаете" его так, чтобы вместо сохранения.zip в репозитории вы делали его релизом и ссылались на релиз.zip, он должен работать.
В качестве альтернативы, если вы поместите.zip в репозиторий, он может сработать, если вы ссылаетесь на "сырой" URL, но в приведенном выше примере фактически воссоздается публичный сценарий.