Jenkins : Allow broken build claiming on every jobs

After installing the Hudson Claim Plugin, you have to configure each job by manually checking the "allow broken build claiming" option.

Obviously, it can be a bit cumbersome. But here comes the great groovy script console again.
With the following simple script, you can activate the option on every jobs of your server in just one go.

Don't hesitate to give me feedback (and backup your config before playing with those scripts, as always).

import hudson.model.*
import hudson.maven.*
import hudson.tasks.*

for(item in Hudson.instance.items) {
  println("job $item.name")
  hasClaim = false;
  for(p in item.publishers )
  {
    if(p instanceof hudson.plugins.claim.ClaimPublisher)
    {
      hasClaim = true;
    }
  }
  if(!hasClaim)
  {
    println(">>>>>>>> Adding claim right to $item.name")
    item.getPublishersList().add(new  hudson.plugins.claim.ClaimPublisher() );
    item.save()
  }
}

Known quirk:

  • Funnily, if I run this script many times, I see the same item coming back. But when I check inside the job configuration, the checkbox was correctly modified. I don't know where it comes from yet. If you have any idea, just let me know.
  • See the shorter version in the comment below - assuming the plugin has a good hashCode/equals you can just use "replace" instead of searching and adding.  This is essentially the same as the Chuck Norris example.