| # Plugin to collect Git repository metrics |
| |
| 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](src/resources/Documentation/config.md) |
| file. |