// The following commands can be ran on a server in either Master or Slave
// mode. If a command should only be used on a server in one mode, but not
// both, it should be bound in both MasterCommandModule and
// SlaveCommandModule.
command(gerrit).toProvider(new DispatchCommandProvider(gerrit));
command(gerrit, "ban-commit").to(BanCommitCommand.class);
command(gerrit, "flush-caches").to(FlushCaches.class);
command(gerrit, "ls-projects").to(ListProjectsCommand.class);
command(gerrit, "ls-groups").to(ListGroupsCommand.class);
command(gerrit, "query").to(Query.class);
command(gerrit, "show-caches").to(ShowCaches.class);
command(gerrit, "show-connections").to(ShowConnections.class);
command(gerrit, "show-queue").to(ShowQueue.class);
command(gerrit, "stream-events").to(StreamEvents.class);
command(gerrit, "version").to(VersionCommand.class);
command(gerrit, "plugin").toProvider(new DispatchCommandProvider(plugin));
command(plugin, "ls").to(PluginLsCommand.class);
command(plugin, "install").to(PluginInstallCommand.class);
command(plugin, "reload").to(PluginReloadCommand.class);
command(plugin, "remove").to(PluginRemoveCommand.class);
command(plugin, "add").to(Commands.key(plugin, "install"));
command(plugin, "rm").to(Commands.key(plugin, "remove"));
command(git).toProvider(new DispatchCommandProvider(git));
command(git, "receive-pack").to(Commands.key(gerrit, "receive-pack"));
command(git, "upload-pack").to(Upload.class);
command("ps").to(ShowQueue.class);
command("kill").to(KillCommand.class);