https://github.com/jenkinsci/workflow-plugin。我希望它在需要输入下一步时向开始该作业的用户发送邮件。我尝试搜索 API,但找不到任何有关获取用户电子邮件地址的信息。
我会想到这样的事情。
import hudson.model.User
def user = User.current()
def mailAddress = user.getMailAddress()
有没有办法在groovy中获取当前Jenkins用户的地址?
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()
current()
def user = hudson.model.User.current();
可以按照您在答案中所做的相同方式检索电子邮件地址。
print user.getProperty(hudson.tasks.Mailer.UserProperty.class).getAddress();
import hudson.tasks.Mailer;
import hudson.model.User;
import hudson.model.Cause;
import hudson.model.Cause.UserIdCause;
def cause = build.getCause(hudson.model.Cause$UserIdCause)
def id = cause.getUserId()
User u = User.get(id)
def umail = u.getProperty(Mailer.UserProperty.class)
print umail.getAddress()
build
变量(例如,在扩展
setUp()
的类的
BuildWrapper
方法中),您可以通过以下方式获取当前登录的用户:
@Override
public MyJenkinsPlugin setUp(AbstractBuild build, Launcher launcher, BuildListener listener)
String connectedUser = build.getCause(Cause.UserIdCause.class).getUserId();
String mail = User.get(connectedUser.getProperty(hudson.tasks.Mailer.UserProperty.class).getEmailAddress()
...
}
我无法使用
User.current().getId()
获取登录用户,它总是返回“
SYSTEM
”。希望有帮助!
def author = ""
def changeSet = currentBuild.rawBuild.changeSets
for (int i = 0; i < changeSet.size(); i++)
{
def entries = changeSet[i].items;
for (int i = 0; i < changeSet.size(); i++)
{
def entries = changeSet[i].items;
def entry = entries[0]
author += "${entry.author}"
}
}
print author;
import hudson.tasks.Mailer;
import hudson.model.User;
/**@
* Get user's email
*
* @param id null for a user who triggered the current build or name otherwise
* @return user's email
*/
def getUserEmail(String id=null) {
User user = User.getById(id ?: currentBuild.rawBuild.getCause(Cause.UserIdCause).getUserId(), false)
user?.getProperty(Mailer.UserProperty.class).getAddress()
}
import jakarta.mail.Message
def cause = build.getCause(hudson.model.Cause.UserIdCause.class)
def id = cause.getUserId()
def user = hudson.model.User.get(id)
def email = user.getProperty(hudson.tasks.Mailer.UserProperty.class).getAddress()
msg.setRecipients(Message.RecipientType.TO, email)