使用Groovy脚本更改Jenkins email ext插件的默认收件人
我希望能够修改我的Jenkins build电子邮件基于支持rota的默认收件人列表。目前,我正在努力找出如何做到这一点 到目前为止,我已经尝试过:使用Groovy脚本更改Jenkins email ext插件的默认收件人,groovy,jenkins,email-ext,Groovy,Jenkins,Email Ext,我希望能够修改我的Jenkins build电子邮件基于支持rota的默认收件人列表。目前,我正在努力找出如何做到这一点 到目前为止,我已经尝试过: import jenkins.model.*; import org.kohsuke.stapler.*; def plugin = jenkins.model.Jenkins.instance.getDescriptorByType(hudson.plugins.emailext.ExtendedEmailPublisherDescriptor
import jenkins.model.*;
import org.kohsuke.stapler.*;
def plugin = jenkins.model.Jenkins.instance.getDescriptorByType(hudson.plugins.emailext.ExtendedEmailPublisherDescriptor.class);
println plugin.getClass();
plugin.configure(new StaplerRequest());
我可以看到,我正在成功地为我想要配置的插件获取描述符
,但我不确定从这里开始该往哪里走
我现在明白了StaplerRequest
是一个接口。是否有我可以实例化和设置所需参数的实现
通过查看email\u ext,我可以看到我可能想要设置的参数是ext\u mailer\u default\u recipients
。此外,我可以在配置文件hudson.plugins.emailext.extendedmailpublisher.xml中看到我要更新的xml元素被称为recipientList
有人能建议我怎么做吗?我想你可以用这个来换工作。这将是一项单独的工作(针对您的情况),可能会随着轮值表的更改而定时进行
如报告中所述
这是一个部分示例,在进行大规模更改之前,您需要查看作业模板要使用纯Groovy配置Extended Email Publisher,您可以使用以下代码:
extendedMailer = j.getDescriptorByType(hudson.plugins.emailext.ExtendedEmailPublisherDescriptor.class)
extendedMailer.setDefaultSuffix("@server.local")
extendedMailer.setDefaultContentType("text/html")
extendedMailer.setSmtpServer("my-smtp.server.local")
extendedMailer.save()
这对我来说很好
job {
publishers {
extendedEmail('Engineering@company.com') {
trigger(triggerName: 'Failure', recipientList: '$PROJECT_DEFAULT_RECIPIENTS')
trigger(triggerName: 'Fixed', recipientList: '$PROJECT_DEFAULT_RECIPIENTS')
}
}
}
extendedMailer = j.getDescriptorByType(hudson.plugins.emailext.ExtendedEmailPublisherDescriptor.class)
extendedMailer.setDefaultSuffix("@server.local")
extendedMailer.setDefaultContentType("text/html")
extendedMailer.setSmtpServer("my-smtp.server.local")
extendedMailer.save()
import jenkins.model.*
import hudson.plugins.emailext.ExtendedEmailPublisherDescriptor
Jenkins jenkins
def plugin = jenkins.model.Jenkins.instance.getDescriptorByType(hudson.plugins.emailext.ExtendedEmailPublisherDescriptor.class);
print plugin
plugin.setSmtpServer("your server")
plugin.setDefaultSuffix("your suffix")
plugin.save()