WebHookEventType и плагины solved и assign

В этом отличном изменении, которое добавило вебхуки в плагин solved, некоторая функциональность, касающаяся типов событий вебхуков, была перенесена в ядро.

Однако это имеет некоторые нежелательные побочные эффекты.

  1. На экземплярах, где не установлены плагины solved или assign, типы событий отображаются, но отсутствует перевод, и (естественно) события недоступны, хотя они и показываются.

  1. Плагины solved и assign в настоящее время сломаны на новых стабильных и бета-установках, так как в них отсутствуют seed-данные.

Моя первоначальная мысль состояла в том, чтобы попросить вас сделать бэкпорт seed-данных в стабильную версию для исправления проблемы №2, но поскольку есть дополнительная ошибка (№1), возможно, лучше оставить код инициализации в самом плагине и просто зарезервировать ID в коде ядра.

Если коротко, я думаю, что будет лучше перенести код

WebHookEventType.seed do |b|
  b.id = WebHookEventType::SOLVED
  b.name = "solved"
end

обратно в плагины solved и assign.

8 лайков

Спасибо, что подняли этот вопрос. Я изучу, что мы можем сделать, чтобы плагины, которые не установлены, не отображались в ядре.

7 лайков

Отлично, спасибо!
Не могли бы вы, пожалуйста, также исправить проблему, которая существует в стабильной версии?

5 лайков

Для этого было создано исправление:

Что касается пункта №2:

У меня не возникает никаких проблем при локальном запуске стабильной версии (2.4.1) с последними версиями плагинов discourse-assign и discourse-solved.

Могли бы вы предоставить информацию о том, как я могу воспроизвести проблемы, с которыми вы столкнулись?

4 лайка

При новой установке на стабильной версии с последней версией плагина solved в таблице web_hook_event_type не будут созданы ID, из-за чего тип вебхука не будет отображаться.

Это происходит потому, что код, отвечающий за заполнение ID, был удалён из плагина solved и ещё не добавлен в стабильную/бета-версию.

На ранее установленных сайтах, где использовалась более старая версия плагина solved, данные уже были заполнены, поэтому у них этой проблемы нет.

Таким образом, шаги для воспроизведения просты: создайте абсолютно новую установку на стабильной версии.

Чистая новая установка на 2.4.1 с плагином solved: вебхук недоступен.

Давайте выполним заполнение данных вручную, затем снова посмотрим на экран вебхуков — и он появится:

О, понятно, значит «broken» означает, что оно просто не отображается.

Это сделано намеренно. Это функция версии 2.5 и выше.

4 лайка

Хорошо, вы абсолютно правы, приношу извинения за неясность. Я перепутал «сломано» и «недоступно», и поскольку это новая функция, действительно ничего не сломано.

Хотя немного странно, что код инициализации для плагина перенесён в ядро. Я понимаю, что вы хотите зарезервировать ID, но мне кажется, было бы чище оставить инициализацию в плагине. Но это лишь моё личное мнение :wink:

3 лайка