Использование 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, но в приведенном выше примере фактически воссоздается публичный сценарий.

Другие вопросы по тегам