{"meta":{"title":"在 Slack 中自定义GitHub通知","intro":"了解如何在 Slack 中自定义GitHub通知。","product":"集成","breadcrumbs":[{"href":"/zh/integrations","title":"集成"},{"href":"/zh/integrations/how-tos","title":"How-tos"},{"href":"/zh/integrations/how-tos/slack","title":"Slack"},{"href":"/zh/integrations/how-tos/slack/customize-notifications","title":"自定义通知"}],"documentType":"article"},"body":"# 在 Slack 中自定义GitHub通知\n\n了解如何在 Slack 中自定义GitHub通知。\n\n可以自定义通知，方法是订阅与 Slack 频道相关的活动，并取消订阅对项目帮助不大的活动。\n\n### 通知默认启用\n\n默认情况下启用以下通知，但你可以使用 `/github unsubscribe OWNER/REPO [EVENT]` 命令禁用其中任何通知。\n\n| 事件            | Description                  |\n| ------------- | ---------------------------- |\n| `issues`      | 打开、关闭或重新打开的问题。               |\n| `pulls`       | 新的或合并的拉取请求，以及标记为可供审核的草稿拉取请求。 |\n| `commits`     | 默认分支上的新提交。                   |\n| `releases`    | 已发布的版本。                      |\n| `deployments` | 部署状态更新。                      |\n\n### 通知默认情况下已禁用\n\n默认情况下禁用以下通知，但可以使用 `/github subscribe OWNER/REPO [EVENT]` 命令启用其中任何通知。\n\n| 事件                    | Description      |\n| --------------------- | ---------------- |\n| `reviews`             | 拉取请求评审。          |\n| `workflows`           | Actions 工作流运行。   |\n| `branches`            | 创建或删除分支。         |\n| `comments`            | 对问题和拉取请求的新评论。    |\n| `commits`             | 所有提交到任何分支。       |\n| `discussions`         | 创建或有回应的讨论。       |\n| `+label:\"YOUR-LABEL\"` | 基于标签的问题、拉取请求和评论。 |\n\n您可以同时订阅或取消订阅多个设置项。 例如：\n\n* 若要为拉取请求评审和批注启用活动，请使用 `/github subscribe OWNER/REPO reviews comments`。\n* 若要关闭问题和拉取请求的活动，请使用 `/github unsubscribe OWNER/REPO issues pulls`。\n\n## 筛选通知\n\n可以使用分支和标签筛选器进一步自定义通知。 分支筛选器允许基于分支名称筛选提交通知，而标签筛选器允许根据应用于它们的标签筛选问题和拉取请求通知。\n\n### 提交通知的分支筛选器\n\n通过分支筛选器，可以根据分支名称筛选提交通知。 默认情况下，订阅 `commits` 事件时，你将收到默认分支的通知。 但是，可以选择针对特定分支或分支模式或所有分支进行筛选。\n\n| 示例配置                                             | Description                  |\n| ------------------------------------------------ | ---------------------------- |\n| `/github subscribe OWNER/REPO commits`           | 接收默认分支的提交通知。                 |\n| `/github subscribe OWNER/REPO commits:main`      | 仅接收 `main` 分支的提交通知。          |\n| `/github subscribe OWNER/REPO commits:feature/*` | 接收所有以 `feature/` 开头的分支的提交通知。 |\n| `/github subscribe OWNER/REPO commits:*`         | 接收所有分支的提交通知。                 |\n\n> \\[!NOTE] 你可能以前曾使用 `commits:all` 筛选器来接收所有分支的提交通知。 此筛选器为 关闭. 若要接收所有分支的提交通知，请改用 `commits:*` 筛选器。 如果之前已设置 `commits:all` 筛选器，它将继续工作，直到更新配置以使用 `commits:*` 筛选器。\n\n### 问题通知和拉取请求通知的标签筛选器\n\n标签筛选器允许根据应用于问题和拉取请求的标签筛选通知。 设置标签筛选器时，仅发送包含指定标签的事件通知。 有关标签的详细信息，请参阅 [管理标签](/zh/issues/using-labels-and-milestones-to-track-work/managing-labels) 和 [筛选和搜索议题以及拉取请求](/zh/issues/tracking-your-work-with-issues/using-issues/filtering-and-searching-issues-and-pull-requests)。\n\n目前，每个存储库只能有一个所需的标签筛选器。 下表显示了哪些事件类型受标签筛选器的影响。\n\n| 事件类型    | 按标签筛选                                                                                                                                                                                                                                                                                                                                                                                                                              |\n| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| 拉取请求    | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Included\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg>                                                                                                            |\n| 问题      | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Included\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg>                                                                                                            |\n| 注释      | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Included\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg>                                                                                                            |\n| Reviews | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Included\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg>                                                                                                            |\n| 提交/推送   | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"Not included\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> |\n| 分支      | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"Not included\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> |\n\n#### 创建标签筛选器\n\n若要创建标签筛选器，请使用以下命令格式：\n\n```text copy\n/github subscribe [OWNER/REPO] +label:\"YOUR-LABEL\"\n```\n\n这会使用值 `YOUR-LABEL`创建必需标签筛选器。 除非具有该标签，否则支持筛选器的传入事件将被丢弃。\n\n#### 更新标签筛选器\n\n可以通过指定新的标签值来更新现有标签筛选器：\n\n```text copy\n/github subscribe [OWNER/REPO] +label:\"NEW-LABEL\"\n```\n\n这将将“YOUR-LABEL”筛选器替换为“NEW-LABEL”筛选器。\n\n#### 删除标签筛选器\n\n可以使用取消订阅命令和 `+label` 选项删除现有标签筛选器：\n\n```text copy\n/github unsubscribe [OWNER/REPO] +label:\"NEW-LABEL\"\n```\n\n这将删除“NEW-LABEL”筛选器，通道将接收订阅事件的所有通知，而无需任何标签筛选。\n\n#### 查看活动标签筛选器\n\n若要查看通道的当前活动标签筛选器，请使用以下命令：\n\n```text copy\n/github subscribe list features\n```\n\n#### 有效筛选器\n\nSlack 中的 GitHub 应用支持标签筛选器中最常见的特殊字符，包括 Slack 和 GitHub 标准提供的所有表情符号。 很少遇到包含不支持的特殊字符的标签。 例如，未编码为 `:foo:`任何多字节字符，或者使用该字符的 `,` 标签可能无法按预期工作。\n\n## 操作工作流通知\n\n你可以在频道或个人应用中使用“workflows”功能，按 GitHub Actions 的格式订阅 `/github subscribe OWNER/REPO workflows` 工作流运行通知。\n\n订阅“工作流”时，可以使用以下功能：\n\n* 触发新的工作流运行时，将收到通知。\n\n* 可以在线程中以回复的形式跟踪批准通知，也可以直接从频道/个人应用批准通知。\n\n* 工作流完成后，你将在线程中收到一个更新作为回复，以便你了解有关工作流运行的上下文和历史记录。\n\n* 如果某些作失败，可以选择就地重新运行工作流，还可以根据需要启用调试日志。\n\n> \\[!NOTE] 2025-03-10（GHES 版本 3.17）之后，将不再收到有关单个工作流作业进度的通知。 有关更多详细信息， [GitHub 请参阅更改日志](https://github.blog/changelog/2025-02-03-deprecation-of-real-time-github-actions-workflow-job-events-in-slack-and-microsoft-teams-apps/) 。\n\n### 工作流通知筛选器\n\n可以使用以下选项筛选工作流通知：\n\n| 过滤器      | Description                                                |\n| -------- | ---------------------------------------------------------- |\n| `name`   | 按工作流的名称进行筛选。                                               |\n| `actor`  | 按触发工作流的用户进行筛选。                                             |\n| `branch` | 按运行工作流的分支进行筛选。 在包含`pull_request`事件的情况下，分支将是创建拉取请求所针对的目标分支。 |\n| `event`  | 按触发工作流的事件（例如推送、pull\\_request）进行筛选。                         |\n\n可以使用以下格式配置工作流通知筛选器：\n\n```text copy\n/github subscribe OWNER/REPO workflows:{name:\"YOUR-WORKFLOW-NAME\" event:\"WORKFLOW-EVENT\" branch:\"BRANCH-NAME\" actor:\"USERNAME\"}\n```\n\n还可以为每个筛选器传递多个值，用逗号分隔。 例如：\n\n```text copy\n/github subscribe OWNER/REPO workflows:{name:\"YOUR-WORKFLOW-NAME\",\"ANOTHER-WORKFLOW-NAME\" event:\"WORKFLOW-EVENT\",\"ANOTHER-WORKFLOW-EVENT\" branch:\"BRANCH-NAME\",\"ANOTHER-BRANCH-NAME\" actor:\"USERNAME\",\"ANOTHER-USERNAME\"}\n```\n\n默认情况下，当你在不通过任何筛选器的情况下配置工作流通知时，它被配置为通过针对默认分支的拉取请求触发的工作流。 可以传递一个或多个条目。\n\n可以使用以下命令取消订阅工作流通知：`/github unsubscribe OWNER/REPO workflows`。\n\n> \\[!NOTE] 若要在 Slack 中接收 GitHub Actions 通知，应用 GitHub 需要其他权限。 首次尝试订阅工作流时，系统会提示你授予这些权限。\n\n## 部署通知\n\n还可以配置单独的部署通知。 这些部署既可以从 GitHub Actions 进行，也可以使用部署 API 从外部源进行。 请参阅“[适用于部署的 REST API 终结点](/zh/rest/deployments/deployments?apiVersion=2022-11-28)”。\n\n可以使用以下命令订阅或取消订阅部署通知。 `/github subscribe/unsubscribe OWNER/REPO deployments`\n\n> \\[!NOTE] 如果您正在使用 GitHub Actions，并且希望跟踪部署到各个环境的情况，建议使用 `workflows` 功能，因为它能提供更完整的视图，并让您可以直接在 Slack 中批准部署。"}