RGJ
(Richard - Communiteq)
1
在 此(非常棒)的变更中,为 solved 插件添加了 webhook,其中 关于 webhook 事件类型的部分功能 被移入了核心代码。
然而,这带来了一些不必要的副作用。
- 在未安装 solved 或 assign 插件的实例上,事件类型会显示出来,但缺少翻译,并且(当然)这些事件实际上不可用,尽管它们被显示出来了。
- 由于缺少 种子数据,solved 和 assign 插件目前在新的稳定版和测试版安装中处于 损坏 状态。
我最初的想法是请你将种子数据反向移植到稳定版以修复问题 #2,但由于还存在另一个 bug(#1),也许更好的做法是将种子代码保留在插件本身,而仅在核心代码中 预留 ID。
长话短说,我认为将以下代码移回 solved 和 assign 插件会更好:
WebHookEventType.seed do |b|
b.id = WebHookEventType::SOLVED
b.name = "solved"
end
8 个赞
blake
(Blake Erickson)
2
感谢您提出这个问题。我将研究一下,确保如果插件未安装,它们不会显示在核心中。
7 个赞
RGJ
(Richard - Communiteq)
4
太好了,谢谢!
能否请您也解决一下稳定版同样存在损坏的问题?
5 个赞
blake
(Blake Erickson)
5
针对此问题已创建修复方案:
不过关于 #2:
我在本地运行稳定版(2.4.1)并使用最新版本的 discourse-assign 和 discourse-solved 插件时,并未发现任何问题。
能否提供一些信息,说明如何复现您遇到的问题?
4 个赞
RGJ
(Richard - Communiteq)
6
在稳定版上全新安装并启用最新版本的 solved 插件时,web_hook_event_type 表中将缺少相关 ID,导致 webhook 类型无法显示。
出现此问题的原因是:solved 插件中用于初始化这些 ID 的代码已被移除,而该功能尚未包含在稳定版或测试版中。
之前已安装并使用过旧版 solved 插件的网站,由于已包含初始化数据,因此不会遇到此问题。
因此,复现步骤非常简单:在稳定版上创建一个全新的安装。
在 2.4.1 版本上干净的全新安装并启用 solved 插件:无法使用 webhook。
现在让我们手动执行数据初始化,然后再次查看 webhook 界面,问题将得到解决:
blake
(Blake Erickson)
7
好的,原来“失效”的意思是它根本不显示。
这是有意为之。该功能仅在 2.5 及以上版本中提供。
4 个赞
RGJ
(Richard - Communiteq)
8
好的,您完全正确,我为之前的表述不清表示歉意。我混淆了“损坏”和“不可用”这两个概念,而由于这是一个新功能,确实没有任何损坏。
不过,将插件的初始化代码移到核心部分确实感觉有些奇怪。我理解您希望保留这些 ID,但我觉得将初始化逻辑保留在插件中会更加清晰。但这只是我个人的看法 
3 个赞