Plugin to collect Git repository metrics

Clone this repo:
  1. 83b287e Add deprecation notice by Luca Milanesio · 3 weeks ago master
  2. bf47703 Remove duplicated code from collectors by Jacek Centkowski · 4 months ago
  3. 3ef5daf Remove unused `getMetricsCollectorName` function by Jacek Centkowski · 4 months ago
  4. 5760ad4 Fix typo in `numberOfFiles` metric description by Jacek Centkowski · 4 months ago
  5. 4c3eca2 Introduce the `*metricscollectiontime` meta metrics by Jacek Centkowski · 4 months ago

DEPRECATION NOTICE

GerritForge has decided to change the license to BSL therefore the Apache 2.0 version of this plugin is deprecated. The recommended version of the git-repo-metrics plugin is on GitHub and the development continues on GerritHub.io.

Plugin to collect Git repository metrics (DEPRECATED)

This plugin allows a systematic collection of repository metrics. It‘s primary use-case is with Gerrit, however it’s possible for it to work with multiple Git SCM systems, including bare Git repositories.

Metrics are updated either upon a ref-update receive or on a time based refresh interval. ref-update events are received only on primary nodes, so on replicas gracePeriod will need to be set.

How to build

Clone or link this plugin to the plugins directory of Gerrit‘s source tree, and then run bazel build on the plugin’s directory.

Example:

git clone --recursive https://gerrit.googlesource.com/gerrit git clone https://gerrit.googlesource.com/plugins/git-repo-metrics pushd gerrit/plugins && ln -s ../../git-repo-metrics . && popd cd gerrit && bazel build plugins/git-repo-metrics 

The output plugin jar is created in:

bazel-genfiles/plugins/git-repo-metrics/git-repo-metrics.jar 

How to install with Gerrit

Copy the git-repo-metrics.jar into the Gerrit's /plugins directory and wait for the plugin to be automatically loaded.

How to install with a different SCM

This plugin can also work with Git repositories hosted by other Git based SCM tools, however the metrics are still expose via Gerrit, so a dedicated Gerrit instance running alongside the current SCM tool is still required. So to make this plugin work with other Git SCM tools, a Gerrit installation needs to be set-up and the basePath needs to be set to the git data directory of the tool of choice. You will also need to set gracePeriod and forceCollection, as when using a different SCM tool than Gerrit the usual hooks aren't triggered. Finally, a configuration option will need to be specified to indicate which Backend is being used. Currently supported backend, other than GERRIT are:

  • GITLAB

Find more in the configuration section below.

Configuration

More information about the plugin configuration can be found in the config.md file.