Slack Notifications Service

Slack Notifications Service

Slack Notifications Service 允许您的 GitLab 项目将事件(例如问题创建)作为通知发送到您现有的 Slack 团队. 设置 Slack 通知需要同时更改 Slack 和 GitLab 的配置.

注意:您还可以使用 Slack 斜杠命令在 Slack 中控制 GitLab. 这是单独配置的Slack 斜杠命令 .

  1. 登录到 Slack 团队并 .
  2. 选择默认情况下将通知发送到的松弛通道. 单击添加传入的 WebHooks 集成按钮以添加配置.
  3. 复制Webhook URL ,我们将在以后的 GitLab 配置中使用它.
  1. Open your project’s page, and navigate to your project’s Integrations page at 设置>集成.
  2. 选择Slack Notifications集成进行配置.
  3. Click 启用整合.
  4. Trigger 中 ,选中每种类型的 GitLab 事件的复选框,以将其发送给 Slack 作为通知. 有关完整列表,请参阅 . 默认情况下,消息将发送到您在Slack 集成期间配置的通道.
  5. (可选)要将消息发送到其他渠道,多个渠道或作为直接消息:
    • 要将消息发送到频道,请输入 Slack 频道名称,以逗号分隔.
    • 要发送直接消息,请使用在用户的 Slack 个人资料中找到的会员 ID.注意:不支持用户名和私人频道.
  6. Webhook 中 ,提供您从步骤复制的Webhook URL.
  7. (可选)在Username 中 ,提供发送通知的 Slack 机器人的用户名.
  8. 要通知分支中选择框,选择要为其发送通知的分支类型.
  9. Click 测试设置并保存更改.

以下触发器可用于 Slack 通知:

  • 推送 :由推送到存储库触发.
  • 问题 :在创建,更新或关闭问题时触发.
  • 机密问题 :创建,更新或关闭机密问题时触发.
  • 合并请求 :在创建,更新或合并合并请求时触发.
  • 注意 :有人添加评论时触发.
  • 机密注释 :当有人添加机密注释时触发.
  • 标签推送 :将新标签推送到存储库时触发.
  • 管道 :管道状态更改时触发.
  • Wiki 页面 :在创建或更新 Wiki 页面时触发.
  • 部署 :在部署完成时触发.

如果您的 Slack 集成无法正常工作,请通过在Sidekiq 日志中搜索与 Slack 服务相关的错误来开始故障排除.

您可能会在 Sidekiq 日志中看到类似于以下内容的条目:

GitLab 与 Slack 通信或 GitLab 与自身通信可能是一个问题. 前者的可能性较小,因为 Slack 的安全证书希望始终受到信任. 我们可以使用下面的 rails 控制台脚本来确定要处理的内容.

如果 GitLab 不信任与 Slack 的连接,则 GitLab OpenSSL 信任存储不正确. 一些典型的原因:使用覆盖信任库,或不小心修改了默认的 CA 捆绑包 .