Decrease churn number for Gitlab::Git::Repository class
Description
Based on the Codeclimate report Gitlab::Git::Repository has the highest churn number. High churn number means that a class is being changed really ofter. The main reason for that, in most cases, is a presence of multiple responsibilities for the given class. This makes the class hard to understand and hard to maintain. In my opinion, maintainability is a crucial metric of any successful OSS project.
Proposal
Refactor the class and split it into separate classes with separate responsibilities. This will make further changes easier and resulting code more comprehensible (=cheaper to support).
Reference
https://codeclimate.com/github/gitlabhq/gitlabhq/Gitlab::Git::Repository
gitlab-ce~3011693
Edited by Igor