Support --push-option in upload subcommand

Change-Id: I44836f8c66ded5a96cbf5431912e027e681f6529
diff --git a/project.py b/project.py
index e1a844e..83dcf55 100644
--- a/project.py
+++ b/project.py
@@ -180,7 +180,8 @@
                       private=False,
                       wip=False,
                       dest_branch=None,
-                      validate_certs=True):
+                      validate_certs=True,
+                      push_options=None):
     self.project.UploadForReview(self.name,
                                  people,
                                  auto_topic=auto_topic,
@@ -188,7 +189,8 @@
                                  private=private,
                                  wip=wip,
                                  dest_branch=dest_branch,
-                                 validate_certs=validate_certs)
+                                 validate_certs=validate_certs,
+                                 push_options=push_options)
 
   def GetPublishedRefs(self):
     refs = {}
@@ -1117,7 +1119,8 @@
                       private=False,
                       wip=False,
                       dest_branch=None,
-                      validate_certs=True):
+                      validate_certs=True,
+                      push_options=None):
     """Uploads the named branch for code review.
     """
     if branch is None:
@@ -1155,6 +1158,10 @@
         rp.append('--cc=%s' % sq(e))
       cmd.append('--receive-pack=%s' % " ".join(rp))
 
+    for push_option in (push_options or []):
+      cmd.append('-o')
+      cmd.append(push_option)
+
     cmd.append(url)
 
     if dest_branch.startswith(R_HEADS):