The replication plugin exposes an extension point to allow influencing its behaviour from another plugin or a script. Extension points can be defined from the replication plugin only when it is loaded as libModule and implemented by another plugin by declaring a provided
dependency from the replication plugin.
The replication plugin's extension points are defined in the c.g.g.p.r.ReplicationExtensionPointModule
that needs to be configured as libModule.
Create a symbolic link from $GERRIT_SITE/plugins/replication.jar
into $GERRIT_SITE/lib
and then add the replication extension module to the gerrit.config
.
Example:
[gerrit] installModule = com.googlesource.gerrit.plugins.replication.ReplicationExtensionPointModule
NOTE: Use and configuration of the replication plugin as library module requires a Gerrit server restart and does not support hot plugin install or upgrade.
com.googlesource.gerrit.plugins.replication.ReplicationPushFilter
Filter out the ref updates pushed to a remote instance. Only one filter at a time is supported. Filter implementation needs to bind a DynamicItem
.
Default: no filtering
Example:
DynamicItem.bind(binder(), ReplicationPushFilter.class).to(ReplicationPushFilterImpl.class);
com.googlesource.gerrit.plugins.replication.AdminApiFactory
Create an instance of AdminApi
for a given remote URL. The default implementation provides API instances for local FS, remote SSH, and remote Gerrit.
Only one factory at a time is supported. The implementation needs to be bound as a DynamicItem
.
Example:
DynamicItem.bind(binder(), AdminApiFactory.class).to(AdminApiFactoryImpl.class);