将 Slack 与 github 集成,以获取有关推送到特定分支的通知



我正在寻找一种方法,当 github 存储库的特定分支中发生推送时,如何将消息发送到 Slack 频道。

我尝试使用下面提到的步骤来做到这一点 -

1. Installed github app in slack.
2. Added github to slack channel using /github.

之后,当我尝试连接到存储库时,github 要求进行身份验证。当我尝试这样做时,它会将我导航到 github.com 而不是公司的自定义 github 域。

请在这里帮助我。

您可以向存储库添加一个.github/workflows,以便使用 GitHub 操作(该操作也适用于 GitHub Enterprise,而不仅仅是 github.com(

例如:

  • pullreminders/slack-action

包装 Slack chat.postMessage API 方法以发布到频道、专用组和 DM 的操作。

此操作使用 Slack 机器人令牌发送消息,与用户令牌和传入 Webhook 相比,Slack 机器人令牌有两个主要优势:

  1. Slack 用户被禁用或删除时,机器人不会无意中被禁用。Slack在最近的公告中写到了这一点,并且
  2. 机器人提供了一系列强大的功能,可用于执行更多功能。

如果你有一个无人机持续集成系统,你可以使用 webhook 来触发发送 Slack 通知。这将适用于存储库.drone.yml文件:

- name: slack
image: plugins/slack
settings:
webhook: https://hooks.slack.com/services/...
channel: my_awesome_channel
username: Github Bot
when:
event: [ pull_request ]
branch: [ dev, master ]
template: |
New Pull Request Opened By: {{build.author}} ({{repo.name}} / {{build.branch}})
{{build.link}}

这假设无人机已启用,并且在 Github 中配置了 webhook。如果不是,可以通过无人机 Web 仪表板启用它,方法是导航到Repositories并单击存储库名称旁边的绿色开关。

对于公司的自定义github域,您需要使用slack app(Githhub Enterprise Server(而不是Github应用。 一旦你完成了在 slack 上安装的 Githhub 企业服务器应用程序,在配置下你将 se 有效负载 url。复制有效负载 URL 并转到 github 存储库设置添加 Webhooks 部分并在那里添加有效负载 URL,并保留内容类型应用程序/JSON

最新更新