{"id":22281887,"url":"https://github.com/jenkinsci/shelve-project-plugin","last_synced_at":"2025-07-28T20:31:34.724Z","repository":{"id":1231314,"uuid":"1163745","full_name":"jenkinsci/shelve-project-plugin","owner":"jenkinsci","description":"Jenkins shelve-project-plugin plugin","archived":false,"fork":false,"pushed_at":"2023-02-20T02:35:29.000Z","size":513,"stargazers_count":5,"open_issues_count":3,"forks_count":17,"subscribers_count":97,"default_branch":"master","last_synced_at":"2024-08-25T00:47:14.027Z","etag":null,"topics":["misc"],"latest_commit_sha":null,"homepage":"https://plugins.jenkins.io/shelve-project-plugin/","language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"SemanticSugar/dinerl","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jenkinsci.png","metadata":{"files":{"readme":"README.adoc","changelog":"CHANGELOG.adoc","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2010-12-13T05:52:41.000Z","updated_at":"2023-10-17T18:57:55.000Z","dependencies_parsed_at":"2023-07-06T08:18:44.371Z","dependency_job_id":null,"html_url":"https://github.com/jenkinsci/shelve-project-plugin","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fshelve-project-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fshelve-project-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fshelve-project-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fshelve-project-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jenkinsci","download_url":"https://codeload.github.com/jenkinsci/shelve-project-plugin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227954143,"owners_count":17846632,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["misc"],"created_at":"2024-12-03T16:23:04.860Z","updated_at":"2024-12-03T16:23:05.528Z","avatar_url":"https://github.com/jenkinsci.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Shelve Project Plugin\n\nimage:https://img.shields.io/jenkins/plugin/v/shelve-project-plugin.svg[link=https://plugins.jenkins.io/shelve-project-plugin]\nimage:https://img.shields.io/github/release/jenkinsci/shelve-project-plugin-plugin.svg?label=changelog[link=https://github.com/jenkinsci/shelve-project-plugin-plugin/releases/latest]\nimage:https://img.shields.io/jenkins/plugin/i/shelve-project-plugin.svg?color=blue[https://plugins.jenkins.io/shelve-project-plugin]\n\nThis plugin lets you shelve projects so that they can easily be resurrected.\n\"Shelving a project\" is like deleting a project into a recycle bin.\nWhen you shelve a project, it will disappear from the list of projects and become inaccessible from Jenkins, just like how it goes\nwhen a project is deleted, with one difference — instead of getting deleted, the data is archived into a tar file and stored on the server.\nThis allows the administrator to resurrect it later (aka unshelving), in an unlikely event that the job turned out to be necessary.\n\nThis feature is convenient when you have lots of old jobs lying around, and you are 99% sure you won't need them but you can't rule out 1% possibility that you might find them necessary later.\n\n[[ShelveProjectPlugin-Usage]]\n== Usage\n\nWhen you install this plugin, you get \"shelve project\" in each job page,\nas follows: +\nimage:docs/images/shelve-project-action.png[image,width=400]\n\nYou can click this icon and shelve the project.\nThe shelved projects can be resurrected from the Jenkins top page:\n\n* first click on the *Shelved Project* action:\n\nimage:docs/images/unshelve-project-action.png[image,width=400]\n\n* Then choose the project you wish to unshelve:\n\nimage:docs/images/unshelve-project-ui.png[image,width=800]\n\nIMPORTANT: In order to unshelve, the user needs the *ADMINISTER* permission.\n\n[[ShelveProjectPlugin-Security]]\n== Security\n\nShelving a project requires the *DELETE* permission.\nUnshelving a project requires the *ADMINISTER* permission.\n\n== Changelog\nifdef::env-github,env-browser[:outfilesuffix: .adoc]\n\nFrom version 2.5 on, changelog is automatically generated using\nhttps://github.com/toolmantim/release-drafter[release-drafter]. See\ndirectly the https://github.com/jenkinsci/shelve-project-plugin/releases[GitHub\nrelease page for the plugin].\n\nFor older releases, have a look to the \u003c\u003cCHANGELOG#,archive\u003e\u003e.\n\n[[ShelveProjectPlugin-Knownissueandworkaround]]\n== Known issue and workaround\n\n=== Fixed in 2.5\n\nNOTE: This issue has been fixed in release 2.5 of the plugin however all the\nshelves created using an earlier version of the plugin will have the\nissue and you'll need to apply the workaround.\n\nThere is a currently a known issue in Core, making the tar function\nbreaking the symlinks.\nSadly, the Shelve Pipeline Plugin is using this tar function, and therefore the symlinks are lost during the shelving/unshelving process.\n\nUp until Jenkins 2.90, this was mainly hidden from the end user, as\nJenkins was silently fixing the symlinks during a build.\nBut since this version, some changes made this issue visible.\n\nThis means that, when you unshelve a job, you will see a stack trace like this in all your build logs:\n\n[source,syntaxhighlighter-pre]\n----\nln builds/lastSuccessfulBuild ***/jenkins-home/jobs/toto/lastSuccessful failed\njava.nio.file.DirectoryNotEmptyException: ***/jenkins-home/jobs/toto/lastSuccessful\n    at sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:242)\n    at sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:108)\n    at java.nio.file.Files.deleteIfExists(Files.java:1165)\n    at hudson.Util.createSymlink(Util.java:1333)\n    at hudson.model.Run.createSymlink(Run.java:1866)\n    at hudson.model.Run.updateSymlinks(Run.java:1847)\n    at hudson.model.Run.execute(Run.java:1725)\n    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)\n    at hudson.model.ResourceController.execute(ResourceController.java:97)\n    at hudson.model.Executor.run(Executor.java:421)\n----\n\nWhile this won't affect the output of your build, this is far from convenient.\nA workaround for this issue is to manually delete the wrongly created files using a script.\nHere is an example:\n\n* First make a dry run to ensure the script is not deleting something it\nshouldn't:\n\n[source,shell]\n----\nfind ${JENKINS_HOME}/jobs/ -type d \\( -name lastFailedBuild -o -name lastSuccessfulBuild -o -name lastUnsuccessfulBuild -o -name lastStableBuild -o -name lastUnstableBuild -o -name lastFailed -o -name lastSuccessful -o -name lastUnsuccessful -o -name lastStable -o -name lastUnstable \\)\n----\n\n* Then, do the real cleaning:\n\n[source,shell]\n----\nfind ${JENKINS_HOME}/jobs/ -type d \\( -name lastFailedBuild -o -name lastSuccessfulBuild -o -name lastUnsuccessfulBuild -o -name lastStableBuild -o -name lastUnstableBuild -o -name lastFailed -o -name lastSuccessful -o -name lastUnsuccessful -o -name lastStable -o -name lastUnstable \\) -exec rm -rfv \"{}\" \\;\n----\n\n== License\n\nThe plugin follows Jenkins licensing (exception listed below).\n\nFile manager icon (shelve-project-icon.png) was released into the public domain by the *Tango! Desktop Project*.\nThe original image can be found https://commons.wikimedia.org/wiki/File:System-file-manager.svg[here].\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenkinsci%2Fshelve-project-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjenkinsci%2Fshelve-project-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenkinsci%2Fshelve-project-plugin/lists"}