Skip to content

GitProjectHealth

GitProjectHealth (GPH) is a set of importers, a meta-model, analyses and visualizations that let you study the history and the health of software repositories inside Moose.

With GitProjectHealth you can, for instance:

  • list the repositories of a group or organization, and see which have failing pipelines;
  • count commits, contributors, merge requests (pull requests) or code churn over a period;
  • find who knows which part of a system (degree of authorship, truck factor);
  • export dozens of metrics per user or per project in CSV;
  • link commits and merge requests to Jira tickets, or to the source code entities of a Famix model.

GitProjectHealth can read data from two kinds of sources: the REST API of a Git platform, and a local clone of a repository. Each importer is a subclass of GitModelImporter and fills the same GLHModel.

ImporterClassSourceCommits & diffsMerge requests, pipelines, notesSpeed
GitLabGitlabModelImporterGitLab REST API (gitlab.com or self-hosted)✅✅ (most complete)slow on big histories
GitHubGithubModelImporterGitHub REST API✅✅ pull requests, workflow runsslow, rate-limited
BitbucketBitBucketModelImporterBitbucket Server / Data Center REST API✅✅ pull requests, commentsslow
LocalGitLocalModelImportera cloned repository on disk✅❌fast
MixedGitModelMixedImporterlocal clone and platform API✅ (from the clone)✅ (from the API)fast for history

Rule of thumb:

  • you only need the history (commits, diffs, files, authors) → use the local importer;
  • you need the social information (merge requests, reviews, pipelines) on a few projects → use a platform importer;
  • you need both on large histories → use the mixed importer.