# 在 Slack 中使用GitHub

了解如何在 Slack 中使用GitHub来改进协作并简化工作流。

Slack 的 GitHub 集成允许您将您的 GitHub 帐户连接到 Slack 中的 GitHub 应用。 连接后，可以使用斜杠命令与 GitHubSlack 中的团队交互、接收有关存储库活动的通知，并与团队直接协作。

## 将您的 GitHub 帐户连接到 Slack 中的 GitHub 应用

> \[!NOTE] 在连接帐户之前，Slack 工作区的管理员必须已安装该 GitHub 应用。 请参阅“[将 GitHub 与 Slack 集成](/zh/enterprise-server@3.22/integrations/how-tos/slack/integrate-github-with-slack)”。

1. 在 Slack 中，使用 GitHub 应用启动直接消息。
2. 私信将预填充欢迎消息和连接 GitHub 帐户的链接。 按照 Slack 屏幕和 GitHub 浏览器中的提示进行身份验证和授权连接。

GitHub帐户连接后，Slack 会显示可用的命令和功能列表。

## 使用斜线命令与GitHub在 Slack 中进行交互

若要使用斜杠命令，请键入 `/github`，然后在任一 Slack 通道或 GitHub 应用所在的直接消息的消息输入字段中输入要执行的命令。 若要邀请应用加入频道，请在频道中键入 `/invite @github` 。

| Command                                           | Description                              |
| ------------------------------------------------- | ---------------------------------------- |
| `/github help`                                    | 显示基本命令及其说明的列表。                           |
| `/github subscribe owner/repo`                    | 订阅此渠道以接收指定存储库的通知。                        |
| `/github unsubscribe owner/repo`                  | 取消通道对指定存储库通知的订阅。                         |
| `/github subscribe list`                          | 列出频道订阅的所有存储库。                            |
| `/github open owner/repo`                         | 在指定的存储库中打开问题。 系统将提示你提供问题的标题和说明。          |
| `/github close [issue link]`                      | 将指定的问题标记为已完成并关闭。                         |
| `/github close [issue link] reason:"not planned"` | 关闭指定的问题并给出原因。 将 `"not planned"` 替换为你的原因。 |
| `/github reopen [issue link]`                     | 重新打开指定的问题。                               |
| `/github signin`                                  | 重新启动“连接您的 GitHub 帐户”工作流。                 |
| `/github signout`                                 | 断开 GitHub 帐户与 Slack 用户的连接。               |

> \[!NOTE] 当你将渠道订阅到存储库时，该渠道将收到该存储库中有关拉取请求和问题的所有 `open`、`close`和`reopen` 事件的通知。 该通道还将直接接收任何 `push` 事件的通知，并将这些事件直接发送到存储库的默认分支。

## Slack 中的提及

在 Slack 中订阅存储库时，您将在涉及您的存储库事件通知中看到自己被提及。 例如，如果你被分配到某个问题，或在批注中提及，你将在 Slack 的通知中看到自己被提及。

提及功能需要你通过 Slack 中的 GitHub 应用登录 GitHub 帐户。 这使得GitHub能够将您的 Slack 身份映射到GitHub身份。 请参阅[如何在 Slack 中将您的GitHub帐户连接到GitHub应用](#connecting-your-github-account-to-the-github-app-in-slack)。

> \[!NOTE]
> 如果您在多个 Slack 工作区中使用 GitHub 应用，则提及仅会在您最近登录 GitHub 应用的工作区中生效。 如果你在其他工作区登录 GitHub 应用，提及功能将在之前的工作区失效。

以下是会提到你的情境：

* 将为你分配一个任务。
* 请求你对拉取请求进行审查。
* 你在拉取请求、问题说明、评论或讨论中被提及。
* 请求你对一项部署进行评审。
* 你会收到一条关于拉取审查请求的定时提醒。

您可以在 Slack 的“提及”视图中查看您 GitHub 的提及摘要。 有关详细信息，请参阅 Slack 文档中 [“活动”选项卡中的“会审通知](https://slack.com/help/articles/19693583638803-Triage-notifications-in-the-Activity-tab) ”。

## 线程会话

每个问题或拉取请求的通知都会在 Slack 中被分组到一个线程中。 父消息始终显示问题或拉取请求的最新状态，以及其他元数据，如标题、说明、分配者、审阅者、标签和检查。 线程处理有助于保持对话组织有序，从而更轻松地跟踪与特定问题或拉取请求相关的更新和讨论。 当问题或拉取请求的状态发生更改时，关联的答复将同时在线程和通道中发布，以便通道中的每个人都知道更新。

可以在各个渠道中为问题和拉取请求通知禁用线程功能。

1. 在要禁用线程的 Slack 通道中，键入 `/github settings`。
2. 在设置菜单中，在“禁用拉取请求和问题通知的线程处理”选项的右边，单击**禁用**。

你或通道的任何其他成员都可以按照相同的步骤并单击“设置”菜单中的“ **启用** ”，随时重新启用线程处理。

## 将评论和评价发布到 Slack 频道

默认情况下，注释和评论只会显示在其相关线程中。 如果希望渠道成员（而不仅仅是问题参与者）看到这些内容，可以使用以下命令选择进行广播：

* 对于评论广播，请使用 `/github subscribe owner/repo comments:"channel"`

* 若要审查广播，请使用 `/github subscribe owner/repo reviews:"channel"`

## 在 Slack 中展开 GitHub 活动链接

链接预览在 Slack 中共享指向 GitHub 活动的链接时提供额外的上下文信息。 Slack 中为以下 GitHub 活动显示链接预览：

* 拉取请求
* 问题
* 直接关联的注释
* 包含行号的代码 Blob
* 组织、存储库和用户

如果存在以下任一情况，则不会显示链接预览：

* 在 Slack 工作区中禁用链接预览。 请参阅 Slack 文档中的 [“共享”链接并设置预览首选项](https://slack.com/help/articles/204399343-Share-links-and-set-preview-preferences#turn-off-link-previews-for-specific-sites) 。
* 在过去 30 分钟内，频道中已共享同一链接。
* 在同一条消息中共享 3 个或多个链接。
* 存储库是专用的，共享链接的用户：
  * 尚未将其 GitHub 帐户连接到 Slack 中的 GitHub 应用。
  * 不要在出现提示时显示链接预览。
  * 该 GitHub 应用不在共享链接的通道中。 请参阅 [使用斜杠命令在 Slack 中与 GitHub 进行交互](#using-slash-commands-to-interact-with-github-in-slack)。

## 延伸阅读

* [在 Slack 中自定义GitHub通知](/zh/enterprise-server@3.22/integrations/how-tos/slack/customize-notifications) - 了解如何在 Slack 中自定义 GitHub 通知以满足你的需求。
* [GitHub Slack 集成教程](/zh/enterprise-server@3.22/integrations/tutorials/slack) - 通过示例和动手活动构建有关 Slack 集成的技能和知识 GitHub 。