如何获取当前Jenkins用户在groovy脚本中使用的电子邮件地址

mip*_*mip 11 email groovy jenkins jenkins-workflow

我为新的Jenkins Workflow插件创建了一个groovy脚本,https://github.com/jenkinsci/workflow-plugin.我希望它在下一步需要输入时向发起作业的用户发送邮件.我试图搜索API但我找不到任何有关获取用户电子邮件地址的信息.

我会想到这样的事情.

import hudson.model.User
def user = User.current()
def mailAddress = user.getMailAddress()
Run Code Online (Sandbox Code Playgroud)

有没有办法在groovy中获取当前Jenkins用户的地址?

mip*_*mip 17

我找到了一个方法:

import hudson.model.AbstractProject
import hudson.tasks.Mailer
import hudson.model.User

def item = hudson.model.Hudson.instance.getItem(env.JOB_NAME) 
def build = item.getLastBuild()
def cause = build.getCause(hudson.model.Cause.UserIdCause.class)
def id = cause.getUserId()
User u = User.get(id)
def umail = u.getProperty(Mailer.UserProperty.class)
print umail.getAddress()
Run Code Online (Sandbox Code Playgroud)

  • 从1.4开始,您应该使用currentBuild.rawBuild而不是查找作业并要求其lastBuild。 (3认同)

sat*_*n77 7

您可以使用该方法访问当前用户的对象 current()

def user = hudson.model.User.current();
Run Code Online (Sandbox Code Playgroud)

电子邮件地址的检索方式与您在答案中所做的相同.

print user.getProperty(hudson.tasks.Mailer.UserProperty.class).getAddress();
Run Code Online (Sandbox Code Playgroud)

  • 在工作流插件作业中,“hudson.model.User.current();”返回 SYSTEM 用户。不是启动构建的用户。在我们的设置中,SYSTEM 没有邮件地址,因此返回 null。 (2认同)