| # Gerrit interface to a global-refdb |
| |
| Global ref-database interface for use with Gerrit Code Review. |
| |
| Enables the de-coupling between Gerrit, its libModules and the different |
| implementations of a globally shared ref-database. |
| |
| ## Design |
| |
| [The design for a global ref-db interface](https://gerrit.googlesource.com/plugins/multi-site/+/refs/heads/master/DESIGN.md#global-ref_db-plugin) |
| can be found as part of the multi-site design documentation, where it first |
| originated and was approved by the community. |
| |
| ## Bindings |
| |
| In order to consume this library, some Guice bindings need to be registered |
| appropriately. More information in the relevant [documentation](./bindings.md). |
| |
| ## Metrics |
| |
| Global ref-database expose metrics to measure the global ref-database operation latency. |
| List of the available metrics can be found [here](./metrics.md). |
| |
| ## How to build |
| |
| This libModule is built like a Gerrit in-tree plugin, using Bazelisk. |
| |
| ### Build in Gerrit tree |
| |
| Create a symbolic link of the repository source to the Gerrit source tree /plugins/global-refdb directory. |
| |
| Example: |
| |
| git clone https://gerrit.googlesource.com/gerrit |
| git clone https://gerrit.googlesource.com/modules/global-refdb |
| cd gerrit/plugins |
| ln -s ../../global-refdb . |
| From the Gerrit source tree issue the command bazelsk build plugins/global-refdb |
| |
| Example: |
| |
| ``` |
| bazelisk build plugins/global-refdb |
| ``` |
| |
| The libModule jar file is created under basel-bin/plugins/global-refdb/global-refdb.jar |
| |
| To execute the tests run bazelisk test plugins/global-refdb/... from the Gerrit source tree. |
| |
| Example: |
| |
| ``` |
| bazelisk test plugins/global-refdb/... |
| ``` |
| |
| ## How to import into Eclipse as a project |
| |
| Add `global-refdb` in the `CUSTOM_PLUGINS` section of the `tools/bzl/plugins.bzl`. |
| |
| Example: |
| |
| ``` |
| CUSTOM_PLUGINS = [ |
| "global-refdb", |
| ] |
| ``` |
| |
| Run `tools/eclipse/project.py` for generating or updating the Eclipse project. |