Parse and serve reviewer updates via REST API Parses updates to a change's reviewers, and serves them with the change details. Will be picked up by PolyGerrit UI and displayed in change's messages section in follow-up change. Feature availability depends on NoteDb migration. Feature: Issue 4148 Change-Id: I50e75ba9e5a885de4733a3a8d7d156d3729d1d91
diff --git a/Documentation/rest-api-changes.txt b/Documentation/rest-api-changes.txt index aa51a92..e1e6b44 100644 --- a/Documentation/rest-api-changes.txt +++ b/Documentation/rest-api-changes.txt
@@ -264,6 +264,12 @@ fields when referencing accounts. -- +[[reviewer-updates]] +-- +* `REVIEWER_UPDATES`: include updates to reviewers set as + link:#review-update-info[ReviewerUpdateInfo] entities. +-- + [[messages]] -- * `MESSAGES`: include messages associated with the change. @@ -511,8 +517,8 @@ -- Retrieves a change with link:#labels[labels], link:#detailed-labels[ -detailed labels], link:#detailed-accounts[detailed accounts], and -link:#messages[messages]. +detailed labels], link:#detailed-accounts[detailed accounts], +link:#reviewer-updates[reviewer updates], and link:#messages[messages]. Additional fields can be obtained by adding `o` parameters, each option requires more database lookups and slows down the query @@ -656,6 +662,56 @@ } ] }, + "reviewer_updates": [ + { + "state": "REVIEWER", + "reviewer": { + "_account_id": 1000096, + "name": "John Doe", + "email": "john.doe@example.com", + "username": "jdoe" + }, + "updated_by": { + "_account_id": 1000096, + "name": "John Doe", + "email": "john.doe@example.com", + "username": "jdoe" + }, + "updated": "2016-07-21 20:12:39.000000000" + }, + { + "state": "REMOVED", + "reviewer": { + "_account_id": 1000096, + "name": "John Doe", + "email": "john.doe@example.com", + "username": "jdoe" + }, + "updated_by": { + "_account_id": 1000096, + "name": "John Doe", + "email": "john.doe@example.com", + "username": "jdoe" + }, + "updated": "2016-07-21 20:12:33.000000000" + }, + { + "state": "CC", + "reviewer": { + "_account_id": 1000096, + "name": "John Doe", + "email": "john.doe@example.com", + "username": "jdoe" + }, + "updated_by": { + "_account_id": 1000096, + "name": "John Doe", + "email": "john.doe@example.com", + "username": "jdoe" + }, + "updated": "2016-03-23 21:34:02.419000000", + }, + ], "messages": [ { "id": "YH-egE", @@ -4316,6 +4372,11 @@ `REMOVED`: Users that were previously reviewers on the change, but have been removed. + Only set if link:#detailed-labels[detailed labels] are requested. +|`reviewer_updates`|optional| +Updates to reviewers set for the change as +link:#review-update-info[ReviewerUpdateInfo] entities. +Only set if link:#reviewer-updates[reviewer updates] are requested and +if NoteDb is enabled. |`messages`|optional| Messages associated with the change as a list of link:#change-message-info[ChangeMessageInfo] entities. + @@ -5019,6 +5080,26 @@ voting values. |=========================== +[[review-update-info]] +=== ReviewerUpdateInfo +The `ReviewerUpdateInfo` entity contains information about updates to +change's reviewers set. + +[options="header",cols="1,6"] +|=========================== +|Field Name |Description +|`updated`| +Timestamp of the update. +|`updated_by`| +The account which modified state of the reviewer in question as +link:rest-api-accounts.html#account-info[AccountInfo] entity. +|`reviewer`| +The reviewer account added or removed from the change as an +link:rest-api-accounts.html#account-info[AccountInfo] entity. +|`state`| +The reviewer state, one of `REVIEWER`, `CC` or `REMOVED`. +|=========================== + [[review-input]] === ReviewInput The `ReviewInput` entity contains information for adding a review to a