通知邮件

  • Tier: 基础版, 专业版, 旗舰版
  • Offering: JihuLab.com, 私有化部署
History
    • 强制邮件格式引入于极狐GitLab 14.9,使用名为 enhanced_notify_css功能标志。默认禁用。
    • 强制邮件格式在极狐GitLab 14.9 上为 JihuLab.com 上启用。
    • 强制邮件格式在极狐GitLab 15.0 上为私有化部署上启用。
    • 产品营销电子邮件在极狐GitLab 16.6 中删除。

保持知晓极狐GitLab 中发生的事情,通过电子邮件通知。你可以接收关于议题、合并请求、史诗和设计中的活动更新。

对于极狐GitLab 管理员可以用来向用户发送消息的工具,请阅读极狐GitLab 的邮件

在极狐GitLab 17.2 及更高版本中,通知在每 24 小时内按项目或群组每用户进行速率限制

谁会收到通知#

当议题、合并请求或史诗启用了通知时,极狐GitLab 会通知你那里发生的操作。

你可能会因为以下原因收到通知:

极狐GitLab 不发送通知的情况:

  • 账户是项目机器人。
  • 账户是具有默认电子邮件地址的服务账户。
  • 账户被屏蔽(禁止)或停用。
  • 评论被编辑以包含用户提及
  • 管理员已屏蔽通知。

编辑通知设置#

收到太多通知可能会让人不知所措。你可以调整你接收的通知。例如,你可能希望收到特定项目中的所有活动通知。对于其他项目,你只希望在有人以名字提到你时收到通知。

这些通知设置仅适用于你。它们不会影响其他人收到的通知。

要编辑你的通知设置:

  1. 在左侧边栏中,选择你的头像。
  2. 选择 偏好设置
  3. 在左侧边栏中,选择 通知
  4. 编辑所需的全局、群组或项目通知设置。编辑的设置会自动保存。

通知范围#

你可以通过为每个项目和群组选择不同的通知级别来调整通知范围。

通知范围从最广泛到最具体的级别应用:

  • 如果你没有为活动发生的项目或群组选择通知级别,则你的全局或_默认_通知级别适用。
  • 你的群组设置会覆盖你的默认设置。
  • 你的项目设置会覆盖群组设置。

通知级别#

对于每个项目和群组,你可以选择以下级别之一:

级别描述
全局你的全局设置适用。
观察接收大部分活动的通知。
参与接收你参与的线程的通知。
被提及接收你在评论中被提及时的通知。
禁用不接收任何通知。
自定义接收选定事件和你参与的线程的通知。

全局通知设置#

你的全局通知设置是默认设置,除非你为项目或群组选择不同的值。

  • 通知邮件:接收通知的电子邮件地址。默认使用你的主电子邮件地址。
  • 全局通知级别:适用于所有通知的默认通知级别
  • 接收关于你自己活动的通知:选中此复选框以接收关于你自己活动的通知。默认不选中。

群组通知#

你可以为每个群组选择通知级别和电子邮件地址。

更改群组通知级别#

要为群组选择通知级别,请使用以下任一方法:

  1. 在左侧边栏中,选择你的头像。
  2. 选择 偏好设置
  3. 在左侧边栏中,选择 通知
  4. 群组 部分中找到该群组。
  5. 选择所需的通知级别

或者:

  1. 在左侧边栏中,选择 搜索或转到 并找到你的群组。
  2. 选择通知下拉列表,位于铃铛图标()旁边。
  3. 选择所需的通知级别

更改用于群组通知的电子邮件地址#

你可以选择一个电子邮件地址来接收你所属群组的通知。你可以使用群组通知,例如,如果你是自由职业者,并希望将关于客户项目的电子邮件保持分开。

  1. 在左侧边栏中,选择你的头像。
  2. 选择 偏好设置
  3. 在左侧边栏中,选择 通知
  4. 群组 部分中找到该群组。
  5. 选择所需的电子邮件地址。

更改项目通知级别#

为了帮助你保持最新状态,你可以为每个项目选择一个通知级别。

要为项目选择通知级别,请使用以下任一方法:

  1. 在左侧边栏中,选择你的头像。
  2. 选择 偏好设置
  3. 在左侧边栏中,选择 通知
  4. 项目 部分中找到该项目。
  5. 选择所需的通知级别

或者:

  1. 在左侧边栏中,选择 搜索或转到 并找到你的项目。
  2. 选择通知下拉列表,位于铃铛图标()旁边。
  3. 选择所需的通知级别

要了解如何在新版本可用时收到通知,请观看版本通知

通知事件#

用户会收到以下事件的通知:

事件接收者设置级别
新版本项目成员自定义通知。
项目迁移项目成员任何非禁用状态。
邮箱更改用户安全邮件,总是发送。
群组访问级别更改用户当用户群组访问级别更改时发送。
新邮箱地址添加用户安全邮件,发送到主邮箱地址。
新邮箱地址添加用户安全邮件,发送到新添加的邮箱地址。
新 SAML/SCIM 用户配置用户当用户通过 SAML/SCIM 配置时发送。
新 SSH 密钥添加用户安全邮件,总是发送。
用户创建用户用户创建时发送,除 OmniAuth(LDAP)外。
密码更改用户当用户更改自己的密码时,总是发送安全邮件。
管理员更改密码用户当管理员更改其他用户的密码时,总是发送安全邮件。
个人访问令牌即将到期用户安全邮件,总是发送。
个人访问令牌已创建用户安全邮件,总是发送。
个人访问令牌已过期用户安全邮件,总是发送。
个人访问令牌已撤销用户极狐GitLab 15.5 中引入。
群组访问令牌即将到期直接群组所有者极狐GitLab 16.4 中引入。
项目访问令牌即将到期直接项目所有者和维护者极狐GitLab 16.4 中引入。
项目访问级别更改用户当用户项目访问级别更改时发送。
SSH 密钥已过期用户安全邮件,总是发送。
双重身份验证禁用用户安全邮件,总是发送。
用户添加到群组用户当用户被添加到群组时发送。
用户添加到项目用户当用户被添加到项目时发送。
群组访问过期群组成员当用户的群组访问将在七天后过期时发送。极狐GitLab 16.3 中引入
项目访问过期项目成员当用户的项目访问将在七天后过期时发送。极狐GitLab 16.3 中引入
群组预定删除群组所有者当群组预定删除时发送。极狐GitLab 17.11 中引入
项目预定删除项目所有者当项目预定删除时发送。极狐GitLab 17.11 中引入

议题、合并请求和史诗上的通知#

你还会收到议题、合并请求和史诗上的事件通知。

谁会收到议题、合并请求和史诗上的通知#

在议题、合并请求和史诗中,对于大多数事件,通知发送给:

  • 参与者:
    • 作者和受托人。
    • 评论的作者。
    • 在标题或描述中通过用户名提及的任何人。
    • 如果他们的通知级别是“参与”或更高,则在评论中通过用户名提及的任何人。
  • 观察者:通知级别为“观察”的用户(有一些例外)。
  • 订阅者:任何手动订阅通知的人。
  • 自定义:通知级别为“自定义”的用户,开启了适合事件类型的通知。

为了尽量减少不需要任何操作的通知数量,合格的审批人不会收到他们项目中所有活动的通知。

要接收所有事件的通知,请将你的用户通知设置更改为自定义并选择所有选项。

不包含在观察级别中的事件#

如果你将通知级别设置为观察,你将收到_几乎所有_事件的通知,以下情况除外:

  • 有人推送到合并请求。
  • 议题在第二天到期。
  • 流水线成功。
  • 创建了你有资格批准的合并请求。

编辑议题、合并请求和史诗的通知设置#

要切换议题、合并请求或史诗上的通知:在右侧边栏,选择垂直省略号(

),然后打开或关闭通知切换。

移动通知#

  • Offering: 私有化部署
History
    • 引入于极狐GitLab 16.5,使用名为 notifications_todos_buttons功能标志。默认禁用。

此功能的可用性由功能标志控制。有关更多信息,请参阅历史记录。启用此功能标志会将通知和待办事项按钮移动到页面的右上角。

当你打开通知时,即使你没有参与讨论,你也会开始收到每次更新的通知。当你在史诗中打开通知时,你不会自动订阅链接到史诗的议题。

当你关闭通知时,你将停止接收更新的通知。关闭此切换只会取消订阅与此议题、合并请求或史诗相关的更新。了解如何选择退出极狐GitLab 的所有邮件

议题、合并请求和史诗上的通知事件#

以下表格列出了生成议题、合并请求和史诗通知的事件:

类型事件发送给
史诗关闭订阅者和参与者。
史诗新建在描述中通过用户名提及的任何人,通知级别为“提及”或更高。
史诗新评论参与者、观察者、订阅者和选择了该事件的自定义通知级别。通过用户名提及评论中的任何人,通知级别为“提及”或更高。
史诗重新打开订阅者和参与者。
议题关闭订阅者和参与者。
议题明天到期。通知在服务器的时区(对于 JihuLab.com,这是 UTC)于第二天有到期日的开放议题发送。参与者和选择了该事件的自定义通知级别。
议题里程碑更改订阅者和参与者。
议题里程碑移除订阅者和参与者。
议题新建在描述中通过用户名提及的任何人,通知级别为“提及”或更高。
议题新评论参与者、观察者、订阅者和选择了该事件的自定义通知级别。通过用户名提及评论中的任何人,通知级别为“提及”或更高。
议题标题或描述更改任何新的用户名提及。
议题重新分配参与者、观察者、订阅者、选择了该事件的自定义通知级别,以及旧受托人。
议题重新打开订阅者和参与者。
合并请求关闭订阅者和参与者。
合并请求冲突作者和任何设置合并请求为自动合并的用户。
合并请求标记为准备观察者和参与者。
合并请求已合并订阅者和参与者。
合并请求流水线成功时合并作者、参与者、观察者、订阅者和选择了该事件的自定义通知级别。自定义通知级别对作者、观察者和订阅者无效。
合并请求里程碑更改订阅者和参与者。
合并请求里程碑移除订阅者和参与者。
合并请求新建在描述中通过用户名提及的任何人,通知级别为“提及”或更高。
合并请求新评论参与者、观察者、订阅者和选择了该事件的自定义通知级别。通过用户名提及评论中的任何人,通知级别为“提及”或更高。
合并请求推送参与者和选择了该事件的自定义通知级别。
合并请求重新分配参与者、观察者、订阅者、选择了该事件的自定义通知级别,以及旧受托人。
合并请求请求审查参与者、观察者、订阅者、选择了该事件的自定义通知级别,以及旧审查员。
合并请求重新打开订阅者和参与者。
合并请求标题或描述更改任何新的用户名提及。
合并请求添加为审批人选择了该事件的自定义通知级别。极狐GitLab 16.7 中引入。
流水线失败流水线的作者。
流水线修复流水线的作者。默认启用。
流水线成功流水线的作者,自定义通知级别为成功流水线。如果流水线之前失败,则在失败后的第一个成功流水线发送“修复流水线”消息,然后在任何进一步成功的流水线发送“成功流水线”消息。

默认情况下,你不会收到自己创建的议题、合并请求或史诗的通知。要始终接收自己议题、合并请求等的通知,请开启关于你自己活动的通知

未知登录的通知#

History
    • 列出登录用户的完整名称和用户名引入于极狐GitLab 15.10。
    • 地理位置在极狐GitLab 17.5 中添加。

此功能默认启用极狐GitLab 私有化部署实例。管理员可以通过 UI 中的登录限制部分禁用此功能。该功能始终在 JihuLab.com 上启用。

当用户从以前未知的 IP 地址或设备成功登录时,极狐GitLab 会通过电子邮件通知用户。通过这种方式,极狐GitLab 主动提醒用户潜在的恶意或未经授权的登录。此通知电子邮件包括:

  • 主机名。
  • 用户的姓名和用户名。
  • IP 地址。
  • 地理位置。
  • 登录的日期和时间。

极狐GitLab 使用多种方法来识别已知登录。所有方法都必须失败,才能发送通知电子邮件。

  • 上次登录 IP:当前登录 IP 地址与上次登录 IP 地址进行检查。
  • 当前活动会话:如果用户有来自同一 IP 地址的现有活动会话。参见活动会话
  • Cookie:成功登录后,在浏览器中存储加密的 cookie。此 cookie 设置为在最后一次成功登录后 14 天后过期。

使用错误验证代码尝试登录的通知#

History
    • 引入于极狐GitLab 15.5。

极狐GitLab 会在检测到使用错误的双重身份验证 (2FA) 代码尝试登录你的帐户时发送电子邮件通知。这可以帮助你检测到恶意行为者获得了你的用户名和密码,并正在尝试暴力破解 2FA。

设计上的通知#

当有人评论设计时,会向参与者发送电子邮件通知。

参与者包括:

  • 设计的作者(如果不同的作者上传了设计的不同版本,则可能有多个人)。
  • 设计评论的作者。
  • 在设计评论中通过用户名提及的任何人。

群组或项目访问过期的通知#

History
    • 引入于极狐GitLab 16.3。

如果用户对群组或项目的访问将在七天后过期,极狐GitLab 会发送电子邮件通知。这提醒群组或项目成员在需要时延长访问期限。

选择退出所有极狐GitLab 邮件#

如果你不再希望接收任何电子邮件通知:

  1. 在左侧边栏中,选择你的头像。
  2. 选择 偏好设置
  3. 在左侧边栏中,选择 通知
  4. 将你的全局通知级别设置为禁用
  5. 清除 接收关于你自己活动的通知 复选框。
  6. 如果你属于任何群组或项目,请将它们的通知设置为全局禁用

在极狐GitLab 私有化部署实例中,即使这样做后,你的实例管理员仍然可以给你发送邮件

取消订阅通知邮件#

你可以按资源(例如特定议题)从极狐GitLab 取消订阅通知邮件。

每封来自极狐GitLab 的通知邮件都包含一个取消订阅链接。

要取消订阅:

  1. 在邮件中选择取消订阅链接。
  2. 如果你已在浏览器中登录极狐GitLab,你将立即取消订阅。
  3. 如果你未登录,则需要确认操作。

使用电子邮件客户端或其他软件#

当你查看来自极狐GitLab 的邮件时,电子邮件客户端可能会显示一个取消订阅按钮。要取消订阅,请选择此按钮。

来自极狐GitLab 的通知邮件包含特殊标头。这些标头允许支持的电子邮件客户端和其他软件自动取消用户订阅。以下是一个示例:

plaintext
List-Unsubscribe: <https://jihulab.com/-/sent_notifications/[REDACTED]/unsubscribe>,<mailto:incoming+[REDACTED]-unsubscribe@incoming.gitlab.com> List-Unsubscribe-Post: List-Unsubscribe=One-Click

List-Unsubscribe 标头有两个条目:

  • 用于软件发送 POST 请求的链接。此操作直接取消用户的资源订阅。向此链接发送 GET 请求会显示确认对话框,而不是取消订阅。
  • 用于软件发送取消订阅邮件的电子邮件地址。邮件内容被忽略。

电子邮件标头可用于过滤邮件#

通知邮件消息包括极狐GitLab 特定的标头。为了更好地管理你的通知,你可以根据这些标头的内容过滤通知邮件。

例如,你可以过滤来自特定项目的所有邮件,其中你正在被分配合并请求或议题。

以下表格列出了所有极狐GitLab 特定的电子邮件标头:

标头描述
List-Id项目的 RFC 2919 邮件列表标识符路径。你可以使用它通过过滤器进行邮件组织。
X-GitLab-(Resource)-ID通知资源的 ID。资源可以是 IssueMergeRequestCommit 或其他资源。
X-GitLab-(Resource)-State通知资源的状态。资源可以是 IssueMergeRequest。值可以是 openedclosedmergedlocked。极狐GitLab 16.4 中引入。
X-GitLab-ConfidentialIssue表示议题机密性的布尔值。极狐GitLab 16.0 中引入。
X-GitLab-Discussion-ID评论所属线程的 ID,通知邮件中的评论。
X-GitLab-Group-Id群组 ID。仅在史诗的通知邮件中出现。
X-GitLab-Group-Path群组路径。仅在史诗的通知邮件中出现。
X-GitLab-NotificationReason通知原因。查看可能的值
X-GitLab-Pipeline-Id流水线的 ID,通知邮件中的流水线。
X-GitLab-Project-Id项目的 ID。
X-GitLab-Project-Path项目的路径。
X-GitLab-Project通知所属项目的名称。
X-GitLab-Reply-Key支持邮件回复的唯一令牌。

X-GitLab-NotificationReason#

X-GitLab-NotificationReason 标头包含通知的原因。值为以下之一,按优先级排序:

  • own_activity
  • assigned
  • review_requested
  • mentioned
  • subscribed

通知的原因也包括在通知邮件的页脚中。例如,原因为 assigned 的邮件在页脚中有以下语句:

你收到这封邮件是因为你已被分配到 <configured GitLab hostname> 上的项目。

值班警报通知#

  • Tier: 专业版, 旗舰版
  • Offering: JihuLab.com, 极狐GitLab 私有化部署, 极狐GitLab Dedicated

值班警报通知邮件可以具有警报的状态之一:

  • alert_triggered
  • alert_acknowledged
  • alert_resolved
  • alert_ignored

事件升级通知#

  • Tier: 专业版, 旗舰版
  • Offering: JihuLab.com, 极狐GitLab 私有化部署, 极狐GitLab Dedicated

事件升级通知邮件可以具有事件的状态之一:

  • incident_triggered
  • incident_acknowledged
  • incident_resolved
  • incident_ignored

故障排除#

拉取通知的接收者列表#

如果你想拉取接收项目通知的接收者列表(主要用于故障排除自定义通知),请在 Rails 控制台中运行 sudo gitlab-rails c 并确保更新项目名称:

plaintext
project = Project.find_by_full_path '<project_name>' merge_request = project.merge_requests.find_by(iid: 1) current_user = User.first recipients = NotificationRecipients::BuildService.build_recipients(merge_request, current_user, action: "push_to"); recipients.count recipients.each { |notify| puts notify.user.username }

有关不存在的失败流水线的通知#

如果你收到有关失败流水线的通知(通过电子邮件或 Slack),但该流水线已不存在,请仔细检查是否有任何重复的极狐GitLab 实例可能触发了消息。

启用了电子邮件通知,但未收到#

如果你已在极狐GitLab 中启用电子邮件通知,但用户未按预期收到通知,请确保你的电子邮件提供商没有阻止来自极狐GitLab 实例的邮件。许多电子邮件提供商(如 Outlook)会阻止来自不太知名的私有化部署邮件服务器 IP 地址的邮件。要验证,请尝试直接从实例的 SMTP 服务器发送电子邮件。例如,来自 Sendmail 的测试邮件可能如下所示:

plaintext
# (echo subject: test; echo) | $(which sendmail) -v -Am -i <valid email address>

如果你的电子邮件提供商正在阻止该消息,你可能会收到类似以下的输出(取决于你的电子邮件提供商和 SMTP 服务器):

plaintext
Diagnostic-Code: smtp; 550 5.7.1 Unfortunately, messages from [xx.xx.xx.xx] weren't sent. For more information, please go to http://go.microsoft.com/fwlink/?LinkID=526655 (http://go.microsoft.com/fwlink/?LinkID=526655) AS(900)

通常,可以通过将你的 SMTP 服务器的 IP 地址添加到邮件提供商的允许列表来解决此问题。请查看你的邮件提供商的文档以获取说明。