Use API to set TBR code-review

This prevents TBR (self code-review) permissions from blocking
the CL from being uploaded at all. Instead, it will fully
upload, and then show a better error message after upload is
complete.

Bug: 729967
Change-Id: I55e3e98e200143076afcaab858064d9f5c62f8ef
Reviewed-on: https://chromium-review.googlesource.com/527325
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
diff --git a/git_cl.py b/git_cl.py
index fdc671a..455ac04 100755
--- a/git_cl.py
+++ b/git_cl.py
@@ -3001,10 +3001,6 @@
     # Extra options that can be specified at push time. Doc:
     # https://gerrit-review.googlesource.com/Documentation/user-upload.html
     refspec_opts = []
-    if change_desc.get_reviewers(tbr_only=True):
-      print('Adding self-LGTM (Code-Review +1) because of TBRs.')
-      refspec_opts.append('l=Code-Review+1')
-
 
     # TODO(tandrii): options.message should be posted as a comment
     # if --send-email is set on non-initial upload as Rietveld used to do it.
@@ -3084,6 +3080,12 @@
         self._GetGerritHost(), self.GetIssue(), reviewers, cc,
         notify=bool(options.send_mail))
 
+    if change_desc.get_reviewers(tbr_only=True):
+      print('Adding self-LGTM (Code-Review +1) because of TBRs.')
+      gerrit_util.SetReview(
+          self._GetGerritHost(), self.GetIssue(),
+          labels={'Code-Review': 1}, notify=bool(options.send_mail))
+
     return 0
 
   def _ComputeParent(self, remote, upstream_branch, custom_cl_base, force,