Groovy script to do jenkins configuration on Manage Jenkins level for Blackduck detect plugin

253 views
Skip to first unread message

Sabyasachi Das

unread,
Mar 26, 2018, 11:50:54 AM3/26/18
to Jenkins Users
Hi All,

I have installed Blackduck detect plugin in jenkins. I want to do Blackduck  detect configurations via groovy script.

I am able to do using GUI Manage Jenkins -> configure system but need to do similar activity via groovy script.
Similar configurations for other plugins can be done for example below. But for BlackDuck detect I cant find any appropriate class to provide.

Anyone please help me on this.

Thanks,
Sabya

Sonar Script
==========================
import jenkins.model.*
import hudson.plugins.sonar.*
import hudson.plugins.sonar.model.*
import jenkins.plugins.slack.SlackNotifier
import jenkins.plugins.git.GitSCMSource

def inst = Jenkins.getInstance()

def desc = inst.getDescriptor("hudson.plugins.sonar.SonarPublisher")
//or slack or git
def slack = instance.getDescriptor(SlackNotifier)
def gitPluginSetup = instance.getDescriptor(GitSCM)

Ewelina Wilkosz

unread,
Mar 26, 2018, 1:24:17 PM3/26/18
to Jenkins Users
I haven't tried that and don't know the plugin, but I think you need to find descriptor first

you can see there are public setters in it, so getDescriptor for com.blackducksoftware.integration.detect.jenkins.post (I guess) and use it to call setters
does it make sense to you?

In the future, hopefully, Jenkins Configuration as Code Plugin will be able to take care of that for you :)

Sabyasachi Das

unread,
Mar 29, 2018, 10:24:58 AM3/29/18
to Jenkins Users
Thanks Ewelina,

Actually we are looking for a method to retrieve the class instance which is keeping the BlackDuckHub configuration on master level.

 

For example for SonarQube it will be

 

import jenkins.model.Jenkins;

import hudson.plugins.sonar.SonarGlobalConfiguration;

import hudson.plugins.sonar.SonarInstallation;

 

def sonarDescr = jenkins.getInstance().getDescriptorByType(SonarGlobalConfiguration)l

sonarDescr.setInstallations(

new SonarInstallation(

'sonar',

'http://sonarqube.com',

// Other constructor properties...

)

);

sonarDescr.save();


Didn't find it in this class.

Ewelina Wilkosz

unread,
Apr 5, 2018, 3:01:27 AM4/5/18
to Jenkins Users
I'm confused, isn't it the one I provided? 

it has setters for hubUrl, credentials, timeout... exactly what you have in global config:


so it would be - I'm guessing, haven't tried:


import com.blackducksoftware.integration.detect.jenkins.post.DetectPostBuildStepDescriptor;

def blackduckDetectDesc = Jenkins.getInstance().getDescriptor("com.blackducksoftware.integration.detect.jenkins.post.DetectPostBuildStepDescriptor")

blackduckDetectDesc.setHubTimeout(60);

blackduckDetectDesc.setTrustSSLCertificates(true)


etc?

Graham

unread,
Jun 7, 2018, 6:37:47 AM6/7/18
to Jenkins Users
Thanks Ewelina this worked for me

def blackduck = Jenkins.getInstance().getExtensionList(
  com.blackducksoftware.integration.detect.jenkins.post.DetectPostBuildStepDescriptor.class
)[0]

blackduck.setHubTimeout(60);

blackduck.save()


Reply all
Reply to author
Forward
0 new messages