Project goal: Automate the maintenance of cached git repositories on the Jenkins controller
Skills to study/improve: Java
Recent versions of command line git (since 2.30.0) have a set of commands for "git maintenance" that can be used to regularly update and maintain the contents of a git repository. Those commands provide good ideas of maintenance operations that would benefit the cached copies of git repositories stored on the Jenkins controller.
Git caches that exist on the controller can become slower and larger than necessary during use. Command line git focuses on high performance for frequent operations. Command line git relies on end users to perform most repository maintenance. Garbage collection, removal of deleted branches, and other operations are not performed by default on most cached repositories.
Review the features available from "git maintenance" and identify ways that the Jenkins controller could use those features or implement similar capabilities to manage the cached copies of git repositories. Review issues in the Jenkins issue tracker that may indicate other areas where git plugin repository maintenance could help the Jenkins controller.
Git caches used by the Jenkins controller will be automatically maintained to improve their performance and use of disc space. Administrators will be able to control the git maintenance operations that are performed and their frequency.