通知邮件
- 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 不发送通知的情况:
- 账户是项目机器人。
- 账户是具有默认电子邮件地址的服务账户。
- 账户被屏蔽(禁止)或停用。
- 评论被编辑以包含用户提及。
- 管理员已屏蔽通知。
编辑通知设置
收到太多通知可能会让人不知所措。你可以调整你接收的通知。例如,你可能希望收到特定项目中的所有活动通知。对于其他项目,你只希望在有人以名字提到你时收到通知。
这些通知设置仅适用于你。它们不会影响其他人收到的通知。
要编辑你的通知设置:
- 在左侧边栏中,选择你的头像。
- 选择 偏好设置。
- 在左侧边栏中,选择 通知。
- 编辑所需的全局、群组或项目通知设置。编辑的设置会自动保存。
通知范围
你可以通过为每个项目和群组选择不同的通知级别来调整通知范围。
通知范围从最广泛到最具体的级别应用:
- 如果你没有为活动发生的项目或群组选择通知级别,则你的全局或_默认_通知级别适用。
- 你的群组设置会覆盖你的默认设置。
- 你的项目设置会覆盖群组设置。
通知级别
对于每个项目和群组,你可以选择以下级别之一:
全局通知设置
你的全局通知设置是默认设置,除非你为项目或群组选择不同的值。
- 通知邮件:接收通知的电子邮件地址。默认使用你的主电子邮件地址。
- 全局通知级别:适用于所有通知的默认通知级别。
- 接收关于你自己活动的通知:选中此复选框以接收关于你自己活动的通知。默认不选中。
群组通知
你可以为每个群组选择通知级别和电子邮件地址。
更改群组通知级别
要为群组选择通知级别,请使用以下任一方法:
- 在左侧边栏中,选择你的头像。
- 选择 偏好设置。
- 在左侧边栏中,选择 通知。
- 在 群组 部分中找到该群组。
- 选择所需的通知级别。
或者:
- 在左侧边栏中,选择 搜索或转到 并找到你的群组。
- 选择通知下拉列表,位于铃铛图标()旁边。
- 选择所需的通知级别。
更改用于群组通知的电子邮件地址
你可以选择一个电子邮件地址来接收你所属群组的通知。你可以使用群组通知,例如,如果你是自由职业者,并希望将关于客户项目的电子邮件保持分开。
- 在左侧边栏中,选择你的头像。
- 选择 偏好设置。
- 在左侧边栏中,选择 通知。
- 在 群组 部分中找到该群组。
- 选择所需的电子邮件地址。
更改项目通知级别
为了帮助你保持最新状态,你可以为每个项目选择一个通知级别。
要为项目选择通知级别,请使用以下任一方法:
- 在左侧边栏中,选择你的头像。
- 选择 偏好设置。
- 在左侧边栏中,选择 通知。
- 在 项目 部分中找到该项目。
- 选择所需的通知级别。
或者:
- 在左侧边栏中,选择 搜索或转到 并找到你的项目。
- 选择通知下拉列表,位于铃铛图标()旁边。
- 选择所需的通知级别。
要了解如何在新版本可用时收到通知,请观看版本通知。
通知事件
用户会收到以下事件的通知:
事件 | 接收者 | 设置级别 |
---|---|---|
新版本 | 项目成员 | 自定义通知。 |
项目迁移 | 项目成员 | 任何非禁用状态。 |
邮箱更改 | 用户 | 安全邮件,总是发送。 |
群组访问级别更改 | 用户 | 当用户群组访问级别更改时发送。 |
新邮箱地址添加 | 用户 | 安全邮件,发送到主邮箱地址。 |
新邮箱地址添加 | 用户 | 安全邮件,发送到新添加的邮箱地址。 |
新 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 邮件
如果你不再希望接收任何电子邮件通知:
- 在左侧边栏中,选择你的头像。
- 选择 偏好设置。
- 在左侧边栏中,选择 通知。
- 将你的全局通知级别设置为禁用。
- 清除 接收关于你自己活动的通知 复选框。
- 如果你属于任何群组或项目,请将它们的通知设置为全局或禁用。
在极狐GitLab 私有化部署实例中,即使这样做后,你的实例管理员仍然可以给你发送邮件。
取消订阅通知邮件
你可以按资源(例如特定议题)从极狐GitLab 取消订阅通知邮件。
使用取消订阅链接
每封来自极狐GitLab 的通知邮件都包含一个取消订阅链接。
要取消订阅:
- 在邮件中选择取消订阅链接。
- 如果你已在浏览器中登录极狐GitLab,你将立即取消订阅。
- 如果你未登录,则需要确认操作。
使用电子邮件客户端或其他软件
当你查看来自极狐GitLab 的邮件时,电子邮件客户端可能会显示一个取消订阅按钮。要取消订阅,请选择此按钮。
来自极狐GitLab 的通知邮件包含特殊标头。这些标头允许支持的电子邮件客户端和其他软件自动取消用户订阅。以下是一个示例:
plaintextList-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。资源可以是 Issue、MergeRequest、Commit 或其他资源。 |
X-GitLab-(Resource)-State | 通知资源的状态。资源可以是 Issue 或 MergeRequest。值可以是 opened、closed、merged 或 locked。极狐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 并确保更新项目名称:
plaintextproject = 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 服务器):
plaintextDiagnostic-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 地址添加到邮件提供商的允许列表来解决此问题。请查看你的邮件提供商的文档以获取说明。