Create Capability webhook repository using groovy script

I want to create a Capability Webhook: Repository using Groovy script.
How can I do this using Groovy script?
With script below I get a nullpointer exception at line (“capabilityRegistry.add(capabilityType, true, description, capabilityProps);”).
Its also not clear too me how I can set the specific "Webhook " settings like repository name, eventType, url, secretKey?

Kind Regards,

Guy

//The script that I currently have
import org.sonatype.nexus.capability.CapabilityReference;
import org.sonatype.nexus.capability.CapabilityType;
import org.sonatype.nexus.internal.capability.DefaultCapabilityReference;
import org.sonatype.nexus.internal.capability.DefaultCapabilityRegistry;
def capabilityRegistry = container.lookup(DefaultCapabilityRegistry.class.getName());
def capabilityType = CapabilityType.capabilityType(‘webhook.repository’);
if(capabilityType) {
def capabilityProps = [‘names’: ‘myName’];
def description = ‘component’;
capabilityRegistry.add(capabilityType, true, description, capabilityProps);
}

This should work…

import org.sonatype.nexus.capability.CapabilityReference
import org.sonatype.nexus.capability.CapabilityType
import org.sonatype.nexus.internal.capability.DefaultCapabilityReference
import org.sonatype.nexus.internal.capability.DefaultCapabilityRegistry

def capabilityRegistry = container.lookup(DefaultCapabilityRegistry.class.getName())

//Capability specific values/properties
def capabilityType = CapabilityType.capabilityType("webhook.repository")
def capabilityProps = ['names':'asset,component','repository':'maven-releases','secret':'mysecret','url':'http://localhost:1234']
def capabilityNotes = 'Configured through scripting api'

log.info('Capability created as: {}', capabilityRegistry.
            add(capabilityType, true, capabilityNotes, capabilityProps).toString()
    )

2 Likes