Is there an easy way in Jenkins to list all all builds marked as keep-forever? And then, ideally, one click to either unmark the build as keep-forever or to immediately del
I was looking for the same thing, and our jenkins is pretty big as well and trying the link:
http://[jenkins_server]/api/xml?depth=2&xpath=/hudson/job/build[keepLog="true"]/url&wrapper=forever
I ended up crashing it.
But as it turns out I only require the last 'keep forever' build of one job at a time, which seems to work way faster. So I use the following instead:
http://[jenkisn_server]/job/[job_name]/api/xml/?depth=2&xpath=/freeStyleProject/build[keepLog="true"]/number&wrapper=forever
which returns the xml with all the numbers of build that are marked as 'keep forever' You can modify the xpath to fit your needs.
The following XPath query against Jenkins will list the URLs of all builds marked 'Keep Forever':
http://[jenkins_server]/api/xml?depth=2&xpath=/hudson/job/build[keepLog="true"]/url&wrapper=forever
Enter it in the browser and see what it returns.
Now, you can embed it into XSLT-based HTML to get a list with links to those builds. To delete the build you can provide a button that invokes Jenkins CLI:
java -jar jenkins-cli.jar -s http://[jenkins_server]/ delete-builds [job-name] [build-num]
Unfortunately, I do not know how to disable 'keep build forever' with CLI without deleting it.