Automatic git cache maintenance on the controller

Project goal: Automate the maintenance of cached git repositories on the Jenkins controller

Skills to study/improve: Java

Details

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.

Background

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.

Quick Start

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.

Skills to Study and Improve

  • Java

  • Git

Project Difficulty Level

Intermediate

Project Size

175 hours

Expected outcomes

New feature

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.

Newbie Friendly Issues

Potential Mentors

Project Links

Organization Links

> Go back to other GSoC 2022 project ideas