= gerrit create-account

== NAME
gerrit create-account - Create a new user account.

== SYNOPSIS
[verse]
--
_ssh_ -p <port> <host> _gerrit create-account_
  [--group <GROUP>]
  [--full-name <FULLNAME>]
  [--email <EMAIL>]
  [--ssh-key - | <KEY>]
  [--http-password <PASSWORD>]
  <USERNAME>
--

== DESCRIPTION
Creates a new internal-only user account.

If the account is created without an email address, it may only be
used for batch/role access, such as from an automated build system
or event monitoring over link:cmd-stream-events.html[gerrit stream-events].

Note, however, that in this case the account is not implicitly added
to the 'Service Users' group.  The account must be explicitly
added to the group with the `--group` option.

If LDAP authentication is being used, the user account is created
without checking the LDAP directory.  Consequently users can be
created in Gerrit that do not exist in the underlying LDAP directory.

== ACCESS
Caller must be a member of the privileged 'Administrators' group,
or have been granted
link:access-control.html#capability_createAccount[the 'Create Account' global capability].

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

== OPTIONS
<USERNAME>::
	Required; SSH username of the user account.

--ssh-key::
	Content of the public SSH key to load into the account's
	keyring.  If `-` the key is read from stdin, rather than
	from the command line.

--group::
	Name of the group to put the user into.  Multiple --group
	options may be specified to add the user to multiple groups.

--full-name::
	Display name of the user account.
+
Names containing spaces should be quoted in single quotes (').
This most likely requires double quoting the value, for example
`--full-name "'A description string'"`.

--email::
	Preferred email address for the user account.

--http-password::
    HTTP password for the user account.

== EXAMPLES
Create a new batch/role access user account called `watcher` in
the 'Service Users' group.

----
$ cat ~/.ssh/id_watcher.pub | ssh -p 29418 review.example.com gerrit create-account --group "'Service Users'" --ssh-key - watcher
----

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

SEARCHBOX
---------
