Slack 的 GitHub 集成使您和您的团队可以在 Slack 频道中全面了解 GitHub 项目,您可以在其中产生想法、分类问题并与其他团队协作以推动项目向前发展。此集成是一个开源项目,由 GitHub 构建和维护。
此应用程序正式支持 GitHub.com(其中包括我们的 GitHub Enterprise 云托管产品)和 Slack.com。
GHES 与 Slack.com 的集成现已在 GHES 3.8 中正式发布。可在此处找到将 Slack 与 GHES 集成的详细步骤。
安装 Slack 的 GitHub 集成。登录 Slack 工作区后,系统将提示您授予应用程序访问权限:
安装应用程序后,并且使用/invite @github
将 GitHub 集成添加到相关渠道后,您将看到 GitHub 问题、拉取请求的链接预览,以及在工作区中呈现为富文本的代码。
安装应用程序后,您现在可以作为个人应用程序与 GitHub 应用程序交互或从通道访问。在工作区中安装应用程序后,GitHub 应用程序就会在所有公共渠道中启用。对于私人频道,您需要明确邀请/invite @github
此时,您的 Slack 和 GitHub 用户帐户现已链接。系统将提示您连接到 GitHub。这是访问该应用程序所需的主要步骤。或者,我们也可以通过运行/github signin
进行连接。
连接后,您将看到后续步骤和可用的功能列表。
/github
斜杠命令还接受subscribe
参数,您可以使用该参数订阅组织或存储库的活动/github subscribe <organization>/<repository>
。
如果您最初授予应用程序对“所有存储库”的访问权限,并且在安装 Slack 的 GitHub 集成后在 GitHub 上创建了一个新的私有存储库,则/github subscribe
命令将自动在您的新存储库上运行。如果您在存储库的子集上安装了该应用程序,该应用程序将提示您将其安装在新存储库上。
/github
斜线命令还支持unsubscribe
。要取消订阅存储库的通知,请使用/github unsubscribe <organization>/<repository>
通过授予应用程序访问权限,您将向您的 GitHub 和 Slack 帐户提供以下授权:
权限范围 | 为什么我们需要它 |
---|---|
访问您和应用程序之间的私人对话 | 向您发送消息并提供说明。 |
查看消息中 GitHub.com 的链接 | 呈现来自github.com 的丰富链接 |
将 GitHub.com 的链接预览添加到消息中 | 呈现到github.com 丰富链接 |
添加斜杠命令 | 将/github 斜线命令添加到 Slack 工作区 |
查看工作区或组织的名称、电子邮件域和图标 | 存储您设置的订阅 |
作为应用程序发布消息 | 通知您 GitHub、Slack 中发生的活动 |
权限范围 | 为什么我们需要它 |
---|---|
读取代码访问权限 | 在 Slack 中呈现代码片段 |
对操作、提交状态、检查、讨论、问题、元数据、拉取请求和存储库项目的读取访问权限 | 呈现 Slack 中共享链接的预览 |
对操作、问题、部署和拉取请求的写入权限 | 使用/github 命令并直接从消息中从 Slack 采取操作 |
在存储库上,应用程序会通知您订阅的存储库中有关拉取请求和问题的open
、 close
和re-open
事件。它还会通知任何直接push
送到存储库的默认分支的情况。
您可以通过订阅与您的 Slack 频道相关的活动以及取消订阅对您的项目帮助不大的活动来自定义通知。
使用/github
斜杠命令配置设置:
/github subscribe owner/repo [feature]
/github unsubscribe owner/repo [feature]
这些默认情况下处于启用状态,可以使用/github unsubscribe owner/repo [feature]
命令禁用:
issues
- 打开或关闭的问题pulls
- 新的或合并的拉取请求,以及标记为“准备审查”的草稿拉取请求commits
- 默认分支上的新提交(通常是main
)releases
- 已发布的版本deployments
- 部署状态更新。这些默认情况下处于禁用状态,可以使用/github subscribe owner/repo [feature]
命令启用:
workflows
- 操作工作流程运行通知reviews
- 拉取请求评论comments
- 对问题和拉取请求的新评论branches
- 创建或删除的分支commits:*
- 所有提交推送到任何分支+label:"your label"
- 根据标签过滤问题、拉取请求和评论。discussions
- 创建或回答的讨论您可以一次订阅或取消订阅多个设置。例如,要打开拉取请求审查和评论的活动:
/github subscribe owner/repo reviews comments
并将其重新关闭:
/github unsubscribe owner/repo reviews comments
分支过滤器允许过滤提交通知。默认情况下,当您订阅提交功能时,您将收到默认分支(即主分支)的通知。但是,您可以选择对特定分支、分支模式或所有分支进行过滤。
/github subscribe org/repo commits
以获取来自默认分支的提交通知。/github subscribe org/repo commits:*
用于所有分支的提交通知。/github subscribe org/repo commits:myBranch
来自特定分支的提交通知。/github subscribe org/repo commits:users/*
用于来自分支模式的提交通知。您可以使用“@github unsubscribe org/repo commits”取消订阅提交功能。
注意:以前,您可能使用commits:all
来表示所有分支。 “all”不再是保留关键字。展望未来,您需要使用“*”来表示所有分支。如果您之前已经配置了“commits:all”,请不要担心,它将继续工作,直到您更新提交配置。
标签过滤器允许根据允许的所需标签列表过滤传入事件。
这是受必需标签过滤器影响的事件类型的概述。
事件 | 已过滤 |
---|---|
拉 | ✅ 是的 |
评论(PR 和问题) | ✅ 是的 |
问题 | ✅ 是的 |
审查 | ✅ 是的 |
提交/推送 | 不 |
分支 | 不 |
使用以下命令创建过滤器:
/github subscribe owner/repo +label:"priority:HIGH"
这将创建一个值为priority:HIGH
的必需标签过滤器。支持过滤器的传入事件将被丢弃,除非它们具有该标签。
要更新现有过滤器,只需输入一个新过滤器,旧过滤器将被更新。目前,我们仅支持拥有一个过滤器。将来可能会支持多个过滤器。
/github subscribe owner/repo +label:"teams/designers"
现在现有的过滤器priority:HIGH
已被teams/designers
取代。
可通过取消unsubscribe
删除过滤器
/github unsubscribe owner/repo +label:teams/designers
这会删除teams/designers
过滤器。
要查看当前活动的过滤器,请使用
/github subscribe list features
标签中包含某些特殊字符是很常见的。因此,我们为标签过滤器添加了对最常见特殊字符的支持。这里有几个例子:
label:"priority:HIGH"
label:"teams/designers"
label:"DO NOT MERGE"
label:"very important"
label:":construction: WIP"
大多数标签都可以无缝工作,这包括 slack 和 github 开箱即用提供的所有表情符号。但是,在以下罕见情况下,您可能会遇到困难:
:foo:
多字节字符,
被保留您可以使用“工作流程”功能从您的频道或个人应用程序订阅 GitHub Actions 工作流程运行通知。
获取有关每个工作流运行通知的通知可能会很吵。因此,我们为您提供根据您的要求过滤通知的功能。您可以根据名称、事件、参与者和/或分支过滤操作工作流通知。您可以按如下方式过滤通知。
/github subscribe owner/repo workflows:{name:"your workflow name" event:"workflow event" branch:"branch name" actor:"actor name"}
您可以将每个事件的多个条目作为逗号分隔列表传递,如下例所示: /github subscribe org/repo workflows:{event:"pull_request","push" branch:"main","dev" actor:"ashokirla"}
默认情况下,当您配置工作流通知而不传递任何过滤器时,它会配置为通过针对默认分支的拉取请求触发的工作流。您可以传递一项或多项条目。
您只需运行以下命令即可取消订阅工作流程通知: /github unsubscribe org/repo workflows
要接收上述通知,您需要授予通过 Slack 中的 GitHub 应用程序接收操作事件的访问权限。当您第一次尝试为您的组织订阅workflows
功能时,系统会提示您这样做。
我们支持为您的部署提供单独的通知。这些部署可以通过操作进行,也可以使用部署 API 从外部源进行。
您可以通过运行以下命令来启用/禁用此功能:
/github subscribe/unsubscribe org/repo deployments
注意:如果您使用 GitHub 操作并希望跟踪环境部署,我们建议您使用新的workflows
功能,因为它显示完整情况并让您能够就地批准部署。
当您订阅 Slack 中的存储库时,您现在会在被推荐并需要您关注的通知中看到您自己。
当您收到有关问题、PR 和部署的通知时,在以下情况下将会提及您。
最棒的是 - 您现在可以看到 GitHub 通知的摘要,其中您作为 Slack 中“提及和反应”部分的一部分被提及。
仅当您在 Slack 工作区中登录 GitHub 应用程序(使用/github signin
斜杠命令)时,提及才会起作用。当您使用 GitHub ID 登录 GitHub 应用程序时,我们会将其与您的 Slack ID 进行映射,并在任何 GitHub 通知中提及您时在 Slack 中对您进行 ping 操作。
注意:如果您有多个使用 GitHub 应用程序的 Slack 工作区,则提及仅在您最近登录 GitHub 应用程序的工作区中有效。
任何问题和 PR 的通知都分组在家长卡下作为回复。父卡始终显示问题/PR 的最新状态以及其他元数据,如标题、描述、受让人、审阅者、标签和支票。线程提供上下文并有助于改善渠道中的协作。
这将减少通道中的噪声。我们的提及功能可确保只有参与对话线程的人员才会收到通知。只有父卡片会发布到频道,其余通知将作为回复添加到线程中。但是,诸如关闭/重新打开问题之类的状态更改活动会作为回复添加到线程中,并且也会发布到频道中,因为该组可能对此感兴趣。
如果您订阅了评论和评论通知,并且您还希望频道成员看到它们,而不仅仅是问题参与者,您可以通过运行来选择加入
/github subscribe org/repo comments:"channel"
和
/github subscribe org/repo reviews:"channel"
注意:默认情况下,评论和评论只会显示在线程中。并且您需要显式运行上述命令以确保评论也开始流入频道。
如果您是评论中提到的问题/问题的参与者或添加为受托人/审阅者,我们的提及功能可确保您在 Slack 的线程部分中收到通知。您无需前往需要您关注的问题/PR 的频道。您可以专注于需要您的地方,我们的线程功能可确保您获得全面的了解,并可以直接从那里采取行动。这是一个非常强大的功能,可确保您不会错过任何需要您注意的问题/问题。
但是,如果您绝对认为不需要在线程中查看问题/PR 更新并认为这是噪音,我们可以建议一个快速解决方法,以便不再对您的线程进行 ping 或条目。我们的 GitHub 应用程序仅在您最近登录 GitHub 的 Slack 工作区中提及您。您可以转到最少使用的 Slack 工作区或个人 Slack 工作区,并从那里使用我们的 GitHub 应用程序登录 GitHub。然后,您将不会被 ping 到或看到其他主工作区中线程的更新。
如果您不需要线程功能或尚未准备好适应新模型,我们希望为您提供灵活性。您可以在频道中禁用/启用问题和拉取请求通知的线程。您可以进入不需要线程的通道并运行以下命令。 /github settings
您将看到一个禁用/启用该通道线程的选项。属于该频道的任何成员都可以执行此操作。
Slack 对话通常会带来决策和可行的结论。现在,可以更轻松地从 Slack 开始后续步骤。
您不再需要切换或重定向到 GitHub 来对问题执行任何操作。您可以真正从您的协作位置(即 Slack)创建和管理问题。
现在,您只需在协作的地方单击一下即可创建问题。在任何频道/个人应用程序/群组或直接聊天中,您现在可以单击消息右上角的三个点 (...),然后从列表中选择“创建问题 GitHub”。这将启动创建问题对话。
或者,您可以通过其他两种方式从 Slack 创建问题。
/github open
来启动创建问题流程。 注意:您需要登录并拥有对存储库的必要访问权限才能执行任何操作。
您还可以直接从聊天中管理问题的生命周期。当您订阅存储库并收到问题通知或从 Slack 创建新问题时,您现在将看到一张问题卡,其中包含号召性用语按钮评论、编辑、关闭/重新打开。您可以直接从聊天中执行这些操作。
注意:当您从 Slack 对问题卡执行操作时,即使您没有通过订阅订阅该活动,响应也会添加为对线程的回复。但是,如果您订阅,您还将收到 Slack 之外发生的活动的通知。
当用户发布指向问题和拉取请求、直接链接的评论、带有行号的代码blob以及 Slack 中的组织、存储库和用户的GitHub 链接时,将显示该链接的预览。
如果出现以下情况,将不会显示链接预览:
github.com
的链接预览/invite @github
进行修复预定提醒用于确保用户专注于需要他们注意的最重要的审阅请求。拉取请求的计划提醒将在 Slack 中向您发送一条消息,其中包含需要您在指定时间审核的未决拉取请求。例如,您可以设置计划提醒,以便每天早上 10 点在 Slack 中向您发送一条消息,其中包含需要由您或您的团队之一审核的拉取请求。
您可以为您、您的团队和您的组织配置计划提醒(个人提醒)。
个人计划提醒配置为 Slack 中 GitHub 个人应用程序的一部分。您可以为您所属组织中的拉取请求的个人或团队级别审核请求设置计划提醒。作为个人提醒的一部分,您还可以为拉取请求配置实时警报。您可以在这里找到更多详细信息。
您可以为待处理的拉取请求配置计划提醒,作为 Slack 渠道的一部分,以便您的团队可以掌控您的工作。对于给定的 Slack 频道,您可以为您的组织或团队配置计划提醒。有关配置计划提醒的更多详细信息,您应该访问组织级别提醒和团队级别提醒。
如果您使用 Slack Enterprise Grid,并且组织中有多个需要使用 GitHub 的 Slack 工作区,则可以在 Slack Enterprise Grid 上安装和管理 GitHub 应用程序。 Slack Enterprise 网格中的组织所有者和组织管理员可以:
管理来自工作区成员的 GitHub 应用程序安装请求。
默认情况下,让 GitHub 应用程序在所有未来工作区中可用。
只有企业网格组织管理员和组织所有者才能在网格级别安装和管理 GitHub 应用程序。
您可以通过单击此处并选择要安装的企业网格组织来在组织级别安装 GitHub 应用程序。
我们宣布 GHES 3.8 与 Slack 的 GHES 集成正式发布。
通过此集成,您现在可以订阅 GHES 实例中的存储库,并获取有关 Slack 中的问题、PR、提交和部署的实时更新。您还可以直接从 Slack 执行评论、打开/关闭问题以及批准部署等操作。
从 GHES 3.8 开始,我们将提供与您的 GHES 服务器捆绑在一起的专用 ChatOps 服务。您可以选择与 Slack 工作区集成。通过我们的 GHES 集成,您将拥有
完全安全且可扩展的体验:您的所有订阅信息和任何其他元数据都保留在您的 GHES 设置中。因此,您不必担心数据流向任何外部服务。
GHES 和 Slack 之间的双向连接:我们的 GHES 集成不仅仅是通知服务。它还将使您能够直接从聊天中执行操作。因此,这是确保您的 GHES 实例可从 Slack 访问的唯一先决条件。启用 Socket 模式后,仅需要从 Slack 进行入站访问。
您在应用程序商店中看到的现有 GitHub 应用程序只能用于 GHEC(托管 GitHub)集成。要将 GHES 实例与 Slack 集成,您需要配置私有 GHES 应用程序。以下是与 GHES 集成的步骤。
<instancename>/_slack/
或slack.<instancename>
以在工作区上安装应用程序。目前不支持代理。
如果您有任何问题或疑虑,请通过在此处记录问题来与我们联系。或者请填写 GitHub 的支持表格,您的请求将被发送至 GitHub 的正确团队。
该存储库不接受任何代码贡献。当前为 GitHub 运行的代码和 Slack 集成的代码与此存储库中存在的代码有很大差异,因为它包含在 GitHub 基础设施中运行服务所需的特定代码,并且目前无法开源。我们将继续使用此存储库中的问题来获取客户的反馈。 |
该项目可根据 MIT 许可证条款作为开源项目使用。
使用 GitHub 徽标时,请务必遵循 GitHub 徽标指南。