= gerrit ls-groups

== NAME
gerrit ls-groups - List groups visible to caller.

== SYNOPSIS
[verse]
--
_ssh_ -p <port> <host> _gerrit ls-groups_
  [--project <NAME> | -p <NAME>]
  [--user <NAME> | -u <NAME>]
  [--owned]
  [--visible-to-all]
  [-q <GROUP>]
  [--verbose | -v]
--

== DESCRIPTION
Displays the list of group names, one per line, that are visible to
the account of the calling user.

If the caller is a member of the privileged 'Administrators' group,
all groups are listed.

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

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

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
--project::
-p::
	Name of the project for which the groups should be listed. Only
	groups are listed for which any permission is set on this project
	(or for which a permission is inherited from a parent project).
	Multiple --project options may be specified to specify additional
	projects. In this case all groups are listed that have a
	permission for any of the specified projects.
+
This option can't be used together with the '--user' option.

--user::
-u::
	User for which the groups should be listed. Only groups are
	listed that contain this user as a member.
+
The calling user can list the groups for the own user or must be a
member of the privileged 'Administrators' group to list the groups
for other users.
+
This option can't be used together with the '--project' option.

--owned::
	Lists only the groups that are owned by the user that was specified
	by the `--user` option or if no user was specified the groups that
	are owned by the calling user.

--visible-to-all::
	Displays only groups that are visible to all registered users
	(groups that are explicitly marked as visible to all registered
	users).

-q::
	Group that should be inspected. The `-q` option can be specified
	multiple times to define several groups to be inspected. If
	specified the listed groups will only contain groups that were
	specified to be inspected. This is e.g. useful in combination with
	the `--owned` and `--user` options to check whether a group is
	owned by a user.

--verbose::
-v::
	Enable verbose output with tab-separated columns for the
	group name, UUID, description, owner group name, owner group UUID
	and whether the group is visible to all (`true` or `false`).
+
If a group has been "orphaned", i.e. its owner group UUID refers to a
nonexistent group, the owner group name field will read `n/a`.

== EXAMPLES

List visible groups:
----
$ ssh -p 29418 review.example.com gerrit ls-groups
Administrators
Anonymous Users
MyProject_Committers
Project Owners
Registered Users
----

List all groups for which any permission is set for the project
"MyProject":
----
$ ssh -p 29418 review.example.com gerrit ls-groups --project MyProject
MyProject_Committers
Project Owners
Registered Users
----

List all groups which are owned by the calling user:
----
$ ssh -p 29418 review.example.com gerrit ls-groups --owned
MyProject_Committers
MyProject_Verifiers
----

Check if the calling user owns the group `MyProject_Committers`. If
`MyProject_Committers` is returned the calling user owns this group.
If the result is empty, the calling user doesn't own the group.
----
$ ssh -p 29418 review.example.com gerrit ls-groups --owned -q MyProject_Committers
MyProject_Committers
----

Extract the UUID of the 'Administrators' group:

----
$ ssh -p 29418 review.example.com gerrit ls-groups -v | awk '-F\t' '$1 == "Administrators" {print $2}'
ad463411db3eec4e1efb0d73f55183c1db2fd82a
----

Extract and expand the multi-line description of the 'Administrators'
group:

----
$ printf "$(ssh -p 29418 review.example.com gerrit ls-groups -v | awk '-F\t' '$1 == "Administrators" {print $3}')\n"
This is a
multi-line
description.
----

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

SEARCHBOX
---------
