首页 > 解决方案 > 如何设置 Slack 频道以直接链接到 GitLab 问题和合并请求?

问题描述

有什么方法可以设置一个 Slack 频道,以便输入例如#361指向预定义仓库的第 361 期的链接,或者更普遍地使用GitLab 的特殊参考

标签: gitlabslack

解决方案


如果您的需求比默认 GitLab 集成提供的更具体,您可以制作自己的 Slack App/Bot。

有几种方法可以完成您正在寻找的内容,最典型的解决方案是 Thomas Kainrad 提到的斜杠命令。

如果这不是您想要的,并且只需在频道中键入 #395 即可链接到您的存储库中的 #395,您的机器人将需要使用来自事件 API的消息事件。

应谨慎使用此事件 - 每次在您的应用程序可以访问的任何渠道中发布消息时,您都会收到来自 Slack 的请求。这可能还包括私人消息,具体取决于您的应用程序的范围,因此请考虑这可能引发的隐私和日志记录问题。

但是,使用它,您将能够实现您的目标。只需使用一些正则表达式检查每条消息的正确文本,然后您的机器人就可以在事件来自的 Slack 频道中查找并发布指向 repo 的链接。

如果您有多个存储库并且它们与特定通道相关联,您可以添加一个斜杠命令将通道关联到一个存储库,然后将该信息存储在数据库中。然后,当您收到消息事件时,使用消息来自的通道的 ID 从数据库中读取。


推荐阅读