Extract original repo from DelegateRepository

To access the original repository in classes extending the
DelegateRepository class, the delegate() method needs to be invoked.

However, this method is package protected in Gerrit core.

As a workaround we added a DelegateRepositoryUnwrapper class in the
same namespace of DelegateRepository to get hold of the original repository.

Adding the DelegateRepositoryUnwrapper jar in the Gerrit lib allows
the new class to be picked up by the class loader.

Bug: Issue 15997

Change-Id: Ia3fbdc7e9629072c0019c44fbdfc201aa5b317b9
4 files changed
tree: 975fb15d21d7f760d000f63833113c5064953c0c
  1. src/
  2. .gitignore
  3. BUILD
  4. README.md
README.md

Plugin to collect Git repository metrics

This plugin allows a systematic collection of repository metrics. Metrics are updated upon a ref-update receive.

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:all

Two jar will be created:

bazel-bin/plugins/git-repo-metrics/git-repo-metrics.jar
bazel-bin/plugins/git-repo-metrics/libdelegaterepositoryunwrapper.jar

How to install

Copy the git-repo-metrics.jar into the Gerrit's <gerrit_site>/plugins directory and the libdelegaterepositoryunwrapper.jar into the <gerrit_site>/lib directory. Restart your Gerrit instance and the plugin will be loaded.

Configuration

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