Jenkins add/update 给所有工作:应该向默认收件人列表发送电子邮件提醒

Jenkins add/update to all jobs : should have email alerts to default recipients list

我们的 jenkins 已经有大约 100 个工作,我想为所有工作添加可编辑的电子邮件通知,以便所有工作都应该向默认收件人列表发送电子邮件提醒。正在寻找 Jenkins 脚本控制台的 Groovy 脚本以添加或修改电子邮件通知设置。

Jenkins.instance.items.each { item ->

  println("JOB: " + item.name)

  // code for setting email notification if not exist
  if(item.XXXX == null) {
    println("No email notification step ")

  } 
   else {
    //   code to update the current email settings 
    println("Set new setting")

  }
 item.save()
 println(" done")

}

或者其他一些自动化的方式也可以。 谢谢!

假设您正在使用 hudson.plugins.emailext.ExtendedEmailPublisher 并且所有作业都已经添加了该步骤,这应该可以涵盖迭代部分。

// Gets all jobs and folders recursively
items = Jenkins.instance.getAllItems();

items.each { item ->
   def status = ''
   def base_email = ''
   def ext_email = []
   if (item.class.name == "hudson.model.FreeStyleProject") {
      item.publishersList.findAll {it instanceof hudson.plugins.emailext.ExtendedEmailPublisher}.each { publisher ->
         status = publisher.disabled 
         base_email=publisher.recipientList?.replaceAll("\r|\n", " ")
         publisher.configuredTriggers?.each { entry ->
            if (entry.email.recipientList) {
                ext_email << "${entry.class.name.replace("hudson.plugins.emailext.plugins.trigger.", "")}: ${entry.email.recipientList?.replaceAll("\r|\n", " ")}"
            }
         }
      }
      if ( base_email ) {
            println item.fullName + "( " + status + " )"
            println "  +- " + base_email
            ext_email.each {             
               println "   - " + it
            }
      } else {
         println "# " + item.fullName
      }
   }
}
return

如果您使用的是hudson.tasks.Mailer,则只有一个字段:publisher.recipients

那你要么

publisher.recipientList="someone@somewhere.com"
item.save()

或根据需要等同。

注意:Extended Email 插件有一个禁用发送电子邮件的开关“禁用 Extended Email Publisher (publisher.disabled),所以也报告一下。

如果你需要添加插件,那么它会是这样的: item.publishersList.add(new hudson.plugins.emailext.ExtendedEmailPublisher(<parameters>)(see javadoc)