This page describes the group related REST endpoints. Please also take note of the general information on the REST API.
Group Endpoints
List Groups
'GET /groups/'
Lists the groups accessible by the caller. This is the same as using the ls-groups command over SSH, and accepts the same options as query parameters.
As result a map is returned that maps the group names to GroupInfo entries. The entries in the map are sorted by group name.
GET /groups/ HTTP/1.0
HTTP/1.1 200 OK
Content-Disposition: attachment
Content-Type: application/json; charset=UTF-8
)]}'
{
"Administrators": {
"id": "6a1e70e1a88782771a91808c8af9bbb7a9871389",
"url": "#/admin/groups/uuid-6a1e70e1a88782771a91808c8af9bbb7a9871389",
"options": {
},
"description": "Gerrit Site Administrators",
"group_id": 1,
"owner": "Administrators",
"owner_id": "6a1e70e1a88782771a91808c8af9bbb7a9871389",
"created_on": "2013-02-01 09:59:32.126000000"
},
"Anonymous Users": {
"id": "global%3AAnonymous-Users",
"url": "#/admin/groups/uuid-global%3AAnonymous-Users",
"options": {
},
"description": "Any user, signed-in or not",
"group_id": 2,
"owner": "Administrators",
"owner_id": "6a1e70e1a88782771a91808c8af9bbb7a9871389",
"created_on": "2013-02-01 09:59:32.126000000"
},
"MyProject_Committers": {
"id": "834ec36dd5e0ed21a2ff5d7e2255da082d63bbd7",
"url": "#/admin/groups/uuid-834ec36dd5e0ed21a2ff5d7e2255da082d63bbd7",
"options": {
"visible_to_all": true,
},
"group_id": 6,
"owner": "MyProject_Committers",
"owner_id": "834ec36dd5e0ed21a2ff5d7e2255da082d63bbd7",
"created_on": "2013-02-01 09:59:32.126000000"
},
"Service Users": {
"id": "5057f3cbd3519d6ab69364429a89ffdffba50f73",
"url": "#/admin/groups/uuid-5057f3cbd3519d6ab69364429a89ffdffba50f73",
"options": {
},
"description": "Service accounts that interact with Gerrit",
"group_id": 4,
"owner": "Administrators",
"owner_id": "6a1e70e1a88782771a91808c8af9bbb7a9871389",
"created_on": "2013-02-01 09:59:32.126000000"
},
"Project Owners": {
"id": "global%3AProject-Owners",
"url": "#/admin/groups/uuid-global%3AProject-Owners",
"options": {
},
"description": "Any owner of the project",
"group_id": 5,
"owner": "Administrators",
"owner_id": "6a1e70e1a88782771a91808c8af9bbb7a9871389",
"created_on": "2013-02-01 09:59:32.126000000"
},
"Registered Users": {
"id": "global%3ARegistered-Users",
"url": "#/admin/groups/uuid-global%3ARegistered-Users",
"options": {
},
"description": "Any signed-in user",
"group_id": 3,
"owner": "Administrators",
"owner_id": "6a1e70e1a88782771a91808c8af9bbb7a9871389",
"created_on": "2013-02-01 09:59:32.126000000"
}
}
Group Options
Additional fields can be obtained by adding o parameters, each option
requires more lookups and slows down the query response time to the
client so they are generally disabled by default. Optional fields are:
-
INCLUDES: include list of direct subgroups.
-
MEMBERS: include list of direct group members.
Find groups that are owned by another group
By setting owned-by and specifying the {group-id} of another
group, it is possible to find all the groups for which the owning group is the
given group.
GET /groups/?owned-by=7ca042f4d5847936fcb90ca91057673157fd06fc HTTP/1.0
HTTP/1.1 200 OK
Content-Disposition: attachment
Content-Type: application/json; charset=UTF-8
)]}'
{
"MyProject-Committers": {
"id": "9999c971bb4ab872aab759d8c49833ee6b9ff320",
"url": "#/admin/groups/uuid-9999c971bb4ab872aab759d8c49833ee6b9ff320",
"options": {
"visible_to_all": true
},
"description":"contains all committers for MyProject",
"group_id": 551,
"owner": "MyProject-Owners",
"owner_id": "7ca042f4d5847936fcb90ca91057673157fd06fc",
"created_on": "2013-02-01 09:59:32.126000000"
}
}
Check if a group is owned by the calling user
By setting the option owned and specifying a group to inspect with
the option group/g, it is possible to find out if this group is
owned by the calling user.
[NOTE] Earlier the group/g option was named query/q. Using
query/q still works, but this option is deprecated and may be
removed in future. Hence all users should be adapted to use
group/g instead.
GET /groups/?owned&q=MyProject-Committers HTTP/1.0
If the group is owned by the calling user, the returned map contains this group. If the calling user doesn’t own this group an empty map is returned.
HTTP/1.1 200 OK
Content-Disposition: attachment
Content-Type: application/json; charset=UTF-8
)]}'
{
"MyProject-Committers": {
"id": "9999c971bb4ab872aab759d8c49833ee6b9ff320",
"url": "#/admin/groups/uuid-9999c971bb4ab872aab759d8c49833ee6b9ff320",
"options": {
"visible_to_all": true
},
"description":"contains all committers for MyProject",
"group_id": 551,
"owner": "MyProject-Owners",
"owner_id": "7ca042f4d5847936fcb90ca91057673157fd06fc",
"created_on": "2013-02-01 09:59:32.126000000"
}
}
Group Limit
The /groups/ URL also accepts a limit integer in the n parameter.
This limits the results to show n groups.
Query the first 25 groups in group list.
GET /groups/?n=25 HTTP/1.0
The /groups/ URL also accepts a start integer in the S parameter.
The results will skip S groups from group list.
Query 25 groups starting from index 50.
GET /groups/?n=25&S=50 HTTP/1.0
Suggest Group
The suggest or s option indicates a user-entered string that
should be auto-completed to group names.
If this option is set and n is not set, then n defaults to 10.
When using this option, the project or p option can be used to
name the current project, to allow context-dependent suggestions.
Not compatible with visible-to-all, owned, user, match,
group, or S.
(Attempts to use one of those options combined with suggest will
error out.)
GET /groups/?suggest=ad&p=All-Projects HTTP/1.0
HTTP/1.1 200 OK
Content-Disposition: attachment
Content-Type: application/json; charset=UTF-8
)]}'
{
"Administrators": {
"url": "#/admin/groups/uuid-59b92f35489e62c80d1ab1bf0c2d17843038df8b",
"options": {},
"description": "Gerrit Site Administrators",
"group_id": 1,
"owner": "Administrators",
"owner_id": "59b92f35489e62c80d1ab1bf0c2d17843038df8b",
"created_on": "2013-02-01 09:59:32.126000000",
"id": "59b92f35489e62c80d1ab1bf0c2d17843038df8b"
}
}
- Regex(r)
-
Limit the results to those groups that match the specified regex.
Boundary matchers '^' and '$' are implicit. For example: the regex 'test.*' will match any groups that start with 'test' and regex '.*test' will match any group that end with 'test'.
The match is case sensitive.
List all groups that match regex
test.*group:RequestGET /groups/?r=test.*group HTTP/1.0
ResponseHTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "test/some-group": { "url": "#/admin/groups/uuid-59b92f35489e62c80d1ab1bf0c2d17843038df8b", "options": {}, "description": "Gerrit Site Administrators", "group_id": 1, "owner": "Administrators", "owner_id": "59b92f35489e62c80d1ab1bf0c2d17843038df8b", "created_on": "2013-02-01 09:59:32.126000000", "id": "59b92f35489e62c80d1ab1bf0c2d17843038df8b" } "test/some-other-group": { "url": "#/admin/groups/uuid-99b92f35489e62c80d1ab1bf0c2d17843038df8b", "options": {}, "description": "Gerrit Site Administrators", "group_id": 1, "owner": "Administrators", "owner_id": "99b92f35489e62c80d1ab1bf0c2d17843038df8b", "created_on": "2014-02-01 09:59:32.126000000", "id": "99b92f35489e62c80d1ab1bf0c2d17843038df8b" } } - Substring(m)
-
Limit the results to those groups that match the specified substring.
The match is case insensitive.
List all groups that match substring
test/:RequestGET /groups/?m=test%2F HTTP/1.0
ResponseHTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' { "test/test": { "url": "#/admin/groups/uuid-786a95e85f9a2223a96545f10003f396aba871f2", "options": {}, "group_id": 15, "owner": "test/test", "owner_id": "786a95e85f9a2223a96545f10003f396aba871f2", "created_on": "2017-07-11 13:56:24.000000000", "id": "786a95e85f9a2223a96545f10003f396aba871f2" } }
Query Groups
'GET /groups/?query=<query>'
Queries internal groups visible to the caller. The
query string must be
provided by the query parameter. The start and limit parameters
can be used to skip/limit results.
As result a list of GroupInfo entities is returned.
GET /groups/?query=inname:test HTTP/1.0
HTTP/1.1 200 OK
Content-Disposition: attachment
Content-Type: application/json; charset=UTF-8
)]}'
[
{
"url": "#/admin/groups/uuid-68236a40ca78de8be630312d8ba50250bc5638ae",
"options": {},
"description": "Group for running tests on MyProject",
"group_id": 20,
"owner": "MyProject-Test-Group",
"owner_id": "59b92f35489e62c80d1ab1bf0c2d17843038df8b",
"created_on": "2013-02-01 09:59:32.126000000",
"id": "68236a40ca78de8be630312d8ba50250bc5638ae"
},
{
"url": "#/admin/groups/uuid-99a534526313324a2667025c3f4e089199b736aa",
"options": {},
"description": "Testers for ProjectX",
"group_id": 17,
"owner": "ProjectX-Testers",
"owner_id": "59b92f35489e62c80d1ab1bf0c2d17843038df8b",
"created_on": "2013-02-01 09:59:32.126000000",
"id": "99a534526313324a2667025c3f4e089199b736aa"
}
]
If the number of groups matching the query exceeds either the internal
limit or a supplied limit query parameter, the last group object has
a _more_groups: true JSON field set.
Group Limit
The /groups/?query=<query> URL also accepts a limit integer in the
limit parameter. This limits the results to limit groups.
Query the first 25 groups in group list.
GET /groups/?query=<query>&limit=25 HTTP/1.0
The /groups/ URL also accepts a start integer in the start
parameter. The results will skip start groups from group list.
Query 25 groups starting from index 50.
GET /groups/?query=<query>&limit=25&start=50 HTTP/1.0
Group Options
Additional fields can be obtained by adding o parameters. Each option
requires more lookups and slows down the query response time to the
client so they are generally disabled by default. The supported fields
are described in the context of the List Groups
REST endpoint.
Get Group
'GET /groups/{group-id}'
Retrieves a group.
GET /groups/6a1e70e1a88782771a91808c8af9bbb7a9871389 HTTP/1.0
As response a GroupInfo entity is returned that describes the group.
HTTP/1.1 200 OK
Content-Disposition: attachment
Content-Type: application/json; charset=UTF-8
)]}'
{
"id": "6a1e70e1a88782771a91808c8af9bbb7a9871389",
"name": "Administrators",
"url": "#/admin/groups/uuid-6a1e70e1a88782771a91808c8af9bbb7a9871389",
"options": {
},
"description": "Gerrit Site Administrators",
"group_id": 1,
"owner": "Administrators",
"owner_id": "6a1e70e1a88782771a91808c8af9bbb7a9871389",
"created_on": "2013-02-01 09:59:32.126000000"
}
Create Group
'PUT /groups/{group-name}'
Creates a new Gerrit internal group.
In the request body additional data for the group can be provided as GroupInput.
PUT /groups/MyProject-Committers HTTP/1.0
Content-Type: application/json; charset=UTF-8
{
"description": "contains all committers for MyProject",
"visible_to_all": true,
"owner": "MyProject-Owners",
"owner_id": "7ca042f4d5847936fcb90ca91057673157fd06fc"
}
As response the GroupInfo entity is returned that describes the created group.
HTTP/1.1 201 Created
Content-Disposition: attachment
Content-Type: application/json; charset=UTF-8
)]}'
{
"id": "9999c971bb4ab872aab759d8c49833ee6b9ff320",
"name": "MyProject-Committers",
"url": "#/admin/groups/uuid-9999c971bb4ab872aab759d8c49833ee6b9ff320",
"options": {
"visible_to_all": true
},
"description":"contains all committers for MyProject",
"group_id": 551,
"owner": "MyProject-Owners",
"owner_id": "7ca042f4d5847936fcb90ca91057673157fd06fc",
"created_on": "2013-02-01 09:59:32.126000000"
}
If the group creation fails because the name is already in use, or the UUID was specified and the UUID is already in use, the response is “409 Conflict”.
Delete Group
'DELETE /groups/{group-id}'
Delete group. The group to delete must be internal group.
This endpoint is only allowed for Gerrit’s internal groups; attempting to call on a non-internal group will return 405 Method Not Allowed.
DELETE /groups/MyProject-Committers HTTP/1.0
HTTP/1.1 204 No Content
Delete Internal Group
'POST /groups/{group-id}.delete'
Delete group. The deleted group must be internal group.
POST /groups/MyProject-Committers.delete HTTP/1.0
HTTP/1.1 204 No Content
Get Group Detail
'GET /groups/{group-id}/detail'
Retrieves a group with the direct members and the directly included groups.
GET /groups/6a1e70e1a88782771a91808c8af9bbb7a9871389/detail HTTP/1.0
As response a GroupInfo entity is returned that describes the group.
HTTP/1.1 200 OK
Content-Disposition: attachment
Content-Type: application/json; charset=UTF-8
)]}'
{
"id": "6a1e70e1a88782771a91808c8af9bbb7a9871389",
"name": "Administrators",
"url": "#/admin/groups/uuid-6a1e70e1a88782771a91808c8af9bbb7a9871389",
"options": {
},
"description": "Gerrit Site Administrators",
"group_id": 1,
"owner": "Administrators",
"owner_id": "6a1e70e1a88782771a91808c8af9bbb7a9871389",
"created_on": "2013-02-01 09:59:32.126000000",
"members": [
{
"_account_id": 1000097,
"name": "Jane Roe",
"email": "jane.roe@example.com",
"username": "jane"
},
{
"_account_id": 1000096,
"name": "John Doe",
"email": "john.doe@example.com"
"username": "john"
}
],
"includes": []
}
Get Group Name
'GET /groups/{group-id}/name'
Retrieves the name of a group.
GET /groups/9999c971bb4ab872aab759d8c49833ee6b9ff320/name HTTP/1.0
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' "MyProject-Committers"
Rename Group
'PUT /groups/{group-id}/name'
Renames a Gerrit internal group.
The new group name must be provided in the request body.
This endpoint is only allowed for Gerrit internal groups; attempting to call on a non-internal group will return 405 Method Not Allowed.
PUT /groups/MyProject-Committers/name HTTP/1.0
Content-Type: application/json; charset=UTF-8
{
"name": "My-Project-Committers"
}
As response the new group name is returned.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' "My-Project-Committers"
If renaming the group fails because the new name is already in use the response is “409 Conflict”.
Get Group Description
'GET /groups/{group-id}/description'
Retrieves the description of a group.
This endpoint is only allowed for Gerrit internal groups; attempting to call on a non-internal group will return 405 Method Not Allowed.
GET /groups/9999c971bb4ab872aab759d8c49833ee6b9ff320/description HTTP/1.0
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' "contains all committers for MyProject"
If the group does not have a description an empty string is returned.
Set Group Description
'PUT /groups/{group-id}/description'
Sets the description of a Gerrit internal group.
The new group description must be provided in the request body.
This endpoint is only allowed for Gerrit internal groups; attempting to call on a non-internal group will return 405 Method Not Allowed.
PUT /groups/9999c971bb4ab872aab759d8c49833ee6b9ff320/description HTTP/1.0
Content-Type: application/json; charset=UTF-8
{
"description": "The committers of MyProject."
}
As response the new group description is returned.
HTTP/1.1 200 OK Content-Disposition: attachment Content-Type: application/json; charset=UTF-8 )]}' "The committers of MyProject."
If the description was deleted the response is “204 No Content”.
Delete Group Description
'DELETE /groups/{group-id}/description'
Deletes the description of a Gerrit internal group.
DELETE /groups/9999c971bb4ab872aab759d8c49833ee6b9ff320/description HTTP/1.0
HTTP/1.1 204 No Content
Get Group Options
'GET /groups/{group-id}/options'
Retrieves the options of a group.
GET /groups/9999c971bb4ab872aab759d8c49833ee6b9ff320/options HTTP/1.0
As response a GroupOptionsInfo entity is returned that describes the options of the group.
HTTP/1.1 200 OK
Content-Disposition: attachment
Content-Type: application/json; charset=UTF-8
)]}'
{
"visible_to_all": true
}
Set Group Options
'PUT /groups/{group-id}/options'
Sets the options of a Gerrit internal group.
The new group options must be provided in the request body as a GroupOptionsInput entity.
This endpoint is only allowed for Gerrit internal groups; attempting to call on a non-internal group will return 405 Method Not Allowed.
PUT /groups/9999c971bb4ab872aab759d8c49833ee6b9ff320/options HTTP/1.0
Content-Type: application/json; charset=UTF-8
{
"visible_to_all": true
}
As response the new group options are returned as a GroupOptionsInfo entity.
HTTP/1.1 200 OK
Content-Disposition: attachment
Content-Type: application/json; charset=UTF-8
)]}'
{
"visible_to_all": true
}
Get Group Owner
'GET /groups/{group-id}/owner'
Retrieves the owner group of a Gerrit internal group.
This endpoint is only allowed for Gerrit internal groups; attempting to call on a non-internal group will return 405 Method Not Allowed.
GET /groups/9999c971bb4ab872aab759d8c49833ee6b9ff320/owner HTTP/1.0
As response a GroupInfo entity is returned that describes the owner group.
HTTP/1.1 200 OK
Content-Disposition: attachment
Content-Type: application/json; charset=UTF-8
)]}'
{
"id": "6a1e70e1a88782771a91808c8af9bbb7a9871389",
"name": "Administrators",
"url": "#/admin/groups/uuid-6a1e70e1a88782771a91808c8af9bbb7a9871389",
"options": {
},
"description": "Gerrit Site Administrators",
"group_id": 1,
"owner": "Administrators",
"owner_id": "6a1e70e1a88782771a91808c8af9bbb7a9871389",
"created_on": "2013-02-01 09:59:32.126000000"
}
Set Group Owner
'PUT /groups/{group-id}/owner'
Sets the owner group of a Gerrit internal group.
The new owner group must be provided in the request body as a OwnerInput entity.
The new owner can be specified by name, by group UUID or by the legacy numeric group ID.
This endpoint is only allowed for Gerrit internal groups; attempting to call on a non-internal group will return 405 Method Not Allowed.
PUT /groups/9999c971bb4ab872aab759d8c49833ee6b9ff320/owner HTTP/1.0
Content-Type: application/json; charset=UTF-8
{
"owner": "6a1e70e1a88782771a91808c8af9bbb7a9871389"
}
As response a GroupInfo entity is returned that describes the new owner group.
HTTP/1.1 200 OK
Content-Disposition: attachment
Content-Type: application/json; charset=UTF-8
)]}'
{
"id": "6a1e70e1a88782771a91808c8af9bbb7a9871389",
"name": "Administrators",
"url": "#/admin/groups/uuid-6a1e70e1a88782771a91808c8af9bbb7a9871389",
"options": {
},
"description": "Gerrit Site Administrators",
"group_id": 1,
"owner": "Administrators",
"owner_id": "6a1e70e1a88782771a91808c8af9bbb7a9871389",
"created_on": "2013-02-01 09:59:32.126000000"
}
Get Audit Log
'GET /groups/{group-id}/log.audit'
Gets the audit log of a Gerrit internal group.
This endpoint is only allowed for Gerrit internal groups; attempting to call on a non-internal group will return 405 Method Not Allowed.
GET /groups/9999c971bb4ab872aab759d8c49833ee6b9ff320/log.audit HTTP/1.0
As response a list of GroupAuditEventInfo entities is returned that describes the audit events of the group. The returned audit events are sorted by date in reverse order so that the newest audit event comes first.
HTTP/1.1 200 OK
Content-Disposition: attachment
Content-Type: application/json; charset=UTF-8
)]}'
[
{
"member": {
"url": "#/admin/groups/uuid-fdda826a0815859ab48d22a05a43472f0f55f89a",
"options": {},
"group_id": 3,
"owner": "Administrators",
"owner_id": "e56678641565e7f59dd5c6878f5bcbc842bf150a",
"created_on": "2013-02-01 09:59:32.126000000",
"id": "fdda826a0815859ab48d22a05a43472f0f55f89a",
"name": "MyGroup"
},
"type": "REMOVE_GROUP",
"user": {
"_account_id": 1000000,
"name": "Administrator",
"email": "admin@example.com",
"username": "admin"
},
"date": "2015-07-03 09:22:26.348000000"
},
{
"member": {
"url": "#/admin/groups/uuid-fdda826a0815859ab48d22a05a43472f0f55f89a",
"options": {},
"group_id": 3,
"owner": "Administrators",
"owner_id": "e56678641565e7f59dd5c6878f5bcbc842bf150a",
"created_on": "2013-02-01 09:59:32.126000000",
"id": "fdda826a0815859ab48d22a05a43472f0f55f89a",
"name": "MyGroup"
},
"type": "ADD_GROUP",
"user": {
"_account_id": 1000000,
"name": "Administrator",
"email": "admin@example.com",
"username": "admin"
},
"date": "2015-07-03 08:43:36.592000000"
},
{
"member": {
"_account_id": 1000000,
"name": "Administrator",
"email": "admin@example.com",
"username": "admin"
},
"type": "ADD_USER",
"user": {
"_account_id": 1000001,
"name": "John Doe",
"email": "john.doe@example.com",
"username": "jdoe"
},
"date": "2015-07-01 13:36:36.602000000"
}
]
Index Group
'POST /groups/{group-id}/index'
Adds or updates the internal group in the secondary index.
POST /groups/fdda826a0815859ab48d22a05a43472f0f55f89a/index HTTP/1.0
HTTP/1.1 204 No Content
Group Member Endpoints
List Group Members
'GET /groups/{group-id}/members/'
Lists the direct members of a Gerrit internal group.
As result a list of detailed AccountInfo entries is returned. The entries in the list are sorted by full name, preferred email and id.
This endpoint is only allowed for Gerrit internal groups; attempting to call on a non-internal group will return 405 Method Not Allowed.
GET /groups/834ec36dd5e0ed21a2ff5d7e2255da082d63bbd7/members/ HTTP/1.0
HTTP/1.1 200 OK
Content-Disposition: attachment
Content-Type: application/json; charset=UTF-8
)]}'
[
{
"_account_id": 1000097,
"name": "Jane Roe",
"email": "jane.roe@example.com",
"username": "jane"
},
{
"_account_id": 1000096,
"name": "John Doe",
"email": "john.doe@example.com",
"username": "john"
}
]
To resolve the included groups of a group recursively and to list all
members the parameter recursive can be set.
Members from included external groups and from included groups which are not visible to the calling user are ignored.
GET /groups/834ec36dd5e0ed21a2ff5d7e2255da082d63bbd7/members/?recursive HTTP/1.0
HTTP/1.1 200 OK
Content-Disposition: attachment
Content-Type: application/json; charset=UTF-8
)]}'
[
{
"_account_id": 1000097,
"name": "Jane Roe",
"email": "jane.roe@example.com",
"username": "jane"
},
{
"_account_id": 1000096,
"name": "John Doe",
"email": "john.doe@example.com",
"username": "john"
},
{
"_account_id": 1000098,
"name": "Richard Roe",
"email": "richard.roe@example.com",
"username": "rroe"
}
]
Get Group Member
'GET /groups/{group-id}/members/{account-id}'
Retrieves a group member.
GET /groups/834ec36dd5e0ed21a2ff5d7e2255da082d63bbd7/members/1000096 HTTP/1.0
As response a detailed AccountInfo entity is returned that describes the group member.
HTTP/1.1 200 OK
Content-Disposition: attachment
Content-Type: application/json; charset=UTF-8
)]}'
{
"_account_id": 1000096,
"name": "John Doe",
"email": "john.doe@example.com",
"username": "john"
}
Add Group Member
'PUT /groups/{group-id}/members/{account-id}'
Adds a user as member to a Gerrit internal group.
This endpoint is only allowed for Gerrit internal groups; attempting to call on a non-internal group will return 405 Method Not Allowed.
PUT /groups/MyProject-Committers/members/John%20Doe HTTP/1.0
As response a detailed