gerrit create-group
===================

NAME
----
gerrit create-group - Create a new account group.

SYNOPSIS
--------
[verse]
'ssh' -p <port> <host> 'gerrit create-group'
  [--owner <GROUP>]
  [--description <DESC>]
  [--member <USERNAME>]
  [--group <GROUP>]
  [--visible-to-all]
  <GROUP>

DESCRIPTION
-----------
Creates a new account group.  The group creating user (the user that
fired the create-group command) is not automatically added to
the created group.  In case the creating user wants to be a member of
the group he/she must list itself in the --member option.  This is
slightly different from Gerrit's Web UI where the creating user automatically
becomes a member of the newly created group.

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

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

OPTIONS
-------
<GROUP>::
	Required; name of the new group.

--owner, -o::
	Name of the owning group. If not specified the group will be self-owning.

--description, -d::
	Description of group.
+
Description values containing spaces should be quoted in single quotes
(').  This most likely requires double quoting the value, for example
`--description "'A description string'"`.

--member::
	User name to become initial member of the group.  Multiple --member
	options may be specified to add more initial members.
+
Trying to add a user that doesn't have an account in Gerrit fails,
unless LDAP is used for authentication. If LDAP is used for
authentication and the user is not found, Gerrit tries to authenticate
the user against the LDAP backend. If the authentication is successful
a user account is automatically created, so that the user can be added
to the group.

--group::
	Group name to include in the group.  Multiple --group options may
	be specified to include more initial groups.

--visible-to-all::
	If specified, the group members will be visible to all users.

EXAMPLES
--------
Create a new account group called `gerritdev` with two initial members
`developer1` and `developer2`.  The group should be owned by itself:

====
	$ ssh -p 29418 user@review.example.com gerrit create-group --member developer1 --member developer2 gerritdev
====

Create a new account group called `Foo` owned by the `Foo-admin` group.
Put `developer1` as the initial member and include group description:

====
	$ ssh -p 29418 user@review.example.com gerrit create-group --owner Foo-admin --member developer1 --description "'Foo description'" Foo
====

Note that it is necessary to quote the description twice.  The local
shell needs double quotes around the value to ensure the single quotes
are passed through SSH as-is to the remote Gerrit server, which uses
the single quotes to delimit the value.

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