nexus-scripts icon indicating copy to clipboard operation
nexus-scripts copied to clipboard

Sonatype nexus 3 groovy scripts to list and delete assets

groovy script to list or delete assets based on regular expression

Deploy scripts

provision.sh -h https://repository.host.com -u admin -p ****

Remove scripts

delete.sh -h https://repository.host.com -u admin -p ****

Call script

Delete subtree in Maven repository

Let's say you need to delete all artifacts with groupId prefix com.example.app in maven-snapshots repository

first delete all components in subtree:

curl -v -X POST -u 'admin:******' \
  --header "Content-Type: text/plain" \
  -d '{"repoName": "maven-snapshots", "group": "^com\\.example\\.app.*"}' \
  https://repository.example.com/service/rest/v1/script/deleteComponents/run

then delete all orphaned assets like hashes, etc.

curl -v -X POST -u 'admin:******' \
    --header "Content-Type: text/plain" \
    -d '{"repoName": "maven-snapshots", "assetName": "^com/example/app/.*"}' \
    https://repository.example.com/service/rest/v1/script/deleteAssets/run

List assets from RAW repository

curl -v -X POST -u admin:****** \
    --header "Content-Type: text/plain" \
    -d '{"repoName": "raw-static-content", "assetName": "^prefix/.*"}' \
    https://repository.host.com/service/rest/v1/script/listAssets/run

Delete assets from RAW repository

curl -v -X POST -u admin:****** \
    --header "Content-Type: text/plain" \
    -d '{"repoName": "raw-static-content", "assetName": "^prefix/.*"}' \
    https://repository.host.com/service/rest/v1/script/deleteAssets/run

Delete released snapshots from Docker

curl -v -X POST -u admin:****** \
    --header "Content-Type: text/plain" \
    -d '{"repoName": "docker"}' \
    https://repository.host.com/service/rest/v1/script/deleteDockerReleasedSnapshots/run