= gerrit ls-members

== NAME
gerrit ls-members - Show members of a given group

== SYNOPSIS
[verse]
--
_ssh_ -p <port> <host> _gerrit ls-members_ GROUPNAME
  [--recursive]
--

== DESCRIPTION
Displays the members of the given group, one per line, so long as the given
group is visible to the user. The users' id, username, full name and email are
shown tab-separated.

== ACCESS
Any user who has SSH access to Gerrit.

== SCRIPTING
This command is intended to be used in scripts. Output is either an error
message or a heading followed by zero or more lines, one for each member of the
group. If any field is not set, or if the field is the user's full name and the
name is empty, "n/a" is emitted as the field value.

All non-printable characters (ASCII value 31 or less) are escaped
according to the conventions used in languages like C, Python, and Perl,
employing standard sequences like `\n` and `\t`, and `\xNN` for all
others. In shell scripts, the `printf` command can be used to unescape
the output.

== OPTIONS
--recursive::
	If a member of the group is itself a group, the sub-group's
	members are included in the list. Otherwise members of any sub-group
	are not shown and no indication is given that a sub-group is present

== EXAMPLES

List members of the Administrators group:
----
	$ ssh -p 29418 review.example.com gerrit ls-members Administrators
	id      username  full name    email
	100000  jim     Jim Bob somebody@example.com
	100001  johnny  John Smith      n/a
	100002  mrnoname        n/a     someoneelse@example.com
----

List members of a non-existent group:
----
	$ ssh -p 29418 review.example.com gerrit ls-members BadlySpelledGroup
	Group not found or not visible
----

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

SEARCHBOX
---------
