plugin install
==============

NAME
----
plugin install - Install/Add a plugin.

plugin add - Install/Add a plugin.

SYNOPSIS
--------
[verse]
'ssh' -p <port> <host> 'gerrit plugin install | add'
  [--name <NAME> | -n <NAME>]
  - | <URL> | <PATH>

DESCRIPTION
-----------
Install/Add a plugin. The plugin will be copied into the site path's
`plugins` directory.

ACCESS
------
Caller must be a member of the privileged 'Administrators' group.

SCRIPTING
---------
This command is intended to be used in scripts.

OPTIONS
-------
-::
	Plugin jar as piped input.

<URL>::
	URL from where the plugin should be downloaded. This can be an
	HTTP or FTP site.

<PATH>::
	Absolute file path to the plugin jar.

--name::
-n::
	The name under which the plugin should be installed. Note: if the plugin
	provides its own name in the MANIFEST file, then the plugin name from the
	MANIFEST file has precedence over this option.

EXAMPLES
--------
Install a plugin from an absolute file path on the server's host:

====
	ssh -p 29418 localhost gerrit plugin install -n name \
	  $(pwd)/my-plugin.jar
====

Install a plugin from an HTTP site:

====
	ssh -p 29418 localhost gerrit plugin install -n name \
	  http://build-server/output/our-plugin.jar
====

Install a plugin from piped input:

====
	ssh -p 29418 localhost gerrit plugin install -n name \
	  - <target/name-0.1.jar
====

GERRIT
------
Part of link:index.html[Gerrit Code Review]
