自定义 Github 拉取请求的松弛通知

Koh*_*ini 18 github pull-request slack github-actions

我有一个用例,其中每次针对开发分支提出拉取请求时,都需要向 slack 通道发送一条通知,其中包含 PR 链接以及可能有关哪个用户打开它的信息。

我很困惑该走哪条路

  1. 发布到 Slack 的 Github 操作
  2. slack 的 Github 应用程序(https://github.com/integrations/slack#configuration

在浏览完https://github.com/integrations/slack#configuration后,我看到了仅订阅拉取请求的选项/github subscribe org/repo pulls,但这不允许自定义(例如,仅通知 PR 开发,而不是每个 PR)

Github actions 有方法指定仅在为开发提出拉取请求时运行,但由于它是特定于存储库的,我必须将工作流文件推送到 100 多个存储库

当 PR 被提升(未合并)到特定分支并可自定义(例如添加打开 PR 的用户信息)时,是否有更好的解决方案/自动化发布到 slack?

jes*_*ing 0

您可以在 GitHub 中创建一个 Webhook 并将其指向Microsoft 的 Power AutomateIFTTT或类似工具。然后,您转换有效负载并将其转发到 slack 的 API 端点。我过去曾转发到 Azure Function,以允许我使用所选的编程语言(节点、C#、PowerShell、Python,凡是您能想到的语言)来转发事件。

这使您可以完全控制消息内容,并允许您在转发消息时对存储库、分支或其他方式进行任何过滤。

但是,您必须在选择用作转发器的工具中自行进行一些配置。

还有一些商业解决方案可以提供这种类型的集成。Axolo 提供了这样的功能。

在某些限制下,您可以使用所需工作流程一次性向所有存储库注册工作流程。这仅适用于 PR 触发器(这似乎适合您的要求)并且仅适用于默认分支(这可能对您来说足够了)。

通过可调用工作流程复合操作,您可以最大限度地减少必须复制到所有存储库的工作流程量,但仍可以保留对每个单独存储库中所需的确切触发器的控制。