如何建立一个松弛通道直接链接到GitLab问题和合并的要求?

时间:2019-02-03 10:42:59

标签: gitlab slack

是否可以通过任何方式设置Slack频道,例如键入#361链接发出预定回购的361或更一般地使用GitLab's special references

3 个答案:

答案 0 :(得分:1)

有一个GitLab Slack应用程序:
https://docs.gitlab.com/ee/user/project/integrations/gitlab_slack_application.html

功能有限,但您可以链接到您的问题。

其帮助命令的输出:

Available commands
- /gitlab [project name or alias] issue show <id>
- /gitlab [project name or alias] issue new <title> *`⇧ Shift`*+*`↵ Enter`* <description>
- /gitlab [project name or alias] issue search <your query>
- /gitlab [project name or alias] issue move <issue_id> (to)? <project_path>
- /gitlab [project name or alias] deploy <environment> to <target-environment>
- /gitlab [project name or alias] run <command> <arguments>

链接到问题很有效,您将直接在Slack中看到标题,受让人,里程碑,标签和权重。

答案 1 :(得分:1)

如果您的需求比默认的GitLab集成所提供的需求更为具体,则可以制作自己的Slack应用程序/ Bot。

有几种方法可以完成您要寻找的东西,最典型的解决方案是使用Thomas Kainrad提到的斜杠命令。

如果这不是您想要的,并且有必要在通道链接中键入#395到存储库中的#395,则您的机器人将需要使用Events API中的message event

请谨慎使用此事件-每当在您的应用程序有权访问的任何渠道中发布消息时,您都会收到Slack的请求。根据您应用程序的范围,其中还可能包含私人消息,因此请考虑可能引起的隐私和日志记录问题。

但是,使用此功能,您可以实现自己的目标。只需使用正则表达式检查每条消息的正确文本,然后您的机器人就可以在事件来源所在的Slack通道中查找和post到存储库的链接。

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

答案 2 :(得分:1)

这是一个相对简单但耗时的工作。所有资源均可用于创建服务器来完成您想要的事情。

使用gitlab api,以及您自己的服务器实现。之后,只需设置一个斜杠命令和一个松弛机器人,以使其与松弛的webhooks(也请参见输出)连接,并设置一个松弛机器人以将其发布到服务器并松弛。