【问题标题】:Where does jenkins get email addresses from in Gitjenkins 在 Git 中从哪里获取电子邮件地址
【发布时间】:2017-02-20 21:08:21
【问题描述】:

我安装了最新版本的 Jenkins,以及电子邮件扩展插件。计划在构建失败时向所有相关补丁作者发送电子邮件。

我看到的问题是发送到的电子邮件地址已过期。我让我的团队更新了他们的本地 git 配置设置,以确保使用当前用户的电子邮件地址注册新的签到,但这似乎并不能解决问题。

Jenkins 从 Git 中的哪里获取电子邮件地址,如果它们不是最新的,您如何更新它们?

更新:

彼得的回答是很好的信息,但这只是一个开始。我还没有完全解决这个问题,但我注意到了一些事情。虽然 git 本身有用于签入的权限,但 GitHub 可以有多个备用电子邮件地址,并且还有各种其他 3rd 方工具可以包装或与 Git 交互。 (例如 Visual Studio)。

其中一些工具似乎可以将凭据插入到签入中。如果您正在尝试解决此问题,请检查正在使用的所有工具的凭据。

另外,检查 Jenkins 中的用户页面。 Jenkins 在构建分支时会自动接收它遇到的用户,如果有错误输入的权限(例如,使用个人电子邮件地址而不是公司地址),它们就会出现在那里。这是查找具有错误 git 配置的 git 用户的好方法。

【问题讨论】:

  • 此外,如果您从 git 中的用户名和电子邮件开始,Jenkins 将根据该信息创建一个 Jenkins 用户。然后,如果您稍后更改 git 配置,Jenkins 仍会保存您的旧电子邮件。因此,您需要进入 Jenkins 仪表板 > 人员 > 选择一个人 > 配置并更改保存在那里的电子邮件。

标签: git jenkins jenkins-email-ext


【解决方案1】:

Jenkins从提交相关的作者那里读取提交数据,你可以用这些来查看

git log

这将在每次提交时显示

Author: Author Name <you@example.com>

您可以修改现有提交的作者

git commit --amend --author="Author Name <you@example.com>"

为您的机器设置默认作者电子邮件

git config --global user.email "you@example.com"

您可以将其本地设置为您当前所在的存储库

git config user.email "you@example.com"

【讨论】:

  • 所以这是我第一次看到问题时尝试的相同策略。我检查了 user.config,并对其进行了更改以反映当前的电子邮件地址。但是在这样做之后,我仍然看到 Jenkins 报告向旧地址发送电子邮件。
  • 发送邮件是否是构建失败的结果?因为如果 jenkins 认为“应该为构建失败负责”,如果自上次失败构建以来构建还没有通过,它可能仍然会指责旧地址的提交。
  • 您为电子邮件分机选择了哪些“收件人”选项?
  • 我在一两周前更新了我的电子邮件地址,从那时起已经运行了数十个成功的构建。此外,Jenkins 服务器已重新启动,因此缓存内容的可能性很小。
  • 邮件分机设置被设置为为每个不稳定的构建发送电子邮件,并向每个收件人发送单独的电子邮件。我还检查了全局设置,看看是否有什么奇怪的地方,但它有一个非常普通的 smtp 邮件转发设置。
【解决方案2】:

电子邮件扩展插件

开发者

添加此收件人提供商以将电子邮件发送给签入上次构建代码的任何人。此插件将根据提交者的 ID 和配置系统页面的扩展电子邮件通知部分附加的默认用户电子邮件后缀生成一个电子邮件地址。例如,如果某个 ID 为 first.last 的人提交了更改,并且默认用户电子邮件后缀是 @example.com,那么将向 first.last@example.com 发送一封电子邮件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    • 2013-04-01
    • 2011-03-27
    相关资源
    最近更新 更多