使用Groovy脚本更改Jenkins email ext插件的默认收件人

使用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

我希望能够修改我的Jenkins build电子邮件基于支持rota的默认收件人列表。目前,我正在努力找出如何做到这一点

到目前为止,我已经尝试过:

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()