用例: 我为 NASA 的开放科学数据存储库 管理 12 个分析工作组 (AWG),在全球 60 多个国家/地区拥有约 1,700 名成员。每个 AWG 都有自己的 Discourse 小组(例如 @AIMLawg、@AnimalAWG、@HUMANawg 等,共 12 个,并且还在增加)。当我和我的团队需要向整个社区发送公告时,我们必须在每篇帖子中手动 @ 提及所有 12 个小组:这容易出错、乏味,而且很容易忘记其中一个。
我想要一个单一的 @AWGall 小组,它可以自动反映所有 12 个子小组的成员身份,这样一次 @ 提及就能覆盖所有人。
我尝试过的方法:
- 手动创建了一个 @AWGall 小组,并编写了一个 API 脚本来批量添加所有子小组成员——这可以作为一次性快照,但无法保持同步。每当有新成员加入这 12 个 AWG 中的任何一个(这种情况经常发生)时,@AWGall 就会过时。
- 搜索了原生的嵌套小组/群组之群组功能——它不存在。最接近的先前讨论是 2021 年的分层群组隶属关系(群组内的群组),该讨论确认当时没有计划实施此功能。
我请求的:
以下任何一种方法都可以解决问题:
- 选项 A — 嵌套群组: 允许一个群组将其他群组作为成员,从而实现成员身份的传递解析。当有人加入 @AIMLawg 时,他们会自动出现在 @AWGall 中。
- 选项 B — 自动同步触发器: 当用户被添加到或从群组中移除时,触发一个可配置的成员身份同步,将他们添加到/从指定的父群组中移除。
为什么这在我的案例之外也很重要:
任何拥有子社区(部门、队列、团队、年龄组、地区)的社区都会遇到这个障碍。当前的解决方法——手动维护一个单独的扁平化群组——随着成员身份的变化会立即失效。这是一个普遍的 Discourse 限制,而不是一个细微的边缘案例。
很乐意讨论实施的权衡。是否有现有的插件可以处理这种情况,或者是否有意愿将其作为原生功能构建?