)]}'
{
  "commit": "93fc95fd2e855ba27460ea398c6283a90a79c5c0",
  "tree": "4e9243ede5ae61a2336d484f30c723d7cfef2ec2",
  "parents": [
    "05d6470a8746ecec2d5230035090a5518437274e"
  ],
  "author": {
    "name": "Edwin Kempin",
    "email": "ekempin@google.com",
    "time": "Thu Feb 22 10:28:24 2024 +0000"
  },
  "committer": {
    "name": "Edwin Kempin",
    "email": "ekempin@google.com",
    "time": "Thu Feb 22 11:35:27 2024 +0000"
  },
  "message": "PostReview: Do not fail with ISE if reviewer in ReviewerInput is missing\n\nBefore this change, calling PostReview failed with \u0027500 Internal Server\nError\u0027 when the user provided a ReviewerInput that didn\u0027t have the\n\u0027reviewer\u0027 field set.\n\nIf bad user input is provided we usually reject the request with \u0027400\nBad Request\u0027 but since PostReview can batch multiple operations (e.g.\nmultiple reviewer updates) it always returns \u0027200 OK\u0027 and errors are\nprovided in the returned ReviewResult. Hence if a ReviewerInput without\na reviewer is specified return a proper error message in the\nReviewResult.\n\nAdding reviewers is also possible with PostReviewers. While we are at\nthis update PostReviewers to make the error handling for missing\nreviewer user identifiers consistent and improve the error message:\n\n* Before this change, PostReviewers rejected a null reviewer with a \u0027400\n  Bad Request\u0027 reposnse but an empty reviewer resulted in a \u0027200 OK\u0027\n  response with an error in the returned ReviewerResult. Now in both\n  cases we return a \u0027200 OK\u0027 response with an error in the returned\n  ReviewerResult.\n\n* The error message for when an empty reviewer is provided is improved\n  from saying \" is not a valid user identifier\" to saying \"reviewer user\n  identifier is required\".\n\nBug: Google b/326096919\nRelease-Notes: Fixed internal server error when posting a review with a ReviewerInput that didn\u0027t set the \u0027reviewer\u0027 field.\nChange-Id: I0b523c58a97a7c48d5d7610ea24d167a5f8fa0b9\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d7142152b9a85beb825caad26a22d98bbdc6838c",
      "old_mode": 33188,
      "old_path": "java/com/google/gerrit/server/change/ReviewerModifier.java",
      "new_id": "4b1d06ccbfb6d2dec3b861ea1c076b165a1744ba",
      "new_mode": 33188,
      "new_path": "java/com/google/gerrit/server/change/ReviewerModifier.java"
    },
    {
      "type": "modify",
      "old_id": "b0e58c5403d94ee0324fb3cc7a9d0cf0c190e9f1",
      "old_mode": 33188,
      "old_path": "java/com/google/gerrit/server/restapi/change/PostReviewers.java",
      "new_id": "675610d4492faa58ad0442090a6a84ac1042f212",
      "new_mode": 33188,
      "new_path": "java/com/google/gerrit/server/restapi/change/PostReviewers.java"
    },
    {
      "type": "modify",
      "old_id": "1b06b7b252428b7c66c1e7e3e0cc3482bd8142a7",
      "old_mode": 33188,
      "old_path": "javatests/com/google/gerrit/acceptance/api/change/PostReviewIT.java",
      "new_id": "3771bb934e7549877bf730fa31ab5a8e28e64129",
      "new_mode": 33188,
      "new_path": "javatests/com/google/gerrit/acceptance/api/change/PostReviewIT.java"
    },
    {
      "type": "modify",
      "old_id": "6cadf33177bc34200cfbbd99ebb6130ec99b4b3f",
      "old_mode": 33188,
      "old_path": "javatests/com/google/gerrit/acceptance/rest/change/ChangeReviewersByEmailIT.java",
      "new_id": "ca3a345e7966693042891ed4e0a7553b9d604bb0",
      "new_mode": 33188,
      "new_path": "javatests/com/google/gerrit/acceptance/rest/change/ChangeReviewersByEmailIT.java"
    }
  ]
}
