# plugin-manager
Gerrit web-based plugin manager

To enable this plugin, `plugins.allowRemoteAdmin = true` is required in
gerrit.config.

Also note that the use of this plugin is restricted to Gerrit administrators.
